随身WiFi折腾记——遭遇挖矿病毒
事发前后时间线
1月18日10:57,我使用OpenFrp内网穿透创建了一个用于远程ssh连接随身WiFi的隧道,出于大意,远程端口使用了较为常见的端口(为后文埋下伏笔)
1月23日12:48,来自未知IP的攻击者开始通过ssh爆破root用户,直到同日13:28:04才停止攻击
接着攻击者在1月24日晚至25日凌晨继续尝试爆破root用户,同样未果
1月25日10:41,攻击者继续开始攻击,并在同日11:24尝试爆破其它常见用户名(真的有人会用bf、czq、cxj、cajas、dmdba、ubnt这种用户名么......)
1月26日的01:39、10:09、16:21~16:57,日志均有记录到攻击(这会儿又去爆破root用户了)
1月27日,只在16:50有两条"Timeout before authentication for connection"
1月28日05:05~05:08,日志记录到攻击(这会儿又用回常见用户名了)
自1月28日11:58开始,攻击者又陆续尝试了root、telecomadmin、test、telnet等用户名,依旧未果
至暗时刻
直到同日12:02整,攻击者成功爆破了用户名为user的用户。13秒后,攻击者更改了用户user的密码
并在12:03左右,目录在 /home/user/.cfg 名为aarch的挖矿程序开始运行,执行的命令是 ./aarch -o pool.dudiito.dev:443 -u good -k -p Static -B
以上就是我通过journalctl能看到的内容,由于攻击者在登录user后刻意清除了相关日志,我也无法得知攻击者后续操作
发现与恢复
十分幸运的是,早在很久之前我曾给这部随身WiFi写过一个脚本(靠的是AI),用于检测CPU负载状态并调整自带的led灯亮灭,再加上攻击者在中午吃饭时攻击,程序一开始挖矿,这部放置在客厅电视旁边的随身WiFi就闪起了大大的红灯,吃完饭的我当即意识到设备有问题(其实以为是脚本有问题),几乎是挖矿开始运行一小会便发现异常,虽然发现并定性是病毒是好几个小时后的事了。
通过btop便看到了占用率荣登榜首的进程aarch,根据调查,最终认定这大概率是一个门罗币挖矿程序
我随即查阅互联网相关文章并在AI的帮助下先备份了程序和相关日志,最后在当日晚6点13分停止该进程并清理相关文件,准备重新刷机
原因和反思
我犯得首个错误就是将内网穿透的外部端口设定为十分常见的端口,这是导致攻击的首要原因。
但是,我未曾记得我创建过名为user的账户,我甚至不知道该账户的密码,那么,这个账户是哪里来的?
答案是,该账户是刷机包作者所创建的。事后我通将原版刷机包的 /etc/shadow 提取并过软件john破解了user账户的密码,本以为需要一段时间才能得到密码,我刚准备离开屏幕前,破解就完成了,这时我才知道这个密码有点不一般——密码竟然是1!
我到底忽视了/home/user这个文件夹多少次以至于意识不到系统里有一个用户名叫user且密码为1甚至还带root权限这个事,这意味着我的设备完全在互联网上裸奔。
这件事给了我以下提醒:
1.内网穿透不要使用常见端口
2.关闭Root账户密码登录
3.使用复杂用户名、密码
4.注意设备日志
感谢这次幸运女神眷顾了我,首先是我第一时间发现了设备异常,其次,攻击者大概率是广撒网、批量攻击,痕迹和手法十分粗暴(废话,连我一个初中生都能发现)
如果这台随身WiFi我没有配置led灯反映CPU占用率,又或是攻击者低调做事,将其当做肉鸡,参与到网络攻击当中,后果将会十分严重。