事发前后时间线

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占用率,又或是攻击者低调做事,将其当做肉鸡,参与到网络攻击当中,后果将会十分严重。