高级扫描技术及原理简介
Scan,是一切入侵的基础,扫描探测一台主机包括是为了确定主机能否活动、主机系统、正在使用哪些端口、提供了哪些办事、相关办事的软件版本等等,对这些内容的探测便是为了“对症下药”。对主机的探测东西非常多,比如大名鼎鼎的nmap、netcat、superscan,以及海内的X-Scanner等等。
ICMP协议――PING是最常用的,也是最简单的探测本领,用来果断目标能否活动。实际上Ping是向目标发送一个要求回显(Type = 8)的ICMP数据报,当主机得到请求后,再返回一个回显(Type = 0)数据报。而且Ping 步伐一般是直接实现在系统内核中的,而不是一个用户历程。Ping是最根本的探测本领,Ping Sweep(Ping扫射)便是对一个网段进行大范围的Ping,由此确定这个网段的网络运作环境,比如闻名的fping东西便是进行Ping扫射的。
不外现在连根本的个人防火墙都对Ping做了限定,这个也太根本了。如果透过防火墙,怎样得到最理想的目标图,也是很多人整天思索的题目。我们这里先容的一些扫描技术便是要尽大概地绕过一些宁静防护设备,并且只管即便掩护自己,同时到达我们必要的目标。
一、高级ICMP扫描技术
Ping便是使用ICMP协议走的,高级的ICMP扫描技术主要是使用ICMP协议最根本的用处:报错。根据网络协议,如果根据协议出现了错误,那么吸收端将孕育发生一个ICMP的错误报文。这些错误报文并不是自动发送的,而是由于错误,根据协议自动孕育发生。
当IP数据报出现checksum和版本的错误的时候,目标主机将抛弃这个数据报,如果是checksum出现错误,那么路由器就直接抛弃这个数据报了。有些主机比如AIX、HP-UX等,是不会发送ICMP的Unreachable数据报的。
我们使用下面这些特性:
1、向目标主机发送一个只有IP头的IP数据包,目标将返回Destination Unreachable的ICMP错误报文。
2、向目标主机发送一个坏IP数据报,比如,不正确的IP头长度,目标主机将返回Parameter Problem的ICMP错误报文。
3、当数据包分片但是,却没有给吸收端充足的分片,吸收端分片组装超时会发送分片组装超时的ICMP数据报。
向目标主机发送一个IP数据报,但是协议项是错误的,比如协议项不可用,那么目标将返回Destination Unreachable的ICMP报文,但是如果是在目标主机前有一个防火墙大概一个其他的过滤安装,大概过滤失提出的要求,从而吸收不就任何回应。可以使用一个非常大的协议数字来作为IP头部的协议内容,而且这个协议数字至多在本日还没有被使用,应该主机肯定会返回Unreachable,如果没有Unreachable的ICMP数据报返回错误提示,那么就阐明被防火墙大概其他设备过滤了,我们也可以用这个办法来探测能否有防火墙大概其他过滤设备存在。
使用IP的协议项来探测主机正在使用哪些协议,我们可以把IP头的协议项转变,由于是8位的,有256种大概。通过目标返回的ICMP错误报文,来作果断哪些协议在使用。如果返回Destination Unreachable,那么主机是没有使用这个协议的,相反,如果什么都没有返回的话,主机大概使用这个协议,但是也大概是防火墙等过滤失了。NMAP的IP Protocol scan也便是使用这个原理。
使用IP分片形成组装超时ICMP错误音讯,同样可以来到达我们的探测目标。当主机吸收到丢失分片的数据报,并且在肯定工夫内没有吸收到丢失的数据报,就会抛弃整个包,并且发送ICMP分片组装超时错误给原发送端。我们可以使用这个特性制造分片的数据包,然后等候ICMP组装超时错误音讯。可以对UDP分片,也可以对TCP甚至ICMP数据包进行分片,只要不让目标主机得到完整的数据包就行了,当然,对于UDP这种非毗连的不牢靠协议来说,如果我们没有吸收到超时错误的ICMP返回报,也有大概时由于线路大概其他题目在传输过程中丢失了。
我们能够使用下面这些特性来得到防火墙的ACL(access list),甚至用这些特性来得到整个网络拓扑布局。如果我们不克不及从目标得到Unreachable报文大概分片组装超时错误报文,可以作下面的果断:
1、防火墙过滤了我们发送的协议类型
2、防火墙过滤了我们指定的端口
3、防火墙壅闭ICMP的Destination Unreachable大概Protocol Unreachable错误音讯。
4、防火墙对我们指定的主机进行了ICMP错误报文的壅闭。
二、高级TCP扫描技术,最根本的使用TCP扫描便是使用connect(),这个很容易实现,如果目标主性能够connect,就阐明一个相应的端口翻开。不外,这也是最原始和开始被防护东西回绝的一种。 在高级的TCP扫描技术中主要使用TCP毗连的三次握手特性和TCP数据头中的标记位来进行,也便是所谓的半开扫描。 先认识一下TCP数据报头的这六个标记位。 URG:(Urgent Pointer field significant)告急指针。用到的时候值为1,用来处置惩罚制止TCP数据流中断 ACK:(Acknowledgment field significant)置1时表示确认号(Acknowledgment Number)为合法,为0的时候表示数据段不包罗确认信息,确认号被纰漏。 PSH:(Push Function),PUSH标记的数据,置1时请求的数据段在吸收方得到后就可直接送到应用步伐,而不用等到缓冲区满时才传送。 RST:(Reset the connection)用于复位因某种原因惹起出现的错误毗连,也用来回绝合法数据和请求。如果吸收到RST位时候,通常发生了某些错误。 SYN:(Synchronize sequence numbers)用来创建毗连,在毗连请求中,SYN=1,ACK=0,毗连响应时,SYN=1,ACK=1。即,SYN和ACK来区分Connection Request和Connection Accepted。 FIN:(No more data from sender)用来开释毗连,评释发送方已经没有数据发送了。 TCP协议毗连的三次握手过程是如许的: 起首客户端(请求方)在毗连请求中,发送SYN=1,ACK=0的TCP数据包给办事器端(吸收请求端),表示要求同办事器端创建一个毗连;然后如果办事器端响应这个毗连,就返回一个SYN=1,ACK=1的数据报给客户端,表示办事器端同意这个毗连,并要求客户端确认;末了客户端就再发送SYN=0,ACK=1的数据包给办事器端,表示确认创建毗连。我们就使用这些标记位和TCP协议毗连的三次握手特性来进行扫描探测。 SYN 扫描 这种扫描方式也被称为“半翻开” 扫描,由于使用了TCP协议毗连的第一步,并且没有创建一个完整的TCP毗连。 实现办法是向远端主机某端口发送一个只有SYN标记位的TCP数据报,如果主机反馈一个SYN || ACK数据包,那么,这个主机正在监听该端口,如果反馈的是RST数据包,阐明,主机没有监听该端口。在X-Scanner 上就有SYN的选择项。 ACK 扫描 ,发送一个只有ACK标记的TCP数据报给主机,如果主机反馈一个TCP RST数据报来,那么这个主机是存在的。也可以通过这种技术来确定对方防火墙能否是简单的分组过滤,照旧一个基于状态的防火墙。 FIN 对某端口发送一个TCP FIN数据报给远端主机。如果主机没有任何反馈,那么这个主机是存在的,而且正在监听这个端口;主机反馈一个TCP RST返来,那么阐明该主机是存在的,但是没有监听这个端口。NULL
即发送一个没有任何标记位的TCP包,根据RFC793,如果目标主机的相应端口是封闭的话,应该发送回一个RST数据包。 FIN+URG+PUSH
向目标主机发送一个Fin、URG和PUSH分组,根据RFC793,如果目标主机的相应端口是封闭的,那么应该返回一个RST标记。 下面这些办法可以绕过一些防火墙,从而得到防火墙后面的主机信息,当然,是在不被诱骗的环境下的。这些要领另有一个利益便是比较难于被记载,有的办法即使在用netstat命令上也根本显示不出来,而且一般的宁静防护设备也根本不记载这些内容,如许能够更好地隐藏自己。 三、高级UDP扫描技术 在UDP实现的扫描中,多是了使用和ICMP进行的组合进行,这在ICMP中以及提及了。另有一些特殊的便是UDP回馈,比如SQL SERVER,对其1434端口发送‘x02’大概‘x03’就能够探测得到其毗连端口。
声明: 本文只是作技术方面的探究,目标是让各人更好的防备来自各方的攻击,确保网络宁静。本文不提供任何步伐和软件的下载信息。
- 文章作者: 福州军威计算机技术有限公司
军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。
TAG:
评论加载中...
|