nmap参数原理抓包分析

一、Nmap

1、定义

NMap(Network Mapper)是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。

2、三个基本功能

  • 一是探测一组主机是否在线;
  • 二是扫描主机端口,嗅探所提供的网络服务;
  • 三是推断主机所用的操作系统 。

3、nmap端口扫描的六种状态分析  

open(开放的):应用程序正在该端口接收 TCP 连接或者 UDP 报文。发现这一点常常是端口扫描的主要目标。每个开放的端口都是攻击的入口。

closed(关闭的):关闭的端口对于 nmap 也是可访问的,它接受 nmap 的探测报文并作出响应, 但没有应用程序在其上监听。它们可以显示该 IP 地址上(主机发现,或者ping 扫描)的主机正在运行up ,也对部分操作系统探测有所帮助。 因为关闭的关口是可访问的,也许过会儿值得再扫描一下, 可能一些又开放了。 系统管理员可能会考虑用防火墙封锁这样的端口。 那样他们就会被显示为被过滤的状态。
filtered(被过滤的):由于包过滤阻止探测报文到达端口, nmap 无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则 或者 主机上的软件防火墙。这样的端口让攻击者感觉很挫折, 因为它们几乎不提供 任何信息。有时候它们响应 ICMP 错误消息如类型3代码13(无法到达 目标: 通信被管理员禁止),但更普遍的是过滤器只是丢弃探测帧, 不做任何响应。 这迫 使 Nmap重试若干次以防万一探测包是由于网络阻塞丢弃的。 这使得扫描速度明显变慢。
unfiltered(未被过滤的):未被过滤状态意味着端口可访问,但 Nmap 不能确定它是开放还是关闭。 只有用于映射防 火墙规则集的 ACK 扫描才会把端口分类到这种状态。 用其它类型的扫描如窗口扫描,SYN 扫描,或者 FIN 扫描来扫描未被过滤的端口可以帮助确定 端口是否开放。
open|filtered(开放或者被过滤的):当无法确定端口是开放还是被过滤的,Namp 就把该端口划分成 这种状态。开放的端口不 响应就是一个例子。没有响应也可能意味着报文过滤器丢弃 了探测报文或者它引发的任何 响应。因此 Nmap 无法确定该端口是开放的还是被过滤的。 UDP,IP 协议, FIN,Null, 和 Xmas 扫描可能把端口归入此类。
closed|filtered(关闭或者被过滤的):该状态用于Nmap不能确定端口是关闭的还是被过滤的。它只可能出现在IPIDIdle扫描中 。

这些状态并非端口本身的性质,而是描述Nmap 怎样看待它们,是一个相对的概念。例如,对于同样的目标机器的135/tcp 端口,从同网络扫描显示它是开放的,而跨网络作完全相同的扫描则可能显示它 是 filtered(被过滤的)。

二、namp参数原理抓包分析

1、主机发现

1)nmap IP

a)以一个不活跃的主机IP为例,在开始扫描之前开启Wireshark。扫描结果如下:

  • Wireshark抓包分析:

b)以一个活跃主机为例,在开始扫描之前开启Wireshark。扫描结果如下:

  • Wireshark抓包分析:

证明目标主机存活后,开始扫描1000个常用的TCP端口:

从上面的两个例子可以看出,nmap扫描通过 '三板斧' 来证明目标主机是否存活

2、nmap -sP ip

该选项告诉 nmap 仅仅进行ping扫描 (主机发现),然后打印出对扫描做出响应的那些主机 。 没有进一步的测试 (如端口扫描或者操作系统探测)。      
-sP 选项在默认情况下, 发送一个 ICMP 回声请求和一个 TCP报文到80端口。如果非特权用户执行,就发送一个 SYN 报文 (用 connect()系统调用)到目标机的80端口。 当特权用户扫描局域网上的目标机时,会发送 ARP 请求(-PR), ,除非使用了--send-ip 选项。

a)扫描活跃的主机,在开始扫描之前开启Wireshark。扫描结果如下:

b)扫描一个局域网IP。默认使用ARP扫描,获取目标主机的MAC地址

因为是在局域网内扫描目标IP,默认使用ARP扫描

3、Namp -P0 ip

该选项完全跳过 Nmap发现阶段。 通常Nmap 在进行高强度的扫描时用它确定正在运行的 机器。 默认情况下,Nmap 只对正在运行的主机进行高强度的探测如 端口扫描,版本探测 , 或者操作系统探测。用-P0禁止 主机发现会使 Nmap 对 每一个 指定的目标 IP 地址 进行所要 求的扫描。所以如果在命令行指定一个 B 类目标地址空间(/16), 所有 65,536 个 IP 地址都 会被扫描。 -P0的第二个字符是数字0而不是字母 O。 和列表扫描一样,跳过正常的主机发 现,但不是打印一个目标列表, 而是继续执行所要求的功能,就好像每个 IP 都是活动的。

通过Wireshark抓包查看1000个常用的端口:

4、nmap  -PS ip

        该选项发送一个设置了 SYN 标志位的空 TCP 报文。 默认目的端口为80 (可以通过改变 nmap.h) 文件中的 DEFAULT_TCP_PROBE_PORT值进行配置,但不同的端口也可以作为选项指定。甚至可以指定一个以逗号分隔的端口列表(如 -PS  22,23,25,80,113,1050,35000), 在这种情况下,每个端口会被并发地扫描。
        SYN 标志位告诉对方您正试图建立一个连接。通常目标端口是关闭的,一个RST(复位) 包 会发回来。 如果碰巧端口是开放的,目标会进行 TCP 三步握手的第二步,回应 一个 SYN/ACKTCP报文。然后运行 Nmap 的机器则会扼杀这个正在建立的连接,发送一个 RST 而非 ACK 报文,否则,一个完全的连接将会建立。 RST 报文是运行 Nmap 的机器而不是 Nmap 本身响应的,因为它对收到 的 SYN/ACK感到很意外。
        Nmap 并不关心端口开放还是关闭。 无论 RST 还是 SYN/ACK响应都告诉 Nmap 该主机正在运行。

主机发现只连接目标主机TCP80 端口,不使用ICMP。连接时发送SYN标志位的空TCP报文。属于半连接(2/3)

然后扫描1000个常用的TCP端口,专门用来发现网站主机的开放端口。

  • nmap -PS ip -p 指定端口     

扫描过程和 nmap  -PS ip 一样,只是在扫描端口时,不再扫描1000个常用TCP端口,而是只扫描指定的端口,并告诉指定端口的状态。

5、nmap -PA ip

连接目标主机TCP80 端口,但设置的是ACK标志位。ACK报文表示确认建立连接的尝试,但该链接尚未完全建立提供SYNACK两种ping是使其通过防火墙的机会尽可能大。

nmap -PS -PA 183.232.231.172

然后扫描1000个常用的TCP端口,发现网站主机的开放端口。

6.nmap -PU 183.232.231.172

UDP扫描,发送一个空的UDP报文到给定端口

7. Nmap -sS ip   (半连接2/3)

默认用—SP去发现主机

通过Wireshark抓包查看数据:

8. Nmap -sT ip   (全连接3/3)

默认用—SP去发现主机

通过Wireshark抓包查看数据:

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值