网络通信 频道

黑客在日志中现形

在Internet上,各种Web服务器受到了最多的攻击, 而通过Log文件来了解、防范攻击是很重要但又经常容易忽略的手段。IDS不能完全代替安全管理,仔细检查Log,IDS所遗漏的东西,就可能在这里发现。本文从分析Apache和IIS Web服务器的logging记录来查找攻击的蛛丝马迹,进而采取适当的措施加强防范。


默认的web记录

对于IIS,其默认记录存放在c:winntsystem32logfiles
w3svc1,文件名就是当天的日期,记录格式是标准的W3C扩展记录格式,可以被各种记录分析工具解析。默认的格式包括时间、访问者IP地址、访问的方法(GET or POST...)、请求的资源、HTTP状态(用数字表示)等。对于其中的HTTP状态,我们知道200-299表明访问成功;300-399表明需要客户端反应来满足请求;400-499和500-599表明客户端和服务器出错;其中常用的如404表示资源没找到,403表示访问被禁止。
Apache的默认记录存放在/usr/local/apache/logs,其中最有用的记录文件是access_log,其格式包括客户端IP、个人标识(一般为空)、用户名(如果需要认证)、访问方式(GET or POST...)、HTTP状态、传输的字节数等。

收集信息

我们模拟黑客攻击服务器的通常模式,先是收集信息,然后通过远程命令一步步实施入侵。我们使用的工具是netcat1.1 for windows,Web服务器IP为10.22.1.100,客户端IP为:10.22.1.80。经过一些操作后,在IIS和Apache的log里显示如下:
IIS: 15:08:44 10.22.1.80 HEAD /Default.asp 200
Linux: 10.22.1.80- - [08/Oct/2002:15:56:39 -0700] “HEAD / HTTP/1.0” 200 0
以上的活动看上去很正常,也不会对服务器产生任何影响,但这是通常攻击的前奏。

Web站点镜像

黑客经常镜像一个站点来帮助攻击服务器,常用来镜像的工具有Windows下的Teleport pro和Unix下的Wget。
下面我们看使用这两个工具后在服务器记录里的信息:
16:28:52 10.22.1.80 GET /Default.asp 200
16:28:52 10.22.1.80 GET /robots.txt 404
16:28:52 10.22.1.80 GET /header_protecting_your_privacy.gif 200
16:28:52 10.22.1.80 GET /header_fec_reqs.gif 200
16:28:55 10.22.1.80 GET /photo_contribs_sidebar.jpg 200
16:28:55 10.22.1.80 GET /g2klogo_white_bgd.gif 200
16:28:55 10.22.1.80 GET /header_contribute_on_line.gif 200
16:49:01 10.22.1.81 GET /Default.asp 200
16:49:01 10.22.1.81 GET /robots.txt 404
16:49:01 10.22.1.81 GET /header_contribute_on_line.gif 200
16:49:01 10.22.1.81 GET /g2klogo_white_bgd.gif 200
16:49:01 10.22.1.81 GET /photo_contribs_sidebar.jpg 200
16:49:01 10.22.1.81 GET /header_fec_reqs.gif 200
16:49:01 10.22.1.81 GET /header_protecting_your_
privacy.gif 200
10.22.1.80是使用Wget的Unix客户端,10.22.1.81是使用Teleport pro的Windows客户端,都请求robots.txt文件,robots.txt是请求没有被镜像的文件时所要用到的。所以看到有对robots.txt文件的请求,表明有镜像的企图。当然,在Wget和Teleport pro客户端,可以手工禁止对robots.txt文件的访问,这时,辨别方法可以看是否有从同一IP地址来的重复资源请求。

漏洞扫描

随着攻击的发展,我们可以用一些Web漏洞检查的软件,如 Whisker,它可以检查已知晓的各种漏洞,如CGI程序导致的安全隐患等。下面是运行Whisker1.4的IIS和Apache的相关记录:
IIS
12:07:56 10.22.1.81 GET /SiteServer/Publishing/viewcode.asp 404
12:07:56 10.22.1.81 GET /msadc/samples/adctest.asp 200
12:07:56 10.22.1.81 GET /advworks/equipment/catalog_type.asp 404
12:07:56 10.22.1.81 GET /iisadmpwd/aexp4b.htr 200
12:07:56 10.22.1.81 HEAD /scripts/samples/details.idc 200
12:07:56 10.22.1.81 GET /scripts/samples/details.idc 200
12:07:56 10.22.1.81 HEAD /scripts/samples/ctguestb.idc 200
12:07:56 10.22.1.81 GET /scripts/samples/ctguestb.idc 200
12:07:56 10.22.1.81 HEAD /scripts/tools/newdsn.exe 404
12:07:56 10.22.1.81 HEAD /msadc/msadcs.dll 200
12:07:56 10.22.1.81 GET /scripts/iisadmin/bdir.htr 200
12:07:56 10.22.1.81 HEAD /carbo.dll 404
12:07:56 10.22.1.81 HEAD /scripts/proxy/ 403
12:07:56 10.22.1.81 HEAD /scripts/proxy/w3proxy.dll 500
12:07:56 10.22.1.81 GET /scripts/proxy/w3proxy.dll 500
Apache
10.22.1.80-[08/Oct/2002:12:57:28 -0700]“GET /cfcache.map HTTP/1.0”404 266
10.22.1.80-[08/Oct/2002:12:57:28 -0700]“GET /cfide/Administrator/startstop.html HTTP/1.0”404 289
10.22.1.80-[08/Oct/2002:12:57:28 -0700]“GET /cfappman/index.cfm HTTP/1.0”404 273
10.22.1.80-[08/Oct/2002:12:57:28 -0700]“GET /cgi-bin/ HTTP/1.0”403 267
10.22.1.80-[08/Oct/2002:12:57:29 -0700]“GET /cgi-bin/dbmlparser.exe HTTP/1.0”404 277
10.22.1.80-[08/Oct/2002:12:57:29 -0700]“HEAD /_vti_inf.html HTTP/1.0”404 0
10.22.1.80-[08/Oct/2002:12:57:29 -0700]“HEAD /_vti_pvt/ HTTP/1.0”404 0
10.22.1.80-[08/Oct/2002:12:57:29 -0700]“HEAD /cgi-bin/webdist.cgi HTTP/1.0”404 0
10.22.1.80-[08/Oct/2002:12:57:29 -0700]“HEAD /cgi-bin/handler HTTP/1.0”404 0
10.22.1.80-[08/Oct/2002:12:57:29 -0700]“HEAD /cgi-bin/wrap HTTP/1.0”404 0
10.22.1.80-[08/Oct/2002:12:57:29 -0700]“HEAD /cgi-bin/pfdisplay.cgi HTTP/1.0”404
检查这种攻击的关键是看同一IP地址对CGI目录(IIS是scripts,Apache是cgi-bin)文件请求出现多个404状态。这时就要检查相应cgi目录里的程序安全性。

远程攻击

下面我们以针对IIS的MDAC攻击为例,来了解远程攻击在log里的记录情况。MDAC漏洞使得攻击者可以在Web服务器端执行任何命令。当攻击发生后,在log会留下对msadcs.dll请求的记录:
17:48:49 10.22.1.80 GET /msadc/msadcs.dll 200
17:48:51 10.22.1.80 POST /msadc/msadcs.dll 200

另一个有名的攻击是asp源代码泄漏的漏洞,当这种攻击发生时,log文件会有如下记录:
17:50:13 10.22.1.81 GET /default.asp+.htr 200
对于未授权访问的攻击记录,Apache log会显示:
[08/Oct/2002:18:58:29 -0700] “GET /private/ HTTP/1.0”401 462

文章转载地址:http://www.365master.com/kt_article_show.php?article_id=547&categ_code=10041003

0
相关文章