高级扫描技术及原理介绍

温热之心诱

温热之心诱

2016-01-29 12:41

高级扫描技术及原理介绍,高级扫描技术及原理介绍
  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)用来释放连接,表明发送方已经没有数据发送了。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)

  TCP协议连接的三次握手过程是这样的:
  首先客户端(请求方)在连接请求中,发送SYN=1,ACK=0的TCP数据包给服务器端(接收请求端),表示要求同服务器端建立一个连接;然后如果服务器端响应这个连接,就返回一个SYN=1,ACK=1的数据报给客户端,表示服务器端同意这个连接,并要求客户端确认;最后客户端就再发送SYN=0,ACK=1的数据包给服务器端,表示确认建立连接。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)

  我们就利用这些标志位和TCP协议连接的三次握手特性来进行扫描探测。

  SYN 扫描
  这种扫描方式也被称为“半打开” 扫描,因为利用了TCP协议连接的第一步,并且没有建立一个完整的TCP连接。实现办法是向远端主机某端口发送

展开更多 50%)
分享

猜你喜欢

高级扫描技术及原理介绍

C语言教程 C语言函数
高级扫描技术及原理介绍

AJAX技术经验谈:技术原理及应用

Web开发
AJAX技术经验谈:技术原理及应用

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

黑客高级技巧Linux后门技术及实践

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
黑客高级技巧Linux后门技术及实践

PS高级磨皮技术

电脑网络
PS高级磨皮技术

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

ajax 技术和原理分析

Web开发
ajax 技术和原理分析

AJAX技术介绍

Web开发
AJAX技术介绍

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

VC# .Net中浏览Crystal Report

VC# .Net中浏览Crystal Report

Flash8打造运动模糊

Flash8打造运动模糊
下拉加载更多内容 ↓