在Linux操作系统中部署有防火墙,通过这个防火墙可以实现不让其他主机扫描本机。
如果企业网络中有独立防火墙的话,再也可以实现类似的限制。如有些企业部署了入侵检测系统可以主动的阻止可疑的恶意行为,如NMAP扫描等等。但是NMAP命令结合一些选项使用,却可以跟防火墙或者入侵检测系统躲猫猫。
虽然有的管理员质疑NMAP开发者提供这些选项的意图,这些选项容易被攻击者利用。但是工具没有好坏,就看人怎么利用了。一些系统管理员往往利用NMAP命令的这些选项来提高网络部署的安全性。如我就喜欢利用这个命令来跟防火墙等安全软件玩躲猫猫的游戏。也就是说笔者伪装成一个攻击者,来测试这些安全系统能否阻挡我的攻击或者能否在安全系统日志内留下我的踪迹。换个角度思考,或许就能够发现企业的安全漏洞。
类似的选项有很多。出于篇幅的限制,不能够过多的阐述。我就只拿一些常用的选项来进行说明。
一、把报文进行分段。
像防火墙等类似的安全设备,都可以用来过滤扫描报文。但是这个过滤的策略并不是很安全。如现在利用NMAP命令的-f选项,可以将Tcp头分段在好几个包中。如此的话,防火墙或者入侵检测系统中的包过滤器就很难过滤这个TCP包。从而可以让SNMP扫描命令跟这些安全措施玩躲猫猫的游戏。
当使用-f选项时,一个20字节的TCP头会被分割成三个包,其中两个包分别有TCP头的八个字节;另外一个包具有TCP头剩下的四个字节。通常情况下安全措施所采用的包过滤器会对所有的IP分段进行排队,而不会直接使用这些分段包。由于对报文进行了分段,那么这些过滤器就很难识别这些包的类型。然后这些包会在主机处重新进行整合,变成一个合法的TCP包。在大多数情况下这些安全措施应该禁止这些包。因为这些包会给企业的网络带来很大的性能冲击,无论是防火墙或者终端设备都会受到影响。如Linux系统的防火墙中有一个配置项,就可以通过禁止对IP分段进行排队而限制对TCP包进行分段。
可见nmap –f命令对防火墙等安全措施具有一定的欺骗性。我们刚好可以利用这个命令来测试我们所采用的安全软件是否真的安全。据我了解,虽然这个安全隐患已经出现许多年了,但是现在不是所有的安全产品都能够对此进行有效的预防。所以采用这个-f选项可以帮助系统管理员一针见血的判断所采用的安全产品能否应对这个可能的攻击。如在防火墙上设置禁止扫描,然后系统管理员再利用nmap –f命令无法得到应有的结果时,则表明防火墙策略有效。但是相反其仍然可以正常的返回结果(可能时间会长一点),则表明nmap –f命令可以成功的跟防火墙玩猫猫。系统管理员需要注意一下Linux防火墙的安全性了。
二、利用假的IP地址进行扫描。
通常情况下像防火墙或者客户端电脑都可以记录下访问者的相关信息,如IP地址等等。为此如果采用nmap命令来进行扫描的话,那就会在防火墙或者客户端主机上留下扫描着的IP地址。留下这个“罪证”对于扫描着可就非常不利了。另外在防火墙的配置上,系统管理员可能允许某个特定的IP地址可以进行扫描作业。而其他IP地址发出的扫描数据包都会被过滤掉。在这种情况下,无论是为了隐藏自己的真实身份,又或者是冒用合法地址进行NMAP扫描,都需要用到一种叫做源地址哄骗的技术。
说到这种技术,我不得不说说最近出现的一种手机诈骗手段,跟这个源地址哄骗非常类似。有时候我们会接到朋友打过来的电话或者发过来的短消息,要求我们汇钱过去。虽然此时手机上显示的是朋友的手机号码,其实发短信的人不一定是你的朋友。因为现在有一种技术可以把发送者的手机号码进行修改。发送者想显示什么号码就是什么号码。其实这个源地址哄骗跟这个手机号码欺骗是类似的道理。通过“nmap –s 扫描者IP地址 被扫描者IP地址”这种方式,攻击者可以把自己的IP地址隐藏掉,而采用一个假冒的IP地址。无论这个IP地址是否在网络中存在,都可以使用。在防火墙或者操作系统的日志上显示的都是伪装过的那个IP地址。
为此在选购防火墙等安全产品的时候,Linux系统管理员可以利用nmap –s命令来测试防火墙是否具有应对源地址哄骗攻击的手段。如先在防火墙上启用日志功能,然后利用nmap –s命令来扫描防火墙或者其他主机设备。再去查看相关的日志。看看这个日志中纪录的IP地址信息是伪装的IP地址还是扫描者真实的IP地址。通过这种方式就可以简单的判断出防火墙等安全产品能否应对类似的源地址欺骗攻击。虽然日志记录的攻击者真实身份有点像放马后炮,但是对于我们迅速查找攻击者,防止其再次发动攻击具有很大的价值。为此一些安全产品中需要具备一些源地址哄骗的预防功能。