回想起上次博客被黑,还是在上次,不禁令人感慨。细心的网友发现我这里用了“又”字,确实,我博客在几年前被黑过一次,和这次有点异曲同工,但这次更加精彩一点,下面容国光我一一说来。
前言
众所周知,作为一名信息安全从业者,只有我们黑别人的份,别人要是想黑掉我们的话,难度还是很高的。针对黑客的直接攻击比较有效的方法就是使用 0day 了,可以是系统级别的 0day 也可以是浏览器级别的 0day,这样成功率会比较高,除此之外想不到其他可以针对黑客的有效攻击了。
但是细心的网友肯定会发现了,前面我使用了“直接”这个词,没错, 你猜到了,我博客被黑的两次都是被间接攻击拿下的,第一次是 C 段,这一次是旁站。下面简单回顾下第一次被黑的经过。
第一次博客被挂黑客大约在 17 年左右,也是群里的师傅“友情测试”的。那个时候我的博客域名还没有备案,没法使用正规的阿里云服务器,所以只能使用不正规的香港 VPS,香港的 VPS 同 C 段下,很多黄赌毒的网站,十分脆弱不堪,那个时候使用“椰树”这种批量一键渗透攻击,都可以轻松 getshell 几个网站,然后那个师傅直接在 C 段的服务器上使用了 NetFuke 来进行 C 段 ARP 嗅探劫持:
然后所有访问我博客的流量都会被抓到黑客制作的“黑页”上面,第一次就是这样没了的。
插曲
国光我的博客坚持更新 5 年多了,树大招风,流量高的同时,我的博客也没少被攻击过,每天可以看到各种各样的爬虫、RSS 订阅或者扫描器的日志记录信息:
日均独立 IP 2k+ 个,单月独立 IP 8w+ 个:
因为经常看到各种 AWVS 日志,国光我一气之下写了一些特征页面来嘲讽这些只会用扫描器的脚本小子:
- https://www.sqlsec.com/../../../../../../../../etc/passwd
- https://www.sqlsec.com/robots.txt
- https://www.sqlsec.com/phpinfo.php
英文是直接谷歌翻译的,如果细心的网友发现语句不顺的话也不要吐槽 ,这又不是不能用?
除了经常被扫描器扫以外,DDOS 也是家常便饭了:
44G 算高了吗?当然不是:
总之博客一直多灾多难,国光我也睁一只眼闭一只眼,毕竟没有搞出啥太大的动静,直到今天被 Hexman Getshell 了才意识到问题的严重性。
主角
国光我是大一的时候认识的 Hexman 的,那个时候他还是一个高中生,技术很强,思路也灵活。后面他高考了就销声匿迹了一段时间,结果没想到居然考上了西南科技大学,没想到可以学业爱好两边都兼顾好:
Hexman 原本也有自己的博客,我们友链挂了很久了,后面因为一些 DDDD 的原因,没有博客了,不过我的友链还有它存在过的证明:
后面又发生了一些事情,总之 Hexman 和我如今是同事关系了,也是一名 Bytedancer,好了关于 Hexman 的事情就介绍到这儿了。
缘由
年前 Hexman 突然在我们的 RedTeam 百灵鸟 群里说要打群里师傅们的博客:
都怪群主装 B,我博客躺着中枪了:
没想到 Hexman 蹲一个月没开玩笑,真的从年前搞到了年后!果然功夫不负有心人呀。
说到 RedTeam 百灵鸟 百灵鸟网友们肯定比较陌生,不过也可以理解,我们这个团队确实比较低调,目前也没有啥成名作品,唯一一次被大家所知就是年前一次 CVE 污染测试,结果被很多安全 从业者喷了, Alphabug 还被网暴了,后面公众号已经公开道歉过了:
下面是原文:百灵鸟安全团队 – Alphanug:一封关于推送CVE情报污染事件致歉信
既然都说到这里了,肯定得宣传一下我们的百灵鸟团队了,我们团队成员来自国内许多安全厂商 – 阿里、字节跳动、奇安信、深信服、安恒等,拥有丰富的红队实战经验,平时一直很低调,没有啥作品,目前一个还算不错的作品是我们的 DNSLog 平台。
Fuzz.red 安全快速的Dns、Http、Rmi、Ldap Log平台 – Hacking for fun!
讲道理颜值还是不错的,感兴趣的安全从业者们可以自己试试看哦。最后丢一个我们公众号的二维码就差不多了:
建议安全从业者关注一下哦,期待我们新的作品。
复现
下面开始模拟 Hexman 的视角开始对 www.sqlsec.com 国光博客进行入侵,废话不多说,正文开始了。
信息收集
国光博客 www.sqlsec.com 从主站直接入侵难度确实很高,简单指纹收集一下,发现国光博客是 Hexo 纯静态博客,纯静态博客没有后台可言,基本上没有漏洞点。直接钓鱼国光吧,他又是一个安全从业者,基本上是不会上钩的,所以就看下旁站或者子域名情况吧。
因为国光博客没有直接挂 CDN 的缘故,很容易获取到真实 IP,借助 FoFa、shodan、Zoomeye 都可以快速查看旁站和子域名的情况:
- https://apple.sqlsec.com/ 国光的黑苹果安装教程子域名
- https://time.sqlsec.com/ 一个在线的 iWatch?
- https://html.sqlsec.com/ 一个在线魔方?
- http://xss.sqlsec.com/ XSS 靶场
- https://study.sqlsec.com/ 没写完的 Java 反序列化教程
- …
- …
- https://www.jsanhuan.cn/ 一个新的网站,看上去很突兀
柿子还得找软的捏,子域名感觉不太行,不如重点关注一下这个很突兀的域名:www.jsanhuan.cn
为啥这个网站会搭建在国光的服务器下面?简单 Fuzz 一下发现是用 Z-Blog 的 CMS 搭建的:
而且后台地址也轻易的暴露了出来:
https://www.jsanhuan.cn/zb_system/login.php
继续信息收集获取到了站长的一些信息:
Soga,这个网站应该就是国光搭建的,所以才会出现在国光的服务器上面。
攻击思路
信息收集差不多了,下面来理一下对这个网站的攻击思路:
- 收集整理历史上 Z-Blog 的相关漏洞 Poc 或者 Exp,分别进行测试
- 对 Z-Blog 后台进行字典爆破
- 对站长进行社工
传统思路
其中第一个方法比较传统,而且 Z-Blog 也不是那么大众,版本又是未知,根据国光的警惕性,也不可能用有漏洞的版本的,除非自己去下载最新的 Z-Blog 源码,自己来代码审计一下,不过这个审出来就是 0day 了,不去申请 CVE 或者 CNVD 编号的话就可惜了。
综上比较繁琐,暂且先不考虑。
爆破
实际上 Hexman 也尝试爆破过了,配合社工后的字典组合爆破的,不过没想到用户名压根不是 admin,23333:
既然上述两个方法都不太行的话,那么只能尝试社工钓鱼了。
基本社工
先上 TG 去红鼻子机器人那里简单搜索一下,发现信息还算可以:
虽然没有直接获取到密码等信息,但是最起码知道了手机号和姓名了,也还算不错了。
伪造假的登录页
既然这个网站是国光搭建的,所以网站管理员和国光肯定是认识的,但是钓鱼拿密码最直接的方式是让站长直接把密码再给你,当然这可能性不太高,所以我们得伪造一个假的一模一样的登录页面:
https://freeland-1252849447.file.myqcloud.com/index.html
因为无缘无故找站长会很奇怪,得搞一个理由,就是网站的序列号要过期了,需要重新激活:
页面仿真度这块是没得说的,站长粗心没有看域名的话,是可能会一不小心输入真实的密码的。
补充一个细节,这个钓鱼页面也考虑到到受害者故意输入错误的账号和密码了,有一个登录中转,只有真的是正确的密码才可以登陆,才可以被记录。
钓鱼页面细节
正常情况下管理员不会立即上钩,我们不能一直后台一直等着吧,所以得考虑使用飞书的 WebHook 机器人来上线通知一下,这样我们可以第一时间拿到管理员的密码:
安利一下,飞书确实是个不错的产品,下面是飞书机器人创建的一些细节信息:
当上线的时候直接进行消息提示:
下面是这个飞书机器人的主要代码细节:
邮件钓鱼
有钓鱼页面的话,直接尝试传统的邮件钓鱼的方法:
也许是站长不怎么看邮箱?或者安全意识比较高,一直都没有上钩!可恶啊~
伪造假身份
车到山前必有路,既然邮件钓鱼不行的话,我们不妨大胆一点,直接来伪造一下国光,头像资料啥的尽量和真的国光靠拢,下面是本次伪造的假的国光小号:
应该差不多了,希望站长的安全意识不要那么高。
钓鱼话术
通过上面的社工信息,加站长 QQ 好友很容易获得信任,成为好友的话也不要磨叽,直接开始话术吧:
钓鱼成功
钓鱼也并不是一帆顺风的,从 1 月 27 日年前开始钓鱼,直到年后才有了一点进展。 终于在某一天,这个田姓人员真的去登录钓鱼网站了:
后台已经实时获取到了对方的键盘记录:
飞书机器人这边也提示有鱼上钩了:
拿到用户名和密码,尝试去后台登录看看,一次成功,Bingo:
后台 getshell
可以看到 Z-Blog 官方项目:https://github.com/zblogcn/zblogphp
里面也嘲讽了一些安全初学者:
致某些安全初学者:在管理员权限下,通过后台主题管理/插件管理上传 PHP 文件不是漏洞!自从 2017 年起,CNVD 已经给我们报了至少五次相关“漏洞”(如 CNVD-2019-12772、CNVD-2019-43601)。请不要用这种东西浪费我们和 CNVD 的时间,同时通过刷低水平“漏洞”骗到的 CNVD 编号对你的简历没有任何帮助。
官方暗示很明显了,后台主题管理/插件管理上传可以通过上传 getshell,那么就根据这个思路写一个 ZBA 插件吧。
ZBA 插件需要满足一定的格式要求:
官方文档也很详细,根据官方插件的来就行了:
本次 zba 插件编写好直接上传就可以 getshell 了:
废话不多说,直接上哥斯拉连接:
然后传一个 txt 证明自己来过:
最后再去群里炫耀一下任务完成:
复盘
不得不说,没想到 Hexman 是这样的人,真的为了日我的站,从年前搞到年后,不愧是小黑屋锻炼过的男人:
1 月 27 日的时候还和他讨论了技术问题:
前脚刚讨论完,后脚就开始日我的博客,呜呜呜
本次复盘差不多结束了,现在该轮到我这边溯源和安全加固一下了。
溯源分析
既然被攻击了,肯定第一时间得看日志分析一下黑客的攻击行为吧,直接日志分析走起来。根据时间段筛选日志,也不是很多,不到 2w 行日志。
初步探测时间
时间范围: 2022-01-25 15:10 ,根据 UA 特征为 macOS,而且配合访问 IP 应该就是北京字节跳动的出口 IP:
可以看到对网站先进行踩点测试:
在短时间内访问了如下目录,很明显的信息收集行为:
- GET /admin
- GET /zb_system/login.php
- GET /robots.txt
探测的不多,估计先谷歌看看这个 CMS 有啥漏洞去了,或者去生成社工字典去了。
近 1w 次密码爆破
换了另一个出口 IP(北京 联通)爆破了 9233 次:
可惜没有成功:
钓鱼成功第一次登录
2022-02-08 09:16 ,一大早 Hexman 发现有鱼上钩了,但是估计还没有起床,直接使用了 Android 11; M2012K11AC 手机来访问我的网站,IP 为被联通:
可以看到新建文章的 URL,说明应该进了后台了,再验证一下机型:
我记得 Hexman 用的是小米,机型也无限接近,这个应该就是 Hexman 本人了。
尝试附件上传 getshell
2022-02-08 10:46 ,Hexman 应该到公司了,然后第一件事情就是迫不及待的打开电脑来登录网站后台,使用的是北京联通出口 IP:
然后从 10.47 一直到 10.52 这 5 分钟时间内一直进行附件上传 getshell 测试,发现并不顺利。
研究插件 getshell
2022-02-08 11:15 Hexman 开始关注到插件地方可能可以 getshell 了:
终于在 2022-02-08 11:44 的时候成功了,shell 的路径为:/zb_users/incas/incas.php
最终核对一下
shell 没有问题,确实是 webshell:
再看下 Hexman 的发群时间也完美符合:
getshell 第一时间上传了个 txt 并发群里面了:
至此 Hexman 的全过程的攻击线路也全部理清,人证物证都在,直接 110 走起了(手动狗头):
定期备份日志源码
备份日志方便溯源抓人,备份源码以便东山再起,总之常备份是个好习惯:
提高站长安全意识
找站长聊聊,让他不要轻易配合陌生人的操作:
继续提高密码复杂度
最后更改一下已经泄露的密码。
总结
本次 Hexman 的渗透还是比较贴近实战的,没想到国光我也可以翻车,大意了,没有闪,233333333333
最后提醒一下,非法渗透是违法的哦,如果我们互不认识的话,你渗透的我的站点,我会看日志溯源抓人的哦,什么你要直接 rm -rf /* ?? 23333 阿里云那边也有快照备份哦,想啥呢,总之写本文更多意义是思路分享和纪念一下,大家看看就好了,就酱了,下次见!
支持
本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN 费用等)
微信 支付宝
没想到文章加入打赏列表没几天 就有热心网友打赏了 于是国光我用 Bootstrap 重写了一个页面用以感谢支持我的朋友,详情请看 打赏列表 | 国光