| 远程主机探测技术FAQ集 - 扫描篇 | ★★★ |
| 远程主机探测技术FAQ集 - 扫描篇 | ||
| 作者:哽咽 文章来源:本站原创 更新时间:2007-5-7 4:44:41 【字体:小 大】 | ||
1:扫描工具究竟是什么? 信息收集是入侵及安全状况分析的基础,传统地手工收集信息耗时费力,于是扫描工具出现了,它能依照程序设定自动探测及发掘规则内的漏洞,是探测系统缺陷的安全工具。 2:扫描器究竟能干什么? [1] 端口及服务检测 检测 目标主机上开放端口及运行的服务,并提示安全隐患的可能存在与否 3:什么人经常使用/需要使用这种工具? 以提供安全检测服务的安全公司的技术员在得到客户授权后,需要使用扫描工具来对客户的主机进行漏洞发掘,查点工作,在对主机彻头彻尾检查过之后,才能完成他的工作--提交给客户关于主机完整详细的安全解决方案 4:在进一步了解扫描技术之前我该知道什么? 当然,必须有必要的网络基础知识,我假设看到这篇文章的读者均已经了解了TCP/IP协议最基础的一些东西,比如协议层和其性质等等 TCP数据包包头有6个位,FIN、SYN、PSH、RST、ACK和URG
TCP connect : 这种类型就是最传统的扫描技术,程序调用connect()套接口函数连接到目标端口,形成一次完整的TCP三次握手过程,显然能连接得上的目标端口就是开放的。在UNIX下使用这种扫描方式不需要任何权限。还有一个特点,它的扫描速度非常快,可以同时使用多个socket来加快扫描速度,使用一个非阻塞的I/O调用即可以监视多个 socket. 不过由于它不存在隐蔽性,所以不可避免的要被目标主机记录下连接信息和错误信息或者被防护系统拒绝 TCP SYN : 这种类型也称为半开放式扫描[half-open scanning] 原理是往目标端口发送一个SYN包,若得到来自目标端口返回的SYN/ACK响应包,则目标端口开放,若得到RST则未开放。在UNIX下执行这种扫描必须拥有ROOT权限。由于它并未建立完整的TCP三次握手过程,很少会有操作系统记录到,因此比起 TCP connect 扫描隐蔽得多,但是若你认为这种扫描方式足够隐秘,那可就错了,有些防火墙将监视TCP SYN扫描,还有一些工具比如synlogger和courtney也能够检测到它。为什么?因为这种秘密扫描方法违反了通例,在网络流量中相当醒目,正是它的刻意追求隐蔽特性留下了狐狸尾巴! TCP FIN : 原理:根据RFC 793文档 程序向一个端口发送FIN,若端口开放则此包将被忽略,否则将返回RST,这个是某些操作系统TCP实现存在的BUG,并不是所有的操作系统都存在这个BUG,所以它的准确率不高,而且此方法往往只能在UNIX上成功地工作,因此这个方法不算特别流行。不过它的好处在于足够隐蔽,如果你判断在使用TCP SYN 扫描时可能暴露自身的话可以一试这种方法。 TCP reverse ident 扫描:1996年 Dave Goldsmith 指出 ,根据RFC1413文档,ident协议允许通过TCP连接得到进程所有者的用户名,即使该进程不是连接发起方。此方法可用于得到FTP所有者信息,以及其他需要的信息等等。 TCP Xmas Tree 扫描 :根据RFC 793文档,程序往目标端口发送一个FIN 、URG和PUSH包,若其关闭,应该返回一个RST包 TCP NULL 扫描 :根据RFC 793文档,程序发送一个没有任何标志位的TCP包,关着的端口将返回一个RST数据包。 TCP ACK 扫描 : 这种扫描技术往往用来探测防火墙的类型,根据ACK位的设置情况可以确定该防火墙是简单的包过滤还是状态检测机制的防火墙 TCP 窗口扫描 : 由于TCP窗口大小报告方式不规则,这种扫描方法可以检测一些类UNIX系统[AIX , FreeBSD等] 打开的以及是否过滤的端口。 TCP RPC 扫描 : 这个方式是UNIX系统特有的,可以用于检测和定位远程过程调用[RPC]端口及其相关程序与版本标号。
UDP recvfrom() 和 write() 扫描: 由于UNIX下非ROOT用户是不可以读到端口不可达信息,所以NMAP提供了这个仅在LINUX下才有效的方式。在LINUX下,若一个UDP端口关闭,则第二次write()操作会失败。并且,当我们调用recvfrom()的时候,若未收到ICMP错误信息,一个非阻塞的UDP 套接字一般返回EAGAIN("Try Again",error=13),如果收到ICMP的错误信息,套接字返回ECONNREFUSED("Connectionrefused",error=111)。通过这种方式,NMAP将得知目标端口是否打开 [BTW: Fyodor 先生真是伟大!] 分片扫描: 这是其他扫描方式的变形体,可以在发送一个扫描数据包时,将数据包分成许多的IP分片,通过将TCP包头分为几段,放入不同的IP包中,将使得一些包过滤程序难以对其过滤 ,因此这个办法能绕过一些包过滤程序。不过某些程序是不能正确处理这些被人为分割的IP分片,从而导致系统崩溃,这一严重后果将暴露扫描者的行为! FTP跳转扫描 : 根据RFC 959文档,FTP协议支持代理 [PROXY], 形象的比喻:我们可以连上提供FTP服务的机器A,然后让A向我们的目标主机B发送数据,当然,一般的FTP主机不支持这个功能。我们若需要扫描B的端口,可以使用PORT命令,声明B的某个端口是开放的,若此端口确实开放,FTP 服务器A将返回150和226信息,否则返回错误信息 :"425 Can't build data connection: Connection refused".这种方式的隐蔽性很不错,在某些条件下也可以突破防火墙进行信息采集,缺点是速度比较慢。 ICMP 扫射 不算是端口扫描,因为ICMP中无抽象的端口概念,这个主要是利用PING指令快速确认一个网段中有多少活跃着的主机。 6. 哪些扫描工具比较优秀? nMAP :世界上最受黑客欢迎的扫描器,能实现秘密扫描、动态延迟、重发与平行扫描、欺骗扫描、端口过滤探测、RPC直接扫描、分布扫描等,灵活性非常好,功能强大 。 官方主页http://www.insecure.org/nmap/ SATAN 扫描器的鼻祖,它采用Perl写的内核,通过PERL调用大量的C语言的检测工具对目标网站进行分析,因此可以嵌入浏览器中使用。 X-scan 国内著名网络安全站点-安全焦点的牛人 glacier [冰河作者,也是知名女黑客wollf的好老公~~:P] 的作品,个人认为作为纯粹的扫描器来说此物胜于小榕的流光。随着版本号提升,性能也越来越优秀,颇有实力和发展潜力的宝贝! 好话不多说,请直接去焦点DOWN! www.xfocus.net 流光 不得不承认这个程序是国内顶尖的扫描工具,整和了强大的破解和攻击成份。不过由于它的封装性太高,不适合学习技术,小榕主页 :www.netxeyes.com ISS ISS公司开发和维护商业性质的漏洞扫描程序,第一个可公开得到的多层次扫描器[虽然不免费],可移植性和灵活性都很好。 其他还有易于使用的CIS[Cerberus Internet Scanner],17岁天才少年开发的基于UNIX的扫描器-Nessus ;俄罗斯程序员开发的SSS, 还有其他各类有特色的扫描器,种类繁多,在此不一一介绍了。
TCP connect 扫描将直接被主机日志系统记录,后来发展出一些 TCP SYN 等所谓隐秘的扫描手段,但是由于这些隐秘扫描方法实际上是非常规地利用协议,与正常的访问有很大差别,在网络流量中特别醒目,只要安装了对应防护程序,也容易被记录这些扫描,于是事实上还是不够隐秘。目前几乎所有的IDS都能比较准确地检测到系统遭受了网络扫描,因为在网络探测手段中,扫描是最简单粗暴而嘈杂的方法,无异于大摇大摆从正门破门而入的愚蠢的小偷一般。普遍认为,扫描者需要足够的耐心,对同一主机使用缓慢的分布式扫描方法,间隔时间足够让入侵检测系统忽略,不按顺序扫描整个网段,将探测步骤分散在几个会话中,不应该导致系统或网络出现明显异常,不导致日志系统快速增加记录,那么这种扫描将是比较隐秘的。不过早期的IDS是预先定义一个时间段,在这个时间段内如发现了超过某一预订值的连接次数,就认为是端口扫描。对这些比较原始的IDS,缓慢及分布式的扫描隐秘性尚且不错,但若IDS能对收集到的长期数据进行系统分析分析[搭配专家系统],这样即使 |
||
|
||
| 文章录入:哽咽 责任编辑:哽咽 | ||
您现在的位置: