《第二十一章网络信息获取》由会员分享,可在线阅读,更多相关《第二十一章网络信息获取(20页珍藏版)》请在金锄头文库上搜索。
1、1软软件件学学院院网络信息获取网络信息获取 扫描器扫描器扫描器基本概念扫描原理监听监听网络监听的概念和工作原理网络监听在Windows2000下的基本实现方法NETVIEW监听器示例Linux下的BBS监听程序例子侦听检测侦听检测 2软软件件学学院院扫描器基本概念扫描器基本概念 扫描器是一种自动检测远程或本地主机安全扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器你可一不留痕迹性弱点的程序,通过使用扫描器你可一不留痕迹的发现远程服务器的各种的发现远程服务器的各种TCP端口的分配及提供端口的分配及提供的服务和它们的软件版本。的服务和它们的软件版本。 扫描器通过选用远程扫描器通过
2、选用远程TCP/IP不同的端口的服不同的端口的服务,并记录目标给予的回答,通过这种方法,可务,并记录目标给予的回答,通过这种方法,可以搜集到很多关于目标主机的各种有用的信息以搜集到很多关于目标主机的各种有用的信息 扫描器并不是一个直接的攻击网络漏洞的程扫描器并不是一个直接的攻击网络漏洞的程序,它仅仅能帮助我们发现目标机的某些内在的序,它仅仅能帮助我们发现目标机的某些内在的弱点弱点 3软软件件学学院院扫描器种类主要有扫描器种类主要有 NNS(网络安全扫描器) STROBE(超级优化TCP端口检测程序) SATAN(安全管理员的网络分析工具) Jakal(秘密扫描器) IdenTCPscan ES
3、PScan XSCAN 4软软件件学学院院扫描器应该有三项功能:扫描器应该有三项功能:发现一个主机或网络的能力;一旦发现一台主机,有发现什么服务正运行在这台主机上的能力;通过测试这些服务,发现漏洞的能力。 5软软件件学学院院扫描原理扫描原理TCPconnect()扫描基本原理TCPconnect是最基本的TCP扫描。操作系统提供的connect()系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么connect()就能成功。否则,这个端口是不能用的,即没有提供服务。 TCPSYN扫描扫描程序发送的是一个SYN数据包,好象准备打开一个实际的连接并等待反应一样(参考
4、TCP的三次握手建立一个TCP连接的过程)。一个SYN|ACK的返回信息表示端口处于侦听状态。一个RST返回,表示端口没有处于侦听态。如果收到一个SYN|ACK,则扫描程序必须再发送一个RST信号,来关闭这个连接过程。 6软软件件学学院院TCPFIN扫描TCPFIN扫描方法的思想是关闭的端口会用适当的RST来回复FIN数据包。另一方面,打开的端口会忽略对FIN数据包的回复。 IP段扫描IP段扫描不能算是新方法,只是其它技术的变化。它并不是直接发送TCP探测数据包,是将数据包分成两个较小的IP段。这样就将一个TCP头分成好几个数据包,从而过滤器就很难探测到。 7软软件件学学院院TCP反向反向id
5、ent扫描扫描 ident协议允许(rfc1413)看到通过TCP连接的任何进程的拥有者的用户名,即使这个连接不是由这个进程开始的。因此你能,举个例子,连接到http端口,然后用identd来发现服务器是否正在以root权限运行。这种方法只能在和目标端口建立了一个完整的TCP连接后才能看到。 FTP返回攻击返回攻击 FTP协议的一个有趣的特点是它支持代理(proxy)FTP连接。即入侵者可以从自己的计算机和目标主机的FTPserver-PI(协议解释器)连接,建立一个控制通信连接。然后,请求这个server-PI激活一个有效的server-DTP(数据传输进程)来给Internet上任何地方发
6、送文件。 8软软件件学学院院UDPICMP端口不能到达扫描端口不能到达扫描 这种方法与上面几种方法的不同之处在于使用的是UDP协议。 许多主机在你向一个未打开的UDP端口发送一个数据包时,会返回一个ICMP_PORT_UNREACH错误。这样你就能发现哪个端口是关闭的。UDP和ICMP错误都不保证能到达,因此这种扫描器必须还实现在一个包看上去是丢失的时候能重新传输。 9软软件件学学院院UDPrecvfrom()和和write()扫描扫描 当非root用户不能直接读到端口不能到达错误时,Linux能间接地在它们到达时通知用户。比如,对一个关闭的端口的第二个write()调用将失败。在非阻塞的UD
7、P套接字上调用recvfrom()时,如果ICMP出错还没有到达时回返回EAGAIN-重试。如果ICMP到达时,返回ECONNREFUSED-连接被拒绝。这就是用来查看端口是否打开的技术。10软软件件学学院院ICMPecho扫描这并不是真正意义上的扫描。但有时通过ping,在判断在一个网络上主机是否开机时非常有用。 11软软件件学学院院网络信息获取网络信息获取 扫描器扫描器扫描器基本概念扫描原理监听监听网络监听的概念和工作原理网络监听在Windows2000下的基本实现方法NETVIEW监听器示例Linux下的BBS监听程序例子侦听检测侦听检测 12软软件件学学院院网络监听的概念和工作原理网络
8、监听的概念和工作原理监听器(监听器(Sniffer)本是提供给网络管理员的一类工)本是提供给网络管理员的一类工具,利用这类工具,可以监视网络的状态,数据具,利用这类工具,可以监视网络的状态,数据流动情况以及网络上传输的信息以便找出网络中流动情况以及网络上传输的信息以便找出网络中潜在的问题。潜在的问题。 包监听和网络监测最初是为了监测以太网的流量而包监听和网络监测最初是为了监测以太网的流量而设计的,最初的代表性产品就是设计的,最初的代表性产品就是NOVEL的的LANALYSER和和MS的的NETWORKMONITOR。 13软软件件学学院院网络监听的概念和工作原理网络监听的概念和工作原理在正常情
9、况下,一个合法的网络接口应只响应下面在正常情况下,一个合法的网络接口应只响应下面两种数据报:报文的目的地址与本地网络接口地两种数据报:报文的目的地址与本地网络接口地硬件地址相匹配,报文的目的地址是广播地址。硬件地址相匹配,报文的目的地址是广播地址。所有包监听都需要网卡被设置为杂乱模式,因为仅所有包监听都需要网卡被设置为杂乱模式,因为仅在此模式下,所有通过网卡的数据可以被传送到在此模式下,所有通过网卡的数据可以被传送到监听器,包监听的使用前提是安装他的机器上使监听器,包监听的使用前提是安装他的机器上使用者具有管理员权限。用者具有管理员权限。 14软软件件学学院院网络监听在网络监听在Windows
10、2000下的基本实现方法下的基本实现方法为了实现为了实现Sniffer,需要将,需要将NIC设置为设置为promicuous模式。模式。 为了提高编写网络驱动程序的效率,也为了使各种为了提高编写网络驱动程序的效率,也为了使各种协议驱动程序在各种网卡之间独立,协议驱动程序在各种网卡之间独立,Microsoft创创建了一个网络驱动程序界面规范,即建了一个网络驱动程序界面规范,即Network Device Interface Specification(NDIS) ,这个规,这个规范是为原本复杂的网络驱动程序编写框架提供一范是为原本复杂的网络驱动程序编写框架提供一个并不严格的封装。个并不严格的封装
11、。 在在Windows2000下,集成了新版本的下,集成了新版本的Winsock,即,即Winsock2.2。在。在Winsock2.2中,中,Microsoft增加了增加了三个三个socker选项,使得一个选项,使得一个socket可以接收到更多可以接收到更多本来接收不到的本来接收不到的IP数据包,使得实现一个数据包,使得实现一个Sniffer简单了许多。简单了许多。 15软软件件学学院院NETVIEW监听器示例监听器示例此程序是一个以太网数据包捕获程序,在此程序是一个以太网数据包捕获程序,在WINDOWS2000下运行,可以稍加改动就移植到下运行,可以稍加改动就移植到WINDOWS98平台
12、下(使用平台下(使用Vpacket.vxd)。)。 主要实现功能:主要实现功能:以太网数据包的捕获数据包简单过滤与解码。 16软软件件学学院院Linux下的下的BBS监听程序例子监听程序例子BBS是较为常见的网络交流手段。但是在是较为常见的网络交流手段。但是在bbs的客户的客户端与服务端都没有安全机制来保护端与服务端都没有安全机制来保护 ,可以通过监,可以通过监听程序截获明文数据。听程序截获明文数据。17软软件件学学院院网络信息获取网络信息获取 扫描器扫描器扫描器基本概念扫描原理监听监听网络监听的概念和工作原理网络监听在Windows2000下的基本实现方法NETVIEW监听器示例Linux下
13、的BBS监听程序例子侦听检测侦听检测 18软软件件学学院院侦听检测侦听检测侦听检测系统能够主动地检测到不同系统下可能存侦听检测系统能够主动地检测到不同系统下可能存在的监听在的监听可以确定可疑机器的可以确定可疑机器的IP地址,记录下来并加以防范。地址,记录下来并加以防范。同时可以完成数据包检测的功能,也就是扮演另同时可以完成数据包检测的功能,也就是扮演另一个角色的监听,以防止敏感数据的外漏。一个角色的监听,以防止敏感数据的外漏。 19软软件件学学院院侦听检测侦听检测对发生在局域网的其他主机上的监听,一直以来,都缺乏很好对发生在局域网的其他主机上的监听,一直以来,都缺乏很好的检测方法。这是由于产生网络监听行为的主机在工作时总的检测方法。这是由于产生网络监听行为的主机在工作时总是不做声的收集数据包,几乎不会主动发出任何信息。但目是不做声的收集数据包,几乎不会主动发出任何信息。但目前已经有了一些解决这个问题的思路:前已经有了一些解决这个问题的思路:我们可以通过侦听网卡接收所有数据包而不理会Mac地址的这个特性,可以给它发送一些伪造的特殊的的包,让侦听所在的机器产生回应包,这样我们就可以判断被检测的网卡是否处于混杂模式下,然后判断其是否在侦听就有很大可能了。 20软软件件学学院院侦听检测侦听检测系统主要使用的技术:反应时间 观测DNS利用ping模式进行监测 利用arp数据包进行监测