一、背景

记一次服务器被攻击, 周一早上发现服务器连不上了, 上去云管理平台重置了 root, ubuntu 的密码都没有用。我去,服务器不会被攻击了吧?

image-20250630234423355

二、排查

1、安全记录

登陆到腾讯云后台查看服务器登陆记录,果然被一个异地陌生的ip设备登陆了, 我直呼好家伙!一大早就来攻击,现在攻击者都这么勤快了吗?

image-20250630235255074

2、猜想&推理

攻击者通过扫描公网上的主机上,密码为弱口令的服务器,按照某种方式进行暴力破解,然后登上服务器上。

登上了服务器后:

做了几件事(跑自己的某种应用(非常占用服务器cpu以及内存)),

修改了rootubuntu 用户的密码,

并对能修改root, ubuntu 对应目录权限设置为不可写/修改(阻止云平台上重置密码)

验证

后面登上服务器去,果然如此,但是居然是在跑华为的ai模型应用 !!! ,而且写了个定时任务重启去跑(不是哥们,我小服务器,别搞!) 还有个定时任务查看服务资源配置。也修改了俺的两个账号密码。

三、解决方案

3.1 通过密钥登陆

基于服务器生成密钥,然后用密钥成功连上服务器

3.2 杀死攻击者恶意应用

top 查看攻击者恶意应用,下图反馈了该恶意应用信息

1
top

image-20250701001223429

恶意应用信息

1
2
3
4
5
6
dhpcd 的作用
主要用于华为昇腾 A1 加速卡(如 Ascend 910/310)的 任务调度 和 计算资源管理。

在 A1 训练或推理时, dhpcd 会协调 CPU、GPU(如果有)和 NPU 之间的计算任务,实现混合并行计算。

如果服务器安装了 华为 Atlas 加速卡或运行 MindSpore、CANN(Compute Architecture forNeural Networks)等Al 框架,dhpcd 可能会自动启动。

删除该应用

1
pkill -9 dhpcd 

3.3 删除定时任务

查看恶意的定时任务

1
sudo crontab -l -u root

显示信息

说明:攻击者已经植入了恶意计划任务,每 24 分钟自动启动 /bin/dhpcd,并且还有一个腾讯云相关的任务(腾讯云的 stargate 通常是 云监控和自动化运维代理

1
2
*/5 * * * * flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &'
24 * * * * /bin/dhpcd >/dev/null 2>/dev/null

进去定时任务配置里面删除上面定时任务,然后保存退出(Ctrl+X —> Y —> Enter)

1
sudo crontab -u root -e 

3.4 调整权限

查看修改账号密码的权限

1
2
3
4
sudo lsattr /etc/shadow

# 输出
-----a--------e------- /etc/shadow

解释

  1. a(append-only,仅追加)
    • 文件只能被 追加内容(不能直接修改或删除已有内容)。
    • 这是导致 passwdchpasswd 失败的主要原因,因为密码修改需要 覆盖文件内容,而 a 属性阻止了这一操作。
  2. e(extent format,ext4 文件系统特性)
    • 表示文件使用 ext4 的扩展存储格式,属于正常系统标记,无需处理。

去掉a

1
sudo chattr -a /etc/shadow

3.5 重置系统密码

1
2
3
echo "ubuntu:你的新密码" | sudo chpasswd

echo "root:你的新密码" | sudo chpasswd