我被黑了
两年前,在我家里使用家庭网络远程办公时,遇到了一件非常诡异的事情。当时,我正在利用一个“盲 XXE 漏洞”,这个漏洞需要借助一个外部 HTTP 服务器来“走私”文件。为了实现这一点,我在 AWS 上启动了一台服务器,并用 Python 简单搭建了一个 Web 服务,用来接收来自目标服务器的流量:
python3 -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
服务启动后,我用家里的电脑发出了一个 cURL 请求,确认服务器能接收到来自外部的 HTTP 请求:
curl "http://54.156.88.125:8000/test123"
几秒钟后,我在服务器日志中看到了如下内容:
98.161.24.100 -
很好,这说明服务器可以正常接收到网络请求,一切看起来都很顺利。但是,当我切回去继续利用漏洞时,日志中突然出现了一条非常奇怪的记录:
98.161.24.100 -
159.65.76.209 - [16:32:22] "GET /test123 HTTP/1.1"
一个陌生的 IP 地址在 10 秒钟后重放了我刚才发出的 HTTP 请求。
“哇,这也太奇怪了吧。”我心想。显然,在我的家庭网络和 AWS 服务器之间,有人拦截并重放了我的 HTTP 流量。这个流量本不该被任何中间人看到——我的电脑和服务器之间并没有应该能够看到这些数据的第三方。我的第一反应是:是不是我的电脑被黑了,有人正在实时监控我的网络流量?
为了验证这个现象是否仅仅出现在我的电脑上,我拿出了 iPhone,在 Safari 浏览器中访问了同样的 URL,并查看了日志:
98.161.24.100 -
159.65.76.209 - [16:34:16] "GET /uhhhh HTTP/1.1"
结果一样:同一个陌生 IP 地址再次重放了来自我 iPhone 和电脑的 HTTP 请求。显然,有人正在拦截我家庭网络里所有设备的 Web 流量,并在几秒钟后复刻发送。
我开始慌了,立刻又启动了一台新的 AWS 实例,这次用了 Nginx,以确保不是之前那台服务器被攻破了:
sudo service nginx start
tail -f /var/log/nginx/access.log
我再次用 iPhone 打开了另一个 URL,结果日志中还是显示:
98.161.24.100 -
159.65.76.209 - [16:44:12] "GET /whatisgoingon1234 HTTP/1.1"
我的 ISP、家里的调制解调器,还有 AWS,这三者中肯定有一方被入侵了。为了排除“是不是 AWS 出了问题”这种听起来有些荒谬的可能性,我又在 GCP 上启动了一台机器,结果还是一样——同一个陌生 IP 重放了我的请求。显然,问题不在 AWS。
唯一合理的解释是:我的调制解调器被黑了。
调制解调器是一种能将数字信号和模拟信号进行互相转换的设备,这样,计算机就能通过这些线路实现与外部网络的通信,让我们可以上网浏览玲珑安全公众号、观看玲珑安全公开课视频等。
但问题来了,攻击者到底是谁?我查了一下这个 IP 的归属,发现它来自 DigitalOcean。这就更奇怪了,这肯定不是我 ISP 的资源。
159.65.76.209,你是谁?
为了展开调查,我把这个 IP 地址发给了一些在威胁情报公司工作的朋友。
他们给了我一个 VirusTotal 的链接,列出了这个 IP 地址过去几年解析过的所有域名。
在最近关联的五个域名中,有三个是钓鱼网站,另外两个看起来像是邮件服务器。以下这些域名曾经解析到这个 DigitalOcean 的 IP 地址:
regional.adidas.com.py(2019/11/26)
isglatam.online(2019/12/08)
isglatam.tk(2020/11/11)
mx12.limit742921.tokyo(2021/08/08)
mx12.jingoism44769.xyz(2022/04/12)
其中两个域名是 isglatam.online 和 isglatam.tk,它们曾经都是伪装成 isglatam.com 的钓鱼网站,而 isglatam.com 是一家位于南美的网络安全公司。
我们访问了 ISG Latam 的官网,发现这家公司总部位于巴拉圭,且与 Crowdstrike、AppGate、Acunetix、DarkTrace 和 ForcePoint 等知名安全厂商有合作。仅仅花了十分钟浏览资料,我们就了解到,这些拦截我网络流量的人,之前可能也试图用同一个 IP 去钓鱼 ISG Latam。
黑客hack黑客?
这就变得更加诡异了,这个 IP 地址在一年前还被用来搭建针对一家南美安全公司的钓鱼基础设施。如果假设攻击者这几年一直在控制这个 IP,那就意味着他们至少用它搞过两场钓鱼行动,而且看起来还搭建了一个用于路由器恶意软件的 C&C(指挥控制)服务器?
通过 URLscan,我发现 isglatam.online 和 isglatam.tk 这两个网站曾经托管的是通用的 BeEF 钓鱼页面,历史记录可以在这里看到:https://urlscan.io/result/52459337-0f2d-4b26-859f-4a6f4eafa6dd#transactions。
攻击者在同一台机器上进行了大量不同类型的恶意活动,而且显然在三年多的时间里一直没有被封禁。最让人困惑的是,Adidas 钓鱼、ISG Latam 钓鱼、还有入侵调制解调器这些事件,竟然都指向了同一个 IP 地址。虽然确实有可能这个 IP 地址在这些年间换过不同的使用者,但这种可能性看起来不大——每次活动之间的间隔都很长,而且很难想象这个 IP 会刚好又被另一个搞事的人接手。
意识到被感染的设备还在运行,我走过去把它拔掉电源,然后装进了一个纸箱。
交出证据
我一直使用的是 Cox 提供的 Panoramic Wifi 网关。在确认它很可能已经被攻破之后,我带着设备去了当地的 Cox 门店,向他们展示了这个设备,并申请更换一个新的。
我在申请更换调制解调器时遇到了一个问题:要拿到新的设备,必须把旧的交回去。遗憾的是,那并不属于我个人财产,而是 ISP 提供的租赁设备。我向店员解释说,我希望保留设备,对它进行逆向分析。他的眼神立刻变了,显得有些警惕,明显没那么热情了。
“真的没办法让我留下它吗?”我问。
“没办法,我们得收回旧设备才能给你新的。”ISP 的工作人员答道。
他们态度非常坚决。尽管我非常想把设备拆开,提取固件,看看是否被植入了什么可疑程序,但在解释完自己的意图后,我还是把设备交了出去。最终,我带着新的设备离开了门店,心里多少有些失落,毕竟再也没法进一步研究那个疑似被攻破的设备了。
我回家安装好新调制解调器后,那些异常现象就彻底消失了。网络请求不再被重放,日志里也没有出现“另一个 IP”。一切看起来都恢复正常。
虽然有些不甘心,我最终还是得出了结论:原来的那个调制解调器确实被攻破了。可惜我已经把它交还给了 ISP,也没有机会进一步确认或分析,顶多只能看看自己的电脑有没有受到影响。
就这样,我暂时放弃了继续调查。
三年后
时间来到了 2024 年初,差不多三年后,我在度假时和几位做网络安全的朋友一起吃饭。闲聊中,我把这段经历讲了出来。他们一下子就对这个话题产生了浓厚的兴趣,开始追问细节,想要自己也做一番调查,觉得这件事挺有意思的。
他们在恶意软件分析方面的经验比我丰富得多,注意到了一件我当年忽略的事情:那两个疑似邮件服务器的域名(limit742921.tokyo 和 jingoism44769.xyz)的命名格式非常有规律。于是,他们查了一下 limit742921.tokyo 的 mx1 子域的 IP 地址,然后对该 IP 曾经绑定过的所有域名进行了反向查询。
结果,他们找到了超过一千个域名,全部都符合相同的命名模式:
{"rrname":"acquire543225.biz.","rrtype":"A","rdata":"153.127.55.212"}
{"rrname":"battery935904.biz.","rrtype":"A","rdata":"153.127.55.212"}
{"rrname":"grocery634272.biz.","rrtype":"A","rdata":"153.127.55.212"}
{"rrname":"seventy688181.biz.","rrtype":"A","rdata":"153.127.55.212"}
这些域名全都采用了相同的命名规则:
[单词][6位数字].[顶级域名]
由于这些域名数量庞大,格式一致,并明显具有算法生成的特征,他们推测这些域名很可能是恶意软件使用的 DGA(域名生成算法)。这种技术通常用于不断变化 C&C(指挥控制)服务器的域名,以避开检测和封锁。
也就是说,很可能当初重放我网络请求的那个 IP 实际上就是一个 C&C 服务器,而我之前认为是邮件服务器的那两个域名,实际上只是算法生成的、用来指向 C&C 的跳板域名。
有些令人失望的是,这些域名全都是历史记录,最后一个的注册时间是 2023 年 3 月 17 日。目前,没有任何一个域名还能解析到目标 IP,我们也没能发现有新的、类似结构的域名被注册并指向相同的地址。
考虑到我现在用的调制解调器和之前被攻破的是同一型号,我很想知道攻击者是否又找到了某种方式重新进入系统。我简单查了下 Google,发现这种型号的调制解调器在公开信息中并没有已知漏洞(即使到现在已经过去三年了)。如果真有漏洞存在,那攻击者的确把它隐藏得很好。
另一种可能性似乎更合理一些:攻击者利用的并不是传统意义上的路由器漏洞,而是某种“边缘点”上的漏洞。我很想继续深入调查,看看有哪些方式可能让我的设备再次被攻破。
在下一篇文章中,我将介绍我是如何入侵数百万台调制解调器的,而入侵我的人又会是谁呢?
原文始发于微信公众号(玲珑安全):啊?谁把我黑了??(一)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论