主动扫描之Nmap

本文参考于李华峰等人的图书《Kali Linux2 网络渗透测试实践指南》2018年第1版

主动扫描一般都是针对目标发送特定的数据包,然后根据目标的反应来获得一些信息。

Nmap是非常优秀的主动扫描工具,通过Nmap对一台计算机进行扫描,我们可以得到的目标信息如下:

  • 目标主机是否在线
  • 目标主机所在的网络结构
  • 目标主机上开放的端口
  • 目标主机所使用的操作系统
  • 目标主机上所运行的服务及版本
  • 目标主机上所存在的漏洞

基本用法

对单个主机进行扫描nmap <目标ip地址>

对多个不连续的主机进行扫描nmap [目标1 目标2 目标3 目标4...]

对连续范围内的主机进行扫描nmap [ip范围],如nmap 192.168.164.1-255

使用CIDR扫描整个子网nmap [ip地址/掩码位数],如nmap 192.168.164.1/24

主机发现

跳过Ping扫描阶段

通常在Nmap进行其他扫描前,先对目标主机进行Ping扫描,若该扫描无反应,则结束整个扫描过程。然而有时目标主机其实在线,但采用某种手段屏蔽了Ping扫描,因此也会躲过其他扫描操作。所以我么可以指定无论目标是否响应Ping,都要完成整个扫描过程,该参数为-PN,例如

nmap -PN 192.168.169.131

使用ARP协议进行主机发现

当目标主机与我们处于同一网段时,使用ARP协议扫描是最佳选择,不仅速度最快,而且扫描结果也是最精准的,因为没有任何安全措施会阻止正常的ARP请求。参数-PR,例如

nmap -PR 192.168.169.131

仅使用Ping协议进行主机发现

有时我们要对大量主机进行扫描,若采用所有方式进行扫描的话就会花费大量的时间,这时我们可以只对目标主机进行Ping扫描,参数为-sP,例如

nmap -sP 192.168.169.131

使用TCP协议进行主机发现

TCP协议主要由三次握手构成,其中最后一步意义不大,所以扫描的时候也可以不完成最后一步。若完成最后一步,则称为全开(Connect)扫描,参数为-sT,否则称为半开(SYN)扫描,参数为-sS,例如

nmap -sS 192.168.169.131
nmap -sT 192.168.169.131

使用UDP协议进行主机发现

UDP协议比TCP协议简单,但在扫描时所花时间却比TCP长,因此这种扫描方式并不常用。参数-sU,例如

nmap -sU 192.168.164.131

端口发现

端口状态

Nmap对目标端口进行扫描时,对端口的状态判断有5种:

  • open,应用程序在该端口接收TCP连接或者UDP报文
  • closed,关闭的端口对于nmap也是可访问的,它接收nmap探测报文并作出响应,但没有应用程序在其上监听。
  • filtered,由于包过滤阻止探测报文到达端口,nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由规则或者主机上的软件防火墙。
  • unfiltered,未被过滤状态意味着端口可访问,但nmap无法确定它是开放还是关闭。只有用于映射防火墙规则集的ACK扫描才会把端口分类到这个类别。
  • open|filtered,无法确定端口是开放还是被过滤,开放的端口不响应就是一个例子。

扫描全部端口

每个网络设备有65536个端口,如果对这些端口全部进行扫描,那么就会花费很长的时间,所以Nmap默认扫描的端口只有最常用的1000个。

若要对所有的65536个端口进行扫描,可使用参数-p "*",例如

nmap -p "*" 192.168.164.131

扫描前n个端口

如果只想扫描使用频率最高的n个端口,可以使用参数--top-ports n,例如

nmap --top-ports 10 192.168.164.131

扫描指定端口

如果只对指定端口进行测试的话,可以使用参数-p 端口号,例如

nmap -p 80 192.168.164.131

扫描目标操作系统

如果我们知道目标所使用的操作系统,之后就可以大大减少工作量。但没有一种工具可以提供绝对准确的信息,所有的工具都是使用“猜”的方法:通过向目标发送探针,不同系统对这些探针会做出不同的响应,Nmap将这些响应特征提取出来并记录在一个数据库中,然后根据目标的回应来猜测系统。探针和响应特征的对应关系存放在安装目录的Nmap-os-db文件中。

Nmap会尝试验证如下参数:

  • 操作系统供应商的名字,如微软或sun
  • 操作系统的名字,如windows、Mac OS X、Linux
  • 操作系统的版本,如XP、2000、2003、2008
  • 当前设备的类型,比如通用计算机、打印服务器、媒体播放器、路由器、WAP或者电力装置

除此之外,操作系统检测还提供关于系统运行时间和TCP序列可预测性信息的分类。

对系统的扫描使用参数-O,例如

nmap -O 192.168.164.131

扫描目标服务

对操作系统而言,那些安装在操作系统之上的软件更是网络安全的重灾区,因此在进行渗透时,要尽量的检测出目标系统运行的各种软件。

有时我们并没有使用Nmap进行服务识别操作,也得到了服务类型的信息。其实Nmap并没有进行服务的识别,只是将端口号在自己的端口服务表数据(nmap-services)中进行查找,然后返回。即这种返回的服务只是数据库中的,并非事实中端口所运行的服务。

Nmap提供了更精准的服务及版本检测选项,参数为-sV,例如

nmap -sV 192.168.164.131

扫描结果保存

Nmap支持多种保存格式,若保存为XML格式,可使用参数-oX 文件名,例如

nmap -oX Report.xml 192.168.164.131

主动扫描之Nmap的更多相关文章

  1. 网络安全-主动信息收集篇第二章-二层网络扫描之nmap

    nmap是网络层.传输层最重要的扫描工具之一,可以结合脚本对应用层的扫描和对网络弱点发现. 网络层发现nmap使用: Usage: nmap [Scan Type(s)] [Options] {tar ...

  2. Nikto主动扫描神器!!!

    Perl语言开发的开源web安全扫描器 Nikto只支持主动扫描:可扫描web服务器类型是不是最新版本(分析先版本与新版相比有哪些漏洞) 针对:1.软件版本.2.搜索存在安全隐患的文件.3.服务器配置 ...

  3. 端口扫描工具nmap

    nmap 使用介绍 nmap是目前为止最广为使用的国外端口扫描工具之一.我们可以从[url]http://www.insecure.org/[/url]进行下载,可以很容易的安装到Windows和un ...

  4. kali 系列学习03 - 主动扫描

    主动扫描首先考虑使用代理IP保护自己,其次掌握 Nmap 工具使用 第一部分 扫描对方时,最好隐藏一下自己root@kali:/etc# service tor statusUnit tor.serv ...

  5. 扫描工具nmap介绍

    NMap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包. 简介 nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端.确定哪些服务运行在哪些连接端,并且推 ...

  6. wifi的主动扫描和被动扫描

    要实现wifi上的探针模块,简单了了解了802.11中的各种帧,对一些帧的发送频率和方式也有简单了解.不过了解的都不够细致.只是简单知道手机打开wifi后回不停的向外发送probe request这个 ...

  7. 网络扫描工具nmap

    nmap一般就用来扫描主机是否在线(特别是扫描局域网内存活的机器).开放了哪些端口.其他的功能用的比较少,做渗透的人可能要了解的多些. 1.1 选项说明 nmap需要自行安装. shell> y ...

  8. 扫描工具——Nmap用法详解

    Nmap使用 Nmap是主机扫描工具,他的图形化界面是Zenmap,分布式框架为Dnamp. Nmap可以完成以下任务: 主机探测 端口扫描 版本检测 系统检测 支持探测脚本的编写 Nmap在实际中应 ...

  9. Android Wifi 主动扫描 被动扫描

    介绍主动扫描,被动扫描以及连接的wifi的扫描过程 参考文档 <802.11无线网络权威指南> <80_Y0513_1_QCA_WCN36X0_SOFTWARE_ARCHITECTU ...

随机推荐

  1. SpringBoot配置文件application

    配置文件 SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的,有两种文件格式: application.properties 语法结构 :key=value application. ...

  2. 【UE4 调试】C++ 几种编译方法和小技巧

    编译方法 Visual Studio 2019 编译 默认编译 UnrealVS 快速编译 Editor 编译 一般 vs 编译完后,Editor会跟着热编译(有声音) 如果发现编译后代码没更新到Ed ...

  3. 敏捷 Scrum Master 的難點

    什麼是 Scrum Master? Scrum master 是一個團隊角色,負責確保團隊遵守敏捷方法和原則並符合團隊的流程和實踐. Scrum Master 促進敏捷開發團隊成員之間的協作.Scru ...

  4. LeetCode:链表专题

    链表专题 参考了力扣加加对与链表专题的讲解,刷了些 leetcode 题,在此做一些记录,不然没几天就没印象了 出处:力扣加加-链表专题 总结 leetcode 中对于链表的定义 // 定义方式1: ...

  5. Beta阶段第一次会议

    Beta阶段第一次例会 时间:2020.5.16 完成工作 姓名 完成任务 难度 完成度 lm 1.修订网页端信息编辑bug2.修订网页端登录bug(提前完成,相关issue已关闭) 中 100% x ...

  6. 力扣 - 剑指 Offer 57. 和为s的两个数字

    题目 剑指 Offer 57. 和为s的两个数字 思路1(哈希表) 这题首先想到的是使用两个for遍历,查找是哪两个相加等于target,但是时间复杂度确实\(O(N^2)\),时间复杂度太高,因此我 ...

  7. windows下wchar_t的问题

    使用vs新建工程或者编译工程的时候默认在编译设置里面讲wchar_t设置为内置类型,如下图: 但是在编译相互依赖的工程的时候,如果有的工程不将wchar_t设置为内置类型的时候,将会出现链接错误,需要 ...

  8. 深入理解xLua基于IL代码注入的热更新原理

    目前大部分手游都会采用热更新来解决应用商店审核周期长,无法满足快节奏迭代的问题.另外热更新能够有效降低版本升级所需的资源大小,节省玩家的时间和流量,这也使其成为移动游戏的主流更新方式之一. 热更新可以 ...

  9. 恶意代码の奇客pdf分析

    目录 恶意代码の奇客pdf分析 奇客PDF安装包分析 静态分析基础技术 上传杀毒网 查壳 编译时间 导入表分析 资源查看 动态分析基础技术 Process Monitor监控 Process Expl ...

  10. Linux文件与目录管理 cp od chattr lsattr

    1:在shell脚本中,一定要使用绝对路径. 2:在根目录下,.和..是完全相同的两个目录. 3:cd - 就相当于撤销,表示回到前面状态所在的目录. 4:mkdir -m 700 test 加&qu ...