网络扫描与探测技术

今天我们来谈谈网络扫描与探测技术,通过对目标主机进行探测与扫描,我们可以更好的了解目标主机所提供的各种服务以及网络的连通性,根据结果我们可以做出更安全的决策或快速的解决掉网络故障。本文介绍的比较简单,如果大家不满足本文的内容可以尝试参考这两篇对nmap介绍的比较详细的文档:《Nmap在实战中的高级用法》《渗透测试工具Nmap从初级到高级

那么我们怎么去认识这些扫描技术?”网络”一词告诉我们,在这个世界中每个主机之间是都可以通信的,大家可以互相的SYN.ACK.FIN…,但能区别哪些端口开放哪些端口关闭,这是要看目标主机对你进行怎样的回复。目标主机能随便回复各种不同的报文吗?NO 这么大的世界没有标准可依不是乱套了吗?所以约束它们的就是TCP/IP标准与参考RFC文档。通过这些定义,主机根据自己的实际情况做出回复,我们从此判断出目标主机开放了哪些服务。系统世界中所有玩家都按游戏规则出牌吗?NO 微软的WINDOWS就有另外。通过向目标主机发送特定报文,就一定可以拿到结果吗?得知某个服务开启与主机存活?NO 在有防火墙技术与各种安全技术的参于下,往往情况不太理想。

在网络探测与扫描中,有两个工具出的很出色[NMAP|HPING],在下面我们将结合实例慢慢学习。NMAP功能强大其版本5.21中MAN的帮助是中文,有WINDOWS版本与LINUX版本,用法也写得相当细,决对是一个好的教程。HPING是一个超级PING工具,有实时反应数据包返回情况。在WINDOWS与LINUX系统中,WINDOWS分客户机系统与服务器系统,只有服务器系统参于游戏规则,而客户机系统不会陪你玩扫描游戏。而LINUX系统也就是服务器系统了,坚守游戏规则,对于所有技术技术它一般都有效。扫描技术有很多种,我们一一分析。

1.TCP Connect 扫描

通过调用系统socket函数connect()连接到目标计算机上,完成一次完整的三次握手过程。如果目标端口有程序在监听,那么connect()就能成功返回。如果端口没有开放则返回RST/ACK复位报文。

这里我要说清楚下,在各种扫描技术下,我们面对的情况都是机器的本能反应,在有安全设备的情况下数据包可能被修改或丢弃拒绝等,所以我们要智能的用各种扫描技术与逻辑思维判断与分析得出正确的结论,机器是毕竟是一个弱智。

2.TCP SYN 扫描

TCP连接握手协议很简单,你SYN目标端口,如果目标主机该端口开放则回复SYN/ACK,否则RST/ACK.

3.TCP ACK 扫描

这个就是向目标发送一个ACK字段的报文,我们知道要建立连接是要三次握手的,没有经过SYN询问,直接来SYN/ACK报文,很明显是不符合游戏规则的。不过RFC文档规定对于这类型的报文都要回复RST,我们无法通过该技术得知目标主机的端口开放情况,但得到RST回复报文,我们可以确定主机的存活性。

4.TCP FIN 扫描

向目标主机端口直接发送一个TCP结束输送标志FIN报文,按照RFC标准,如果目标主机端口开放则不响应该报文;如果目标主机端口关闭则回应RST/ACK复位报文。对于FIN扫描技术,标准执行于LINUX系统下,对于WINDOWS系统不论端口状态如何都回复报文RST/ACK报文,它并没有按标准来执行响应,所以我们无法用该技术来判断WINDOWS系统端口开放情况。同时TCP NULL扫描与圣诞树(Xmas Tree)扫描技术其系统反应情况与FIN扫描一样,其NULL扫描是发送标志位为空的报文,Xmas tree是发送标志位为FIN、URG和PUSH标志来获得结果。

5.PING 扫描

向目标主机发送ECHO 请求报文,而目标主机进行回复请求从而确定目标主机的存活性,有些防火墙拒绝回复PING请求。

6.窗口扫描

该技术是利用系统实现细节来区别端口的开放情况的,因为某些系统对于未开放的端口做ACK回应其窗口大小为0,而开放的端口的ACK回复包则不是为正数。我在WINDOWS与LINUX下做关于窗口扫描技术实验,无法从窗口扫描技术上得到端口开放情况。

7. TCP Maimon扫描
Maimon扫描是用它的发现者Uriel Maimon命名的。向目标主机发送探测报文FIN/ACK。 根据RFC 793 (TCP),无论端口开放或者关闭,都应该对这样的探测响应RST报文回应。

8.其次我们可以定制扫描 nmap -scanflag  SYNACKURGFINPSHRST -n -P0 www.91ri.org ;我们也可以探测系统所支持的协议 nmap -sO www.91ri.org等。。

NMAP还可以得服务器使用的程序版本,系统的类型,系统所支持的协议等,我认为除了多种主机发现技术外,我们更应该灵活应用各种扫描技术去得到我们要的东西。除了我们刚才所认识的一些技术,nmap还配备了可以穿过防火墙与IDS等设备的各种技术,如分片.源IP欺骗.源MAC欺骗.TLL值修改等,大家可以参看NMAP的man帮助。在扫描过程中,安全设备可能进行阻拦或进行虚假欺骗,但相信你的聪明可以准确判断出问题。对于非透明防火墙的隐藏,我们tracert一个IP地址,一般拒绝回应的为,显示****为防火墙,还有一种我记得是回复的是假的IP地址,如内部的IP地址,把IP欺骗技术应用到了正面上去。呵呵!!

因为帮助讲的很细,我就不在细说了,不懂可以看看MAN帮助。今天就到这里吧!!