高级扫描技术及原理介绍

2016-01-29 12:41 5 1 收藏

高级扫描技术及原理介绍,高级扫描技术及原理介绍

【 tulaoshi.com - C语言心得技巧 】

  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)用来释放连接,表明发送方已经没有数据发送了。

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

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

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

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

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

来源:https://www.tulaoshi.com/n/20160129/1487138.html

延伸阅读
标签: Web开发
基于XML的异步JavaScript,简称AJAX,是当前Web创新(称为Web2.0)中的一个王冠。感谢组成AJAX的各种技术,Web应用的交互如Flickr, Backpack和Google在这方面已经有质的飞跃。这个术语源自描述从基于网页的Web应用到基于数据的应用的转换。在基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取得并且可以被动态...
01Maya 真不愧是三头六臂,面对这些挑战,我收集了针对Maya 质感部分具有代表性,权威性的教程。 尽管这些教程不是那么振奋人心,但他们可以工作并可为进一步考究和改进的基础,通过这些练习的学习来探讨 Maya 各种节点的工作原理,是力图帮助我们能攀登到 Maya 贴图技术的顶峰,从而构造出一套有条不紊体系结构。随着经验的增长,不久我...
标签: Web开发
提要 本文将解释如何使用AJAX和JSON分析器在客户端和服务器之间创建复杂的JSON数据传输层。 一、 引言 毫无疑问,AJAX已经成为当今Web开发中一种强有力的用户交互技术,但是它的许多可能性应用仍然鲜为人知。在本文中,我们将来共同探讨如何使用JavaScript对象标志(JSON)和JSON分析器在服务器和客户端AJAX引擎之间创建复杂而强有...
    摘要:本文深入分析了Linux环境下文件、进程及模块的高级隐藏技术,其中包括:Linux可卸载模块编程技术、修改内存映象直接对系统调用进行修改技术,通过虚拟文件系统proc隐藏特定进程的技术。 隐藏技术在计算机系统安全中应用十分广泛,尤其是在网络攻击中,当攻击者成功侵入一个系统后,有效隐藏攻击者的文件、进程...
《细胞分裂4》高级佣兵技术 会员:RayFox<原创 直接进入主题,在偶前一操作篇提到了,佣兵被弱化了。所以4代佣兵的意识和反映一定要快,必须很快的对SPY的方位进行判断然后确定对其的攻击方式。 首先熟悉下佣兵视觉界面的几个重点吧! 然后最关键一点是对地形熟悉程度,大家如果平时没室自己建立主机选着SPY来熟悉地图,了解下SPY的众多的潜...

经验教程

336

收藏

90
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部