公众号旧文
服务器被黑,黑客用的是我自己创建的用户
今天凌晨,我像往常一样打开 VPS 状态页。
其中一台的信息如下:
IP: 45.202.240.112
00:40:26 up 46 days
load average:2.08, 1.79, 1.66
内存:760MB / 973MB
Fail2Ban:当前封禁 6 | 累计封禁 19965
正常情况下,负载应该长期维持在 0.x ,内存占用也不应该那么高。
因为这台服务器网络最差,用着最卡,一直是吃灰的状态。
那到底是什么在消耗我的服务器资源?
于是,我开始排查。
原来服务器里有一个伪装成 Linux 系统组件的程序,通过 SSH 进入,在普通用户权限下建立持久化任务,并长期与境外 IP 保持通信。
离谱的是,这个被攻陷的普通用户,还是我自己创建的……
第一步:找到元凶
用 top 查看系统负载,很快发现一个异常进程。
进程名字看起来像随机数字:
3155209075
CPU占用90%以上。
继续查看:
ps -fp PID
发现它居然是从:
/dev/shm/3155209075
运行的。
/dev/shm 是Linux的内存文件系统。
很多恶意程序会在这运行,因为重启后文件会消失,不容易留下痕迹。
第二步:追查父进程
用 pstree -p 查看进程树发现这个进程并不是孤立存在的。
它的父进程叫 dmesg,路径 /home/testuser/.config/systemd/dmesg
dmesg 是 Linux 用于查看内核日志的系统命令,但这里出现的却是一个位于用户目录中的可执行文件。
很明显,这是在故意伪装成系统组件。
第三步:发现神秘用户
继续检查:
ls -laR /home/testuser
发现整个用户目录几乎是空的。
除了 .config/systemd/dmesg 别的什么都没有。
随后查看启动项:
crontab -u testuser -l
发现:
@reboot /home/testuser/.config/systemd/dmesg
开机后自动启动,这属于典型的持久化手段。
第四步:网络连接分析
查看网络连接:
lsof -Pan -p PID
发现程序一直连着:
170.168.103.27:29205
说明程序一直在和远端服务器通信。
第五步:查入侵来源
查看日志后发现了关键线索:
Accepted password for testuser
from 176.65.139.242
时间:
2026-06-02 05:30:47
也就是说攻击者不是通过漏洞进来的,而是直接SSH登录成功了。
随后又出现:
sudo: testuser : user NOT in sudoers
说明攻击者还尝试提权,但失败了。
真相大白
继续翻历史记录,发现:
adduser testuser
su - testuser
5月28日,我为了学习 Linux 用户权限,创建了一个 testuser 账号。
之后忘记删除,6月2日 05:30,这个账号成了攻击者进入服务器的入口。
Fail2ban 没能拦住,因为设置的规则是10分钟内5次失败才生效。
而显然这个 testuser 的密码也是 testuser 之类的,根本不用5次。
幸运的是,攻击者只拿到了普通用户权限,没能进一步提权到root。