分享
 
 
 

评“逃避ids的50种方法”

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

编者注:也许IDS是可以被突破的,但不会是这么容易。

我们的一些顾客谈到Fred Cohen先生写了一篇非常优秀的关于ids系统弱点的文章”50条躲避ids的方法”。所有的50条方法都在下面列 出。原始版本可以从http://all.net得到。Cohen 先生声称ids系统对改善网络安全只能起一点点的作用。他的文章列出了50种攻击者可以躲过 ids的方法。我对这50种方法逐一进行批驳。

1.在通常的入侵中加入无关的字符将会导致ids失败。例如,你可以在shell命令中加入”&& true”,这不会对操作有任何负面影响,但 将躲过ids的检测。

这仅仅在宽容接受输入的系统中有效。例如,PHF攻击使用字符串”/cgi-bin/phf”,在它的前面或后面增加任何字符,web server都不 会接受这个请求。如果用”tprof”攻击老的AIX系统时使用上面的方法,”tprof”将会在一些地方被调用。多数ids能正确的匹配。只有极少 数的ids系统试图匹配复杂的模式 ,大部分都只是匹配攻击中的一小部分关键的。

2.在命令中使用tabs代替空格,因为大部分当前的ids系统不会检查所有的分隔符,使用非标准的分隔符将躲过ids。在unix的shell中, 你也可以用”,”代替“;”。

类似第一条。使用tabs代替空格来运行”tprof”,在命令行中会出现”tprof”。这样,基于主机或网络的ids会发现这次攻击。

3.类似第二条,你可以在系统中改变分隔符,例如把%作为分隔符。这几乎会把大部分的ids搞糊涂。

这要求改变IFS(internal field separator)。许多基于主机的ids将会监测到IFS的改变。许多基于网络的ids不会集中考虑复杂的模式 。无论如何,前三条不会影响基于主机的ids,例如Tripwire,Stalker,CMDS。

4.重新排列一个攻击次序,例如攻击顺序是“a;b;c”,并且以“b;a;c”的顺序也能成功。许多ids将检测不到第二种攻击。

逻辑上这是一个吸引人的说法,但现代的攻击一步就能成功。这些攻击会被许多ids发现。复杂的攻击中,它们的一些步骤会被发现。

5.将一个标准的攻击由一个以上的人进行。还使用“a;b;c”的例子,如果用户X进行”a:b”,用户Y进行”c”,那么攻击者几乎肯定不 会被发现。

同样,如果要求有步骤”a”,”b”,”c”,那么ids极有可能发现他们中的一步,不管是那个用户执行它。使用多个账号确实会搞糊涂 管理员,但攻击还是会被发现。

6.将一个标准的攻击分在多个会话中完成。第一次登陆进行”a;b”,然后logout,再登陆到系统进行“c”。

如同第五条。得到root权限的溢出脚本可能有多行,但最关键的只有一行。例如,不得不有一条命令使非特权用户成为特权用户。

7.用多个ip地址/系统进行攻击。登陆到X、Y,从X进行”a”,从Y进行”b”,再从X进行”c”。

同样,类似5和6。多出来的连接会引起基于网络的ids的注意。一些ids产品,例如CMDS将会发现短时间内从多个ip发起的远程连接。

8.为攻击中使用的命令定义一个宏。例如,为cp设置一个shell变量$ZZ,然后使用$ZZ代替cp。

增加了复杂性,但是ids将会察觉这次访问。想象一个ids在“tprof”程序中触发。他将记录这一事件。为/etc/passwd定义一个shell变 量也一样,ids系统将会发现在一次telnet中对/etc/passwd文件的存取。所以,这些技术在基于主机的ids如CMDS,Stalker,Tripwire中几乎不 会有什么作用。

9.为命令参数定义一个宏。例如,使用$P代替/etc/passwd。

参考8。

10.用脚本代替输入的命令。通常ids不会注意到这个脚本。

这是第一个确实可能的技术。但没有提到在攻击成功后发生的事情。像CMDS这样的工具将察觉不正常的登陆。Tripwire将发现一些后门 。给nmap、strobe这样的工具改名确实是好主意,但是一旦使用他们,基于网络的ids就会发现他们。如果执行一个获得root权限的脚本,许多 ids产品足够察觉攻击中的变化。这已经在4,5,6,7中讨论了。

Bonus attack ? 在攻击指令中加注释,将不会被察觉。如果这是一个得到root权限的脚本,大部分ids系统都健壮到足以发现攻击中的不同。这在4,5,6,7种已经讨论过了。

11.使用不同的命令完成相同的功能。例如,通常在unix shell中 ”echo *”等效于”ls”。

当攻击系统的时候,任然需要运行”tprof”之类。即使在另一个系统上把它编译成仅仅运行”trpof”的二进制程序,许多ids系统如Stalker 、SeOS也会发现从非特权用户向特权用户的转变。

12.在攻击中改名。例如,攻击使用临时文件”xxx”,你可以把它改名为“yyy”。

这假定ids系统只搜索指定的文件名,参见11。

13.建立一个对照表对关键字进行翻译。然后进行字符替换,例如,可以使用sed作字符替换。

同11。

14.对指令用”ebcdic”编码,并且把终端类型改为“ebcdic”终端。因为所有的字符编码都改变了,所以ids不会察觉到你的行为。

同11。

15.对指令加密,例如,使用ssh,可以防止sniffer,网络ids产品一般包括sniffer功能。

仅对基于网络的ids有用。基于主机的ids在ssh下对用户行为可以进行完全的控制。

16.发送时使用后缀符号,然后在其他地方再翻译回来。Ids不会理解这些符号。

同15。

17.和目标机之间用全双工通信,ids理解不了附加的字符。

Dragon,T_Sight和所有版本的DoD NID程序可以对付这些情况。

18.在一次入侵中交互使用一些已知的入侵技术。Ids可能不会分辨出。

很可能发现至少一种入侵。这不是一种新技术,如同5,6,7一样。

19.对daemons发送的结果编码,这样返回的格式将不会被ids察觉。例如,如果你利用一个sendmail的bug发送一个password文件给你自 己,可以通过管道用一个sed脚本将文件中的”:”改变成”-“。

这发生在入侵成功之后。在入侵成功后怎么处理password文件是很有意思的,但这不属于攻击类型。

20.通过管道用awk脚本对字符进行交换。可以躲过ids。

如同15。不是一种新的方法。

Bonus attack ? 从一张表里用行号选择命令,而目标执行相应的命令。例如,你可以键入”15 *.com”,而目标却执行”dir *.com” 。

如同15,这只是加密shell命令的一种新办法。

21.DOS IDS的sensor端口。使它失效。

许多基于网络的ids产品经过安全配置,可以在没有ip地址的情况下完成sensor的工作。一些ids产品,例如Dragon,没有任何打开的udp 或tcp端口。RealSecure,NetProwler,NetRanger同样可以去掉ip地址来防止攻击。

22.用ping来攻击ids。通过发送大的ping包,可以使许多运行ids的系统崩溃,这样它就不会发现随后的攻击。

还是DOS技术。已经在21条里详细说过了,许多网络ids比周围的环境有更高的安全性。尽管我确信有许多运行在Windows NT上的网络ids 存在操作系统本身的漏洞。

23.攻击ids所运行的平台。许多ids运行在常见的有漏洞的操作系统上。一旦攻击平台得手,对付ids就轻而易举了。

与21、22相同。

24.创造错误的审计纪录来迷惑ids。例如,在攻击包和正常包之间发送包可以使攻击看起来无害。

SNI就这个问题写了一片非常好的论文。NFR和Dragon网络ids可以避免这些攻击。一般来说,基于主机的ids不会存在这些漏洞。

25.消耗ids系统的磁盘空间,然后进行攻击。用无害的数据填充磁盘空间,ids将崩溃,随后的攻击就不会被发现。

Ids系统什么时候崩溃呢?如果ids系统记录所有的信息,它可能被管理员注意。攻击者所做的只是提高了管理员的警觉性。

26.停止审计记录的生成或采集然后进行攻击。例如,创建数量很多的进程,那么,ids系统就不能再创建审计进程。

这是一个本地DOS攻击。许多unix操作系统可以抵抗这些本地攻击。主机ids使用单独的进程,同样可以避免。并且,如果服务器负载过 重,管理员会注意到过多的进程。

27.攻击响应系统来中断通信。例如,一些ids系统会切断从攻击发起处来的所有流量。伪造从特定主机发起的攻击,ids系统将切断从 那台主机来的所有连接,那时就可以攻击这台特定的主机了。

这是Mr.Cohen文章中我感兴趣的攻击之一。如果我理解正确的化,这意味着使用ids的自动阻断攻击方ip地址的功能来阻断被保护网络主 机。一些ids产品,例如CMDS、NetRanger、NetProwler、RealSecure可以与防火墙或路由器对话。当特定的事件发生,路由器和防火墙将会限 制特定主机的流量。这种技术有一个流量的问题,也就是防火墙和ids系统协同工作的原因。当流量受限时,只限制由外向内的流量。特定主机 不会孤立的被攻击。

28.逆向输入,再使用一个转换工具转换。在发送和接受时作同样的事情。

如同15。这只是一种伪装shell的新办法。

29.输入时中间插入符号,再用awk转变成前缀符。Ids系统将不会中断连接。

如同15,28和29。仅仅在网络ids观察telnet或rlogin会话时才有用。这些技术很难轻易的在ftp,http,smtp等其他的协议上使用。

30.使用“emacs”作为shell,使用wipes和yanks输入输出命令缓存代替手工键入。当在目标机执行攻击指令时Ids系统将只会看到类似 于ctrl-W和ctrl-Y。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有