前言
服务器系统 Ubuntu Server 22.04 LTSC
服务器环境 物理机NAT网络
如何发现被入侵
当我日常使用SSH工具查看服务器进程时,发现服务器其中一颗CPU满载。
起初以为是bug,重启后依旧,怀疑过是硬件,但拔掉网线神奇的发现使用率降下去了?!
随后反复使用top
htop
ps
等工具检查、重启后判定为被入侵了!
病毒狡猾之处是他隐藏了他的进程、网络,无法通过常用的工具去检测到。
被入侵的原因
Linux病毒很少,被入侵大概率是使用者的粗心大意,这次事件也不例外。
我经常需要在宿舍和教学楼间来回切换工作、学习地点,我就吧服务器上的22端口使用frp
映射到了公网。
起初服务器是只考虑在NAT网络运行,用户名和密码都非常简单,映射的时候我也考虑到了安全问题,修改了root密码为复杂密码,但是疏忽了一个子用户,恰恰用户名和密码在黑客的爆破字典里,导致被黑客拿到子用户的控制器,造成了这次危机。
尝试的解决方案
第一步
第一时间断开服务器和所有网络的连接,最有效莫过于把网线。
病毒一旦获取到你的控制器,也会扫描局域网的服务器,所以一定要拔网线。
第二步
善用搜索引擎、技术论坛,如果是常见病毒,大概率能搜索到全流程的解决方案,如果搜索不到,就要去各大技术论坛寻求帮助。
我的服务器系统是`Ubuntu` 我尝试在askUbuntu发帖讯问,但并没有直接获得实质性帮助,但论坛这方面的文章也非常有用
第一个突破点 搞清楚病毒是什么
这并不容易,病毒有许多变种、随机名称,只能通过特征去识别他们。
前文提到,入侵服务器的病毒会隐藏自己的网络和进程,符合Rootkit特征,病毒利用了Rookit隐藏自己。
下载 Chkrootkit
扫描电脑中的病毒留下的后门
部分日志 确定病毒为 Xor.DDoS 变种
Searching for Linux.Xor.DDoS ... INFECTED: Possible Malicious Linux.Xor.DDoS installed
/tmp/par-726f6f74/cache-3eb4257c2614b4554108c1d8497b4f88676951d4/ce30f172.so
/tmp/par-726f6f74/cache-3eb4257c2614b4554108c1d8497b4f88676951d4/9361c2fa.so
/tmp/par-726f6f74/cache-3eb4257c2614b4554108c1d8497b4f88676951d4/libperl.so.5.26/tmp/par-726f6f74/cache-3eb4257c2614b4554108c1d8497b4f88676951d4/f985f8e7.so
/tmp/par-726f6f74/cache-3eb4257c2614b4554108c1d8497b4f88676951d4/f8174441.so
/tmp/par-726f6f74/cache-3eb4257c2614b4554108c1d8497b4f88676951d4/2dfd2f51.so
/tmp/par-726f6f74/cache-3eb4257c2614b4554108c1d8497b4f88676951d4/a8f7a01a.so
/tmp/par-726f6f74/cache-3eb4257c2614b4554108c1d8497b4f88676951d4/5e43fe49.so
/tmp/par-726f6f74/cache-3eb4257c2614b4554108c1d8497b4f88676951d4/85600e38.so
/tmp/par-726f6f74/cache-3eb4257c2614b4554108c1d8497b4f88676951d4/9d18cbe5.so
/tmp/par-726f6f74/cache-3eb4257c2614b4554108c1d8497b4f88676951d4/153152bb.so
/tmp/par-726f6f74/cache-3eb4257c2614b4554108c1d8497b4f88676951d4/neo
解决方案
1 断网
2 清理 ssh 防止黑客免密登录后门
rm -rf /root/.ssh
3 清理被入侵用户相关内容
锁定用户
passwd -l user
删除用户目录重建
rm -rf /home/user && mkdir /home/user
4 设置只允许私钥SSH连接
vim /etc/ssh/sshd_config
PasswordAuthentication no
service ssh restart
或者service sshd restart
5 检查计划任务目录 通过病毒自启动 找到病毒本体
ls -a /etc/cron.*
查看/etc
下的这些文件夹
cracklib/
cron.d/
cron.daily/
cron.hourly/
cron.monthly/
cron.weekly/
查看目录中是否含有随机生成文件名的文件 例如
DsXmTlim
使用
cat /etc/cron.hourly/DsXmTlim
查看病毒本体位置
*/1 * * * * root /bin/OcGuFJKq 1 1
其中
/bin/OcGuFJKq
为病毒本体修改病毒二进制文件
cat "123" > /bin/OcGuFJKq
使用 123 替换病毒内容 让他失效
使用
chattr
加锁/bin/OcGuFJKq
防止复活
chattr +i /usr/
OcGuFJKq``
6 重启
此时 病毒已经没有,但不能掉以轻心,检查局域网机器是否也被入侵,此方法不能保证根除,如果没什么重要数据,还是重装系统吧。
评论