NMAP–主机发现扫描 – 作者:hu666666

活跃主机发现技术

简介

活跃主机发现技术的本质就是向目标发送数据包,如果对方收到数据包,并给出了回应,就可以判断该主机处于活跃状态。

那么接下来就有两个关键问题:

1.要想目标主机发送那么样的数据包尼

2.为什么目标系统在收到数据包后,会给出响应尼

-sn参数的介绍

-sn参数在活跃主机发现扫描中起到重要的作用。通常,在对目标进行扫描时,会默认扫描端口开放情况,开放端口对应的服务类型,以及其他一些信息。但这些信息的扫描,对主机发现并没有什么作用,反而会降低扫描的速度。因此,我们需要哦屏蔽掉对这些信息的默认扫描。

命令:nmap -sn 目标ip地址图片[1]-NMAP–主机发现扫描 – 作者:hu666666-安全小百科

扫描结果看起来干净整洁多了

基于ARP协议的主机发现

ARP协议位于TCP/IP协议族中的网络层,主要用于解决逻辑地址与物理地址之间的转换问题。

基于ARP协议的主机发现,优点是准确度高,缺点是只能用于攻击者本网段的主机发现,不可以用于不同网段的主机发现

命令:nmap -sn -PR 192.168.21.3

图片[2]-NMAP–主机发现扫描 – 作者:hu666666-安全小百科

基于ICMP协议的主机发现

ICMP协议位于TCP/IP协议族中的网络层,主要用于在IP主机,路由器之间传递控制信息。

ICMP的报文可以分为两大部分:差错和查询

查询报文是用一对请求和应答来定义的,这一点正符合我们进行主机发现的要求。

ICMP中适合用于主机发现的查询报文有以下三种:

1.响应请求和应答

用来测试两个IP主机之间链路是否互通。最常用的命令是ping命令。

2.时间戳请求和应答

ICMP时间戳请求允许系统向另一个系统查询当前时间。

3.地址掩码请求和应答

ICMP地址掩码请求由源主机发送,用于无盘系统在引导过程中获取自己的子网掩码。虽然RFC规定,除非系统是地址掩码的授权代理,否则其是不可以发送地址掩码响应的。但大多数主机在收到了地址掩码的请求后,还是会给出相应的响应。

基于查询报文1的ICMP主机发现

该类型的ICMP主机发现,最常用的命令的ping命令,用于检测目标系统或设备是否在线。那么既然已经有了这么一个好用的命令,为什么还要使用nmap?这是因为ping的过度滥用,导致很多用于防护主机的防火墙设备都禁止了ping发来的数据包。

命令:nmap -PE [目标IP地址]

例如:nmap -sn -PE 32.54.12.43

图片[3]-NMAP–主机发现扫描 – 作者:hu666666-安全小百科

基于查询报文2的ICMP主机发现

命令:nmap -PP [目标ip地址]

例子:nmap -sn -PP 32.54.12.43

图片[4]-NMAP–主机发现扫描 – 作者:hu666666-安全小百科

基于查询报文3的ICMP主机发现

命令:nmap -PM [目标主机ip]

例子:nmap -sn -PM 32.54.12.43

图片[5]-NMAP–主机发现扫描 – 作者:hu666666-安全小百科

注意:这种扫描方式并不常用。同时基于ICMP的主机发现扫描也是网络安全防御者的主要防御对象,通常会禁止主机对这类探测请求做出响应以避免被扫描出来。

基于TCP协议的主机发现

TCP协议的简介

TCPx协议是一种位于传输层的协议。它是面向连接的,可靠的,基于字节流的传输层通信协议。它的主要特点是通过三次握手来建立可靠连接。

三次握手的过程:图片[6]-NMAP–主机发现扫描 – 作者:hu666666-安全小百科

端口的简介

在同一台主机上可以允许多个服务(smtp服务,web服务,ftp服务等),这些服务都使用同一个主机ip地址。那么客户端如何来区分这些服务尼?这就促使了端口的出现,客户端可以通过 “主机ip地址+端口号” 来定位互联网世界中的任意一台主机上的任意服务。

使用TCP协议进行主机发现扫描

1.TCP SYM扫描

命令:nmap -PS [端口1,端口2 ….. ] [目标主机ip地址]

例子:nmap -PS 21,22,23,54,80,443,3306,9000 192.168.21.2

图片[7]-NMAP–主机发现扫描 – 作者:hu666666-安全小百科

注意:TCP扫描是NMAP扫描技术中最强大的技术之一,很多服务器可能会屏蔽掉ICMP echo请求数据包,但任何一台服务器的会响应针对其提供服务的SYN数据包。但要注意的是,很多服务器的安全机制可能会屏蔽掉除了它提供的服务以外的其他端口。所以,在进行主机扫描的时候,一定要根据服务器提供的服务来确定其开放的端口,然后再利用这些可能开放的端口进行主机扫描。

2.TCP ACK扫描

攻击者直接向目标主机发送一个包含ACK的数据包。目标主机再接收到该数据包时,并不明白是什么意思。所以,其直接响应一个包含RST的数据包,表示无法建立连接。

命令:nmap -PA [端口1,端口2 … ] [目标主机的ip地址]

例子:nmap -sn -PA 21,22,23,53,80,3306,9000 192.168.21.2

图片[8]-NMAP–主机发现扫描 – 作者:hu666666-安全小百科

注意:这种扫描很少能够成功,造成这种情况的原因是,目标主机上的安全机制或者安全设备将这种莫名奇妙的ACK包给过滤掉了。

基于UDP协议的主机发现技术

UDP简介

UDP协议也是位于传输层的通信协议,它与TCP相似,但是它是面向非连接的,没有连接的建立过程。当一个UDP端口收到一个UDP数据包时,如果该端口处于关闭状态,目标主机会返回一个端口不可达的错误响应。而如果该端口处于开放状态,则主机在收到UDP数据包后,并不会做出任何响应。我们就可以利用这种差异来进行主机发现探测。对目标主机一个不可能开放的端口发送UDP数据包,如果攻击者收到目标主机的响应,就表示该目标主机处于活跃状态。否则,表示该目标主机不活跃。但要注意的是,这种扫描方式是不准确的。

使用UDP协议进行主机发现扫描

与使用TCP协议进行端口扫描不同的是,UDP需要扫描的是目标主机关闭的端口。故在扫描过程中,应尽量避免使用那些常见的端口(例如:22,80,3306等).最适合的做法是选择一个值比较大端口(例如:54231,48575,63243等),但不要超过65535.

命令:nmap -PU [端口] [目标主机IP地址]

例子:nmap -sn -PU 64343 192.168.21.2

图片[9]-NMAP–主机发现扫描 – 作者:hu666666-安全小百科

基于SCTP协议的主机发现扫描

SCTP协议解析

SCTP协议是传输层上的协议。SCTP与TCP完成的任务是相同的。但是两者之间却存在着很大的不同。

不同1:TCP协议一般是用于单地址连接的,而SCTP协议却可以用于多地址连接

不同2:TCP协议是基于字节流的,而SCTP协议是基于信息流的。TCP只能支持一个流,而SCTP连接同时可以

支持多个流。

不同3:SCRTP协议是通过四次握手来建立连接的

SCTP四次握手的过程如下:

第一步:客户端使用一个INIT报文发起一个连接

第二步:服务端使用一个INIT-ACK报文进行应答,其中包括了cookie

第三步:客户端使用一个COOKIE-ECHO报文进行响应,其中包含了服务器端所发送的cookie

第四步:服务端要为这个连接分配资源,并通过向客户端发送一个COOKIE-ACK报文进行响应

使用SCTP协议进行主机发现

命令:nmap -PY [端口1,端口2 … ] [目标主机ip地址]

例子:nmap -sn -PY 21,22,23,53,80,3306,9000 192.168.21.2

图片[10]-NMAP–主机发现扫描 – 作者:hu666666-安全小百科

使用IP协议进行主机发现扫描

IP协议是TCP/IP协议族中的核心协议,也是TCP/IP的载体。

NMAP允许向目标主机发送IP数据包来检测目标主机是否活跃。理论上可以使用的协议有上百。这种方式允许指定所要使用的协议,如果不指定的话,NMAP默认使用ICMP(IP协议编号为1),IGMP(IP协议编号为2)和IP-in-IP协议(IP协议编号为4)这三个协议。

命令:nmap -sP -PO [协议编号1,协议编号2 … ] [目标数据ip地址]

例子:nmap -sP -PO 1,2,4,6,17, 192.168.21.2

图片[11]-NMAP–主机发现扫描 – 作者:hu666666-安全小百科

但是上面扫描方式发送的数据包均为空的,容易被检测出来并被过滤掉。可以使用一个–data-length参数来发送添加了随机数据的数据包。

命令:nmap –data-length 数据长度 [目标ip地址]

例子:nmap –data-length 25 192.168.21.2图片[12]-NMAP–主机发现扫描 – 作者:hu666666-安全小百科

主机发现技术的分析

我们可以使用NMAP中的–packet-trace选项来观察NMAP发送了那些数据包,从而帮助我们更深入的了解NMAP的工作原理。

来源:freebuf.com 2021-04-08 16:38:26 by: hu666666

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论