本文章用于记述一次服务器被入侵以及后续排查的事件经过。 😕
1 受攻击起因
2023.11.27,通过花生壳内网穿透搭建了两条tcp链路,其中一条端口号为40430的链路反复收到爆破攻击(每日登录尝试数百次,并且来源分布在世界各处,应该都是被攻破的肉鸡),但未提前发现(应该每日检查)。
2023.12.04,弱口令被爆破攻击攻破,黑客成功通过链路ssh连接了服务器,而且由于内网穿透服务器映射的地址为127.0.0.1:22,被攻破后在服务器端未能看到来源地址。黑客修改了root用户密码并且创建了名为'bischi'的管理员用户。
2023.12.10,通过其他用户登录并用nvidia-smi查看gpu占用,发现gpu被占满,进程/root/.cfg/rcu_tasked。经查为门罗币挖矿程序。
2023.12.11,还发现存在进程/tmp/net-stats不断向未知IP的80端口发送数据,CPU占用50%,并且该进程在KILL后仍会重启,目前尚未找到清理方案。使用ClamAV工具查找,识别为unix/virus/Ladvix-10005306病毒。似乎在VirusTotal可以找到报告以及相应解决方案(手动查杀)。
2 初步处理
病毒通过这个文件实现隐藏进程ID,将里面的内容/usr/local/lib/libextrasshd.so删除即可
# 病毒清除
rcu_tasked,伪装挖矿程序清除
# 病毒通过这个文件实现隐藏进程ID,将里面的内容/usr/local/lib/libextrasshd.so删除即可
rm -f /etc/ld.so.preload
rm -f /usr/local/lib/libextrasshd.so
rm -rf /root/.cfg/
rm -rf /usr/bin/mslog/
rm -f /usr/bin/player
找到rcu_tasked病毒进程
netstat -antp
ps -ef | grep rcu_tasked
kill -9 xxx
systemctl disable myservice
rm -f /lib/systemd/system/myservice.service
删除 pischi 用户
vipw
删除 pischi shadow
vipw -s
删除pischi用户目录
rm -rf /home/pischi/
删除定时任务
crontab -e
删除此行
@monthly /root/.cfg/./dealer > /dev/null 2>&1 & disown
重启操作系统
reboot
3 后续处理
由于多个和snap相关的挂载点存在问题,系统无法正常启动,亦无法进入修复(Recovery)模式,在紧急救援(Emergency)模式下输入指令大部分均没有响应。
随后尝试使用U盘引导进入Try Ubuntu访问硬盘,但仍无法完成修复(具体原因未知),使用原系统root用户登录依然输入指令无相应,最终无奈选择清除原系统盘进行重装。
重装后通过创建/etc/systemd/system/mnt-disk1.mount和/etc/systemd/system/mnt-disk2.mount两个服务实现数据盘挂载,避免因修改fstab文件导致的挂载失败从而无法启动系统的问题。
恢复后新系统的分区表如下图1所示,经检查,数据盘内数据无损失。
另记,为了正常使用显卡进行深度学习任务,重新安装了驱动+cuda+cudnn。具体方法参考官方文档,该网页会提供详细的指引关于使用命令和网络安装包在服务器端基于.deb重装CUDA toolkits,注意在安装.deb文件时,为了避免后续apt管理出现错误导致的autoremove错误移除不应该移除的依赖项,要使用dpkg命令进行安装,而是应该使用./或sh命令执行安装。
完成安装后,需要手动配置.bashrc文件,使nvcc命令可以使用。
echo 'export PATH=/usr/local/cuda-12.3/bin/:$PATH'>>~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.3/lib64:$LD_LIBRARY_PATH'>>~/.bashrc
source ~/.bashrc
4 问题总结
1.设置复杂的口令,并且定期更换,或者禁用口令,使用RSA免口令登录。
2.不要轻易将IP暴露至公网,如有需要,使用虚拟专用网络进行外部访问。
3.设置良好的防火墙策略,只开放必要的业务端口,其余端口全部禁用。