网络扫描步骤:
1.扫描目标主机识别工作状态(开/关机)
2.识别目标主机端口状态(监听/关闭)
3.识别目标主机系统及服务程序的类型和版本
4.根据已知漏洞信息,分析系统脆弱点
5.生成扫描结果报告
下面按步骤给出一些技术需求,也作为学习步骤
主机扫描技术
确定目标主机是否可到达,方法是ping扫描(基于ICMP协议的扫描)
1.ICMP Echo扫描
发送一个ICMP ECHO REQUEST(ICMP type 8)包,等待是否收到 ICMP ECHO REPLY(ICMPtype 0)
特点:简单实现,但容易被防火墙限制
2.Non-Echo扫描
发送一个ICMP TIMESTAMP REQUEST(type 13)或者ICMP ADDRESS MASK REQUEST(type13),看是否响应
特点:可以突破防火墙
端口扫描技术
1.TCP扫描
先来说下正常情况下TCP的三次握手
1)客户端发一个SYN包,带目的端口
2)观察下返回的包:
返回SYN/ACK包,说明端口打开在监听
返回RST/ACK包,说明端口关闭,连接重置
3)若返回SYN/ACK,客户端发一个ACK,完成这次连接
下面是TCP扫描的几种形式
①开放扫描
1:TCP Connect 扫描
与目的主机建立一次TCP连接,此时目的主机会将这次连接记录到log中
方法:调用socket函数connect()连接到目标计算机上,完成一次完整的三次握手过程。
如果端口处于侦听状态,那么connect()就能成功返回。
2:TCP反向ident扫描:需要建立完整的TCP连接
方法:ident 协议允许(rfc1413)看到通过TCP连接的任何进程的拥有者的用户名,
即使这个连接不是由这个进程开始的。
开放扫描特点:产生大量审计数据,容易被发现和屏蔽,但可靠性高
②半开放扫描
1:TCP SYN扫描:发送SYN包,当收到SYN/ACK包时,不回ACK包给目的主机,立刻发送RST包来终止连接,
那么一般很少会被记录,但构造SYN包需要较高权限
2.间接扫描:通过第三方IP(欺骗主机)
半开放特点:隐蔽性和可靠性在①③之间
③隐蔽扫描
又可分为SYN/ACK扫描,FIN扫描,XMAS扫描,NULL扫描,TCP ftp proxy扫描,分段扫描等。
SYN/ACK和FIN扫描都直接绕过连接第一步,目的主机会发RST来拆除连接,就得到了需要信息
FIN原理:当一个FIN数据包到达一个关闭端口时候,返回一个RST,否则就会被简单丢弃不返回
XMAS和NULL扫描相反,XMAS将6个标志位(URG,ACK,RST,PSH,SYN,FIN)全1,NULL全0
特点:能有效的避免对方入侵检测系统和防火墙的检测,但这种扫描使用的数据包在
通过网络时容易被丢弃从而产生错误的探测信息
2.UDP扫描
构造一个空的UDP数据包发送,如果目的端口有服务在等待,会返回错误消息,如果关闭,
返回ICMP端口不可达信息。扫描速度慢,还会丢包,结果也不大准确。
操作系统探测
目的:得到OS信息,以及提供服务的计算机程序的信息
![网络扫描原理 3d扫描仪原理](http://img.413yy.cn/images/31101031/31074830t01b05d0ab9320a43fe.jpg)
1.二进制信息探测
最简单方式,OS自动返回
2.HTTP响应分析
送HTTP连接后,分析响应包获得
3.栈指纹分析
不同OS和系统架构的多样性,使得协议栈具体实现不同,对错误包响应,默认值等都能提供OS依据
1)主动栈指纹探测
主动向主机发起连接,分析收到响应来确定OS类型。
方法:FIN探测,Bogus标志探测,统计ICMP ERROR报文,ICMP ERROR报文引用。
2)被动栈指纹探测
在网络监听中,分析系统流量,用默认值来猜测OS类型,包括TCP初始窗口尺寸,Do not Frafment位,
TCP ISN(初始序列号)采样。
漏洞扫描
针对某一特定操作系统的特定服务,主要有基于弱点数据库和基于插件两种。
参考文献--计算机技术与发展17卷第六期 扫描原理以及BBK wind的PPT
写晕了- -。。。有点过于理论了,参考文献是06年的作品,最新的发展技术都还没放进去(也不懂哈哈)
还有一些具体实现有待搞起,晚上就写到这里吧,码字好辛苦,还好前写日子看了TCP/IP的一些理论东西,要不这文也写不动了。
休息一下。