学习啦>学习电脑>电脑安全>网络安全知识>

如何突破IDS入侵检测系统

权威分享

  什么是IDS?

  IDS是英文“Intrusion Detection Systems”的缩写,中文意思是“入侵检测系统”。专业上讲就是依照一定的安全策略,对网络、系统的运行状况进行监视,尽可能发现各种攻击企图、攻击行为或者攻击结果,以保证网络系统资源的机密性、完整性和可用性。

  那是不是有了这个入侵检测系统网络就安全,不会遭入侵了呢?小编只能遗憾的告诉你,并不是的,下面是小编收集的黑客惯用的入侵手段:

  第一招:“/./” 字符串插入法

  鉴于“./”的特殊作用,我们可以把它插入进URL中来实现URL的变形。比如对于/msadc/msadcs.dll,我们可以将它改写为/././msadc/././msadcs.dll、/./msadc/.//./msadcs.dll等形式来扰乱了IDS的识别标志分析引擎,实现了欺骗IDS的目的。而且改写后编码后的URL与未修改时在访问效果上是等效的。笔者曾经通过实验表明这种方法可以绕过Snort等IDS。

  第二招:“00 ” ASCII码

  前段时间动网上传漏洞就是利用的这一特性,大家肯定对此很熟悉了。它的原理就是计算机处理字符串时在ASCII码为00处自动截断。我们就可以把/msadc/msadcs.dll改写为/msadc/msadcs.dll Iloveheikefangxian,用Winhex将.dll与Ilove之间的空格换为00的ASCII码,保存后再用NC配合管道符提交。这样在有些IDS看来/msadc/msadcs.dll Iloveheikefangxian并不与它的规则集文件中规定为具有攻击意图的字符串相同,从而它就会对攻击者的行为无动于衷。瞧!“计算机处理字符串时在ASCII码为00处自动截断”这一原理的应用多么广泛啊!从哲学上讲,事物之间相互存在着联系,我们应该多思考,挖掘出内在规律,这样就会有新的发现。

  第三招:使用路径分隔符“\”

  对于像微软的IIS这类Web服务器,“\“也可以当“/”一样作为路径分隔符。有些IDS在设置规则集文件时并没有考虑到非标准路径分隔符“\”。如果我们把/msadc/msadcs.dll改写为\msadc\ msadcs.dll就可以逃过snort的法眼了,因为snort的规则集文件里没有\msadc\ msadcs.dll这一识别标志。值得一提的是路径分隔符“\”还有个妙用,就是前段时间《黑客防线》上提到的“%5c”暴库大法,“%5c”就是“\”的16进制表现形式。

  第四招:十六进制编码

  对于一个字符,我们可以用转义符号“%” 加上其十六进制的ASCII码来表示。比如/msadc/msadcs.dll中第一个字符“/”可以表示为%2F,接下来的字符可以用它们对应的16 进制的ASCII码结合“%”来表示,经过此法编码后的URL就不再是原先的模样了,IDS的规则集文件里可能没有编码后的字符串,从而就可以绕过IDS。但是这种方法对采用了HTTP预处理技术的IDS是无效的。

  第五招.非法Unicode编码

  UTF-8编码允许字符集包含多余256个字符,因此也就允许编码位数多于8位。“/”字符的十六进制的ASCII码是2F,用二进制数表示就是00101111。UTF-8格式中表示2F的标准方法仍然是2F,但是也可以使用多字节UTF-8来表示2F。字符“/”可以像下表中所示使用单字节、双字节、三字节的UTF-8编码来表示:

  “/”字符表示方式 二进制 十六进制

  单字节 0xxxxxxx 00101111 2F

  双字节 110xxxxx 10xxxxxx 11000000 10101111 C0 AF

  三字节 1110xxxx 10xxxxxx 10xxxxxx 11100000 10000000 10101111 E0 80 AF

  按照此方法,我们可以对整个字符串都进行相应的编码。虽然编码后的URL的最终指向的资源都相同,但它们的表达方式不同, IDS的规则集文件中就可能不存在此过滤字符串,从而就实现了突破IDS的目的。

  第六招: 多余编码法

  多余编码又称双解码。还记的2000-2001年IIS的Unicode解码漏洞和双解码漏洞闹得沸沸扬扬,那时有许多朋友稀里糊涂的以为Unicode解码漏洞就是双解码漏洞,其实它们两者是两回事,前者的原理笔者已在上述的“非法Unicode编码”中有所描述。而多余编码就是指对字符进行多次编码。比如“/”字符可以用%2f表示,“%2f”中的“%”、“2”、“f”字符又都可以分别用它的ASCII码的十六进制来表示,根据数学上的排列组合的知识可知,其编码的形式有2的3次方,于是“%2f”可以改写为:“%25%32%66”、“%252f”等等来实现URL的多态,编码后的字符串可能没被收集在IDS的规则集文件中,从而可以骗过有些IDS。

  第七招.加入虚假路径

  在URL中加入“../”字符串后,在该字符串后的目录就没有了意义,作废了。因此利用“../”字符串可以达到扰乱了识别标志分析引擎、突破IDS的效果!

  第八招:插入多斜线

  我们可以使用多个 “/”来代替单个的“/”。替代后的URL仍然能像原先一样工作。比如对/msadc/msadcs.dll的请求可以改为////msadc////msadcs.dll,经笔者曾经实验,这种方法可以绕过某些IDS。

    511909