精品推荐
远程主机探测技术FAQ集 - 扫描篇
日期:2007年7月13日 作者: 查看:[大字体
中字体 小字体 ]
1:扫描工具究竟是什么?信息收集是入侵及安全状况分析的基础,传统地手工收集信息耗时费力,于是扫描工具出现了,它能依照程序设定自动探测及发掘规则内的漏洞,是探测系统缺陷的安全工具。 扫描器主要分主机扫描器及网络扫描器两大类型: 系统扫描器用于扫描本地主机,查找安全漏洞,查杀病毒,木马,蠕虫等危害系统安全的恶意程序,此类非本文重点,因此不再详细分析网络扫描器通过网络来测试主机安全性,它检测主机当前可用的服务及其开放端口,查找可能被远程试图恶意访问者攻击的大量众所周知的漏洞,隐患及安全脆弱点。甚至许多扫描器封装了简单的密码探测,可自设定规则的密码生成器、后门自动安装装置以及其他一些常用的小东西,这样的工具就可以称为网络扫描工具包,也就是完整的网络主机安全评价工具[比如鼻祖SATAN和国内最负盛名的流光] 另外还有一种相对少见的数据库扫描器,比如ISS公司的 Database Scanner,工作机制类似于网络扫描器 ,主要用于检测数据库系统的安全漏洞及各种隐患。 2:扫描器究竟能干什么? [1] 端口及服务检测 检测 目标主机上开放端口及运行的服务,并提示安全隐患的可能存在与否 [2] 后门程序检测 检测 PCANYWAY VNC BO2K 冰河等等远程控制程序是否有存在于目标主机 [3] 密码探测 检测 操作系统用户密码,FTP、POP3、Telnet等等登陆或管理密码的脆弱性 [4] 应用程序安全性探测 检测 CGI漏洞,WEB服务器[IIS,APACHE等],FTP服务器等的安全漏洞 [5] D.o.S探测 检测 各种拒绝服务漏洞是否存在 [6] 系统探测 检测 系统信息比如NT 注册表,用户和组,网络情况等 [7] 输出报告 将检测结果整理出清单报告给用户,许多扫描器也会同时提出安全漏洞解决方案 [8] 用户自定义接口 一些扫描器允许用户自己添加扫描规则,并为用户提供一个便利的接口,比如俄罗斯SSS的Base SDK 3:什么人经常使用/需要使用这种工具? 以提供安全检测服务的安全公司的技术员在得到客户授权后,需要使用扫描工具来对客户的主机进行漏洞发掘,查点工作,在对主机彻头彻尾检查过之后,才能完成他的工作--提交给客户关于主机完整详细的安全解决方案 网络上常流窜着许多精力过剩的脚本小子[Script kiddie],他们的主要工作[当然,也是他们的娱乐]就是在网络上四处搜寻一些公开的exploit信息,然后通过搜索引擎等WEB工具,匹配特殊的字符串来搜索存在这些漏洞的主机,以进行他们的游戏,在这个过程中扫描工具绝对是他们的一大帮凶,没有扫描工具的协助,他们很可能不能如此迅速[对一些脚本小子来说,没有了扫描工具意味着无法进行入侵行动]地进入你的主机! 可见,存在于网络上的扫描工具亦正亦邪,关键在于使用它们的人的动机。 4:在进一步了解扫描技术之前我该知道什么? 当然,必须有必要的网络基础知识,我假设看到这篇文章的读者均已经了解了TCP/IP协议最基础的一些东西,比如协议层和其性质等等 下面让我们来复习一下TCP数据包包头的结构,之后的原理介绍将牵涉到其中的内容,而且这些东西估计许多人都记不住:) TCP数据包包头有6个位,FIN、SYN、PSH、RST、ACK和URG ACK 置1,表示确认号有效;清0,表示数据包中不包含确认,确认号域将被忽略 PSH 表示数据包的接受者将收到的数据直接交给应用程序,而不是把它放在缓冲区,等缓冲区满才交给应用程序。这常用于实时通信。 RST 用来重置一个连接。用于一台主机崩溃或者其他原因引起的通信混乱。它也被用来拒绝接受一个无效的TCP数据包,或者用来拒绝一个建立连接的企图。当得到一个置RST位的TCP数据包时,通常说明本地机器有点问题。 SYN 用来建立一个连接。在请求连接的数据包中,SYN=1、ACK=0 指明确认域没有使用,对连接请求需要应答,所以,在应答的TCP数据包中SYN=1、ACK=1。SYN通常被用来指明请求连接和请求被接受。而用ACK来区分这两种情况。 FIN 用来释放一个连接。它指出发送者已无数据要发送。不过关闭一个连接后,进程还可以继续接收数据。SYN和FIN的TCP数据包都有序列号。因此这样可保证数据按正确的顺序被接收并处理。 5:扫描工具的扫描原理和它们的隐蔽性如何? 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 扫描时可能暴露自身的话可以一试这种方法。
复制本页网址和标题,发送给你QQ/Msn的好友一起分享
上一篇:火凤凰2.0使用教程
下一篇:解密教程(二) 下
远程主机探测技术FAQ集 - 扫描篇 相关文章:
远程主机探测技术FAQ集 - 扫描篇 相关软件: