第6章主机发现6.2.1背景描述黑客入侵网络的过程一般是首先利用扫描工具搜集目标主机或网络的详细信息,进而发现目标系统的漏洞或脆弱点,然后根据脆弱点的位置、详细说明展开攻击。安全管理员可以利用扫描工具的扫描结果信息及时发现系统漏洞并采取相应的补救措施,免受入侵者攻击。在黑客和安全管理员利用扫描工具搜集主机信息时,活动主机探测是扫描工具中工作的第一步,因为只有在去收集网络中存活主机的信息才有意义,并且只有这样才能提高扫描的效率。攻击者在知道了IP地址范围后,攻击者接下来就想知道哪些机器是活动的,哪些不是,甚至判断活动主机的类型。比如公司里一天中不同的时间有不同的机器在活动。一般攻击者在白天寻找活动的机器,然后在深夜再次查找,他就能区分工作站和服务器。因为服务器会一直被使用,而工作站只在正常工作日是活动的。6.2.2工作原理活动主机探测是向目标主机或目标主机的指定端口发送探测数据包,并记录目标主机的响应。通过分析响应的数据包来判断目标主机是否存活。活动主机探测技术主要有:1.ICMPPing。向目标主机发送ICMP回显请求(echorequest,ICMP类型为8)报文,期待从运行的主机得到ICMP回显应答(echoreply,ICMPtype0)报文,从而判断出目标主机的存活状态。通过采用并行轮转形式发送大量的ICMPping请求,可以用来对一个网段进行大范围的扫射,由此来确定主机存活情况。尽管并行轮转探测的准确率和效率都比较高,但是一般的边界路由器或防火墙都通过阻塞ICMP数据报限制了ICMPping探测。ICMP回显请求是标准的ICMPping查询,除了ICMP回显请求以外,在ICMP扫描技术中也用到NonECHOICMP技术。这种技术中主要用到ICMP时间戳请求、ICMP地址掩码请求和ICMP信息请求。虽然这些查询是用来获得主机信息如当前时间或地址掩码,但它们也可以很容易的用于主机发现,即有回应的主机就是活动的主机。当有些主机封锁了ICMP回显请求数据报而忘了封锁其它的ICMPping查询,这时用NonECHOICMP技术探测活动主机是很有价值的。2.TCPSYNPing。向目标主机的常用端口发送设置标志位为SYN的TCP数据报文,如果目标主机处于活动状态,将会返回标志位为SYN|ACK或RST的TCP数据报文。在目标主机活动的情况下,如果这个常用端口处于关闭的状态,目标主机返回RST数据报文;反之,就进行TCP三次握手的第二步,目标主机就返回SYN|ACKTCP数据报文。这种这个常用端口打开的探测是半开放的探测,因为探测程序没有必要去打开一个完全的TCP连接,当探测主机收到SYN|ACKTCP数据报文时,马上向目标主机发送RST包,来终止TCP第三次握手。这种探测的缺点是,必须要有root权限才能够构造和发送SYN数据包,并且在通常情况下,大多数管理员会配置他们路由器或者其它简单的防火墙来封锁SYN数据报文。3.TCPACKping。向目标主机的常用端口发送设置标志位为ACK的TCP数据报文,如果目标主机处于活动状态,无论这个常用端口打开还是关闭,都会返回标志位为RST的TCP数据报文。这种探测方法也同样需要root权限。有一种常用的防火墙,它是利用有状态的规则来封锁预期的数据报文,开始这一特性只存在于高端防火墙,但是这些年来他越来越普遍。这些防火墙会根据连接的状态把报文进行分类,通常ACK报文被识别而过滤掉。4.UDPPing。向目标主机的指定端口发送UDP数据包文,如果目标主机处于活动状态,并且所指定端口为关闭的,目标主机会返回ICMP端口无法到达的回应报文;如果指定端口是一个开放的端口,大多服务紧紧忽略这个报文而不做任何回应。因此,这个指定端口通常必须是一些不常用的端口,因为只有选这些不常用的端口才能保证此方法的有效性和可行性。这种探测方法可以穿越只过滤TCP的防火墙或过滤器。网络入侵者懂得通过查看端口扫描程序,并通过相当准确的结果来断定活动主机是一台NT机还是一台Unix机。当攻击基于NT的网络时,NetBIOS往往是首选的攻击对象,通过扫描NetBIOS,攻击者可以获得该活动主机的IP地址、工作组和MAC地址等。用NetBIOS进行信息收集相当容易,虽然要花费一点时间。NetBIOS一般被看作是开销很大的大容量协议,速度往往很慢,这也就是要耗费时间的原因。如果端口扫描程序报告端口139在目标机上是开放的,那么第一步是发出NBTSTAT命令。NBTSTAT命令可以用来查询涉及到NetBIOS信息的网络机器。另外,它还可以用来消除NetBIOS高速缓存器和预加载LMHOSTS文件。这个命令在进行安全检查时非常有用。用于发现活动主机的扫描工具有很多,常用的有SuperScan、X-scan、流光、Nmap、局域网入侵器等,也可以使用命令如ping、nbtstat等来探测活动主机。防御策略。扫描活动主机的工具很多,但其基本原理都是使用ping命令进行扫射试探,所以防止攻击者ping扫描的策略可以在系统里禁止ping入。比如,使用的系统的是Windows2003,可以通过组策略禁止ping的方法来实现:1.先打开“开始→管理工具→本地安全策略”,打开“本地安全设置”对话框。鼠标右键单击对话框左侧的“IP安全策略,在本地计算机”选项,执行“管理IP筛选器表和筛选器操作”命令;在弹出对话框的“管理IP筛选器列表”标签下单击[添加]按钮,命名这个筛选器的名称为“禁止Ping”,描述语言可以为“禁止任何其他计算机Ping我的主机”,单击[下一步];选择“IP通信源地址”为“我的IP地址”,单击[下一步];选择“IP通信目标地址”为“任何IP地址”,单击[下一步];选择“IP协议类型”为“ICMP”(Ping和Tracert等命令操作都是利用ICMP协议中的报文进行的),单击[下一步],最后点击[完成]结束添加。之后切换到“管理筛选器操作”标签下,依次单击“添加→下一步”,命名筛选器操作名称为“阻止所有连接”,描述语言可以为“阻止所有网络连接”,单击[下一步];点选“阻止”选项作为此筛选器的操作行为,最后单击[下一步],完成所有添加操作。2.单击控制台中的“IP安全策略,在本地计算机”选项,执行[创建安全策略]命令,然后单击[下一步]按钮;命名这个IP安全策略为“禁止Ping主机”,描述语言为“拒绝任何其他计算机的Ping要求”,并单击[下一步];勾选“激活默认响应规则”后,单击[下一步];在“默认响应规则身份验证方法”对话框中点选“使用此字符串保护密钥交换”选项,并在下面的文字框中任意键入一段字符串(如“NOPing”),单击[下一步];最后勾选“编辑属性”,单击[完成]按钮结束创建。3.在打开的“禁止Ping属性”对话框中的“常规”标签下单击“添加→下一步”,点选“此规则不指定隧道”并单击[下一步];点选“所有网络连接”,保证所有的计算机都Ping不通该主机,单击[下一步];在“IP筛选器列表”框中点选“禁止Ping”,单击[下一步];在“筛选器操作”列表框中点选“阻止所有连接”,单击[下一步];取消“编辑属性”选项并单击[完成],结束配置。4.安全策略创建完毕后并不能马上生效,还需通过“指派”功能令其发挥作用。右击“本地安全设置”对话框右侧的“禁止Ping主机”策略,执行“指派”命令,即可启用该策略。6.2.3实验列表实验序号实验名称实验一主机发现【实验一】主机发现【实验分析】实验目的:了解主机发现的工作原理;掌握如何使用工具,发现活动的主机。掌握nbtstat及其扫描的工作原理、nbtstat的常用命令。场景描述:图6-2-1实验拓扑图本次实验可以在虚拟机的环境下模拟完成。实验拓扑图如图6-2-1所示,基本思路是:用户A(IP为192.168.9.70)利用扫描工具局域网入侵器扫描所在网段的主机。实验工具:netstat扫描工具、“局域网入侵器”【实验步骤】1.登录主机192.168.9.70,运行局域网入侵器(图6-2-2)图6-2-2局域网入侵器运行主界面2.选择IP地址段,在“起始”处填入192.168.9.1,在“终止”处填入192.168.9.254,默认描方式是“采用Nbtstat扫描”(图6-2-3)图6-2-3填入扫描信息3.点击“扫描”。开始扫描192.168.9.0网段的主机(图6-2-4)图6-2-4扫描192.168.9.0网段的主机4.扫描结束后就会自动的扫描发现整个网段的主机的相关信息显示出来;如:IP地址、工作组、主机、MAC地址都会详细的显示出来。这就是网络中最典型的主机发现,收集到的这些信息,被黑客加以利用,就可以为下一步的入侵做铺垫工作(图6-2-5)图6-2-5扫描结果