骇客躲避侦察的入侵技俩

ZDNet软件频道 时间:2001-06-29 作者:Chris Prosise |  我要评论()
本文关键词:
骇客不仅善于入侵服务器的技巧,他们也善于迂回地掩饰他们的攻击行为。在这个专栏中,我们将讨论各种恶意的入侵者会使用的规避技术,以期使得系统管理者能够侦测与应对各种入侵行为。

十六进制编码

最简单的掩饰攻击方式之一就是透过更改网页地址的请求。身为系统管理员,我们经常在纪录文件中搜寻特殊字符串,或是纯文字字符。我们会查看一些与已知弱点相同的资源请求字符串。举例来说,当我们在 IIS 的纪录文件中看到下列资料,我们就知道有人试图在IIS服务器中寻找MDAC弱点:

06:45:25 10.0.2.79 GET /msadc/ 302

现在让我们从入侵者的角度来看请求字符串,以了解入侵者如何避开系统管理员的型式比对。为了知道是否有 msadc 的目录存在,入侵者可能会键入以下字符串:

[root@localhost /root]# nc -n 10.0.2.55 80
GET /msadc HTTP/1.0

这样一来会产生我们前面在纪录文件看到的结果。入侵者可以藉由十六进制ASCII码来更改请求。在这个例子中,字符串 msadc会变成 6D 73 61 64 63的十六进制ASCII码。读者可以使用 Windows 的 Charmap 程序来快速将ASCII码转换为十六进制码。在上述的网页请求,将字符串 msadc以十六进制ASCII码转换,会使请求字符串变为:

[root@localhost]# nc -n 10.0.2.55 80
GET /%6D%73%61%64%63 HTTP/1.0

IIS 的纪录文件显示:

07:10:39 10.0.2.31 GET /msadc/ 302

其实这个纪录文件与未经编码的结果是完全一样的。所以在这个例子里,编码并未给入侵者带来任何好处。然而,在 Apache 的纪录文件就是另外一回事了。我们列出入侵者会用来检查特殊 CGI 文件是否存在的指令,以及经过十六进制编码的指令:

[root@localhost]# nc -n 10.0.0.2 80
HEAD /cgi-bin/test-cgi HTTP/1.0

[root@localhost]# nc -n 10.0.0.2 80
HEAD /%63%67%69-bin/test-%63%67%69 HTTP/1.0

让我们来看看 access_log 檔:

10.10.10.10 - - [18/Oct/2000:08:22:47 -0700] "HEAD /cgi-bin/test-cgi HTTP/1.0" 200 0

10.10.10.10 - - [18/Oct/2000:08:23:47 -0700] "HEAD /%63%67%69-bin/test-%63%67%69 HTTP/1.0" 200 0

在两种情形中, 200 状态码告诉我们指令成功完成。然而,第二个情形中出现了十六进制码,而不是纯文字。如果我们倚赖字符串搜寻来侦测入侵行为,就无法找出此类入侵方式。很多入侵侦防系统使用了不够聪明的型式比对方法,其中有些不转换十六进制码来作字符串比对工作。所以系统管理员应该了解这种技巧,并且清楚他使用的入侵侦防软件是否够聪明,能转换十六进制码。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134