博客重启-Outlaw挖矿僵尸网络排查

前言

说来也是惭愧,vps被黑产爆破进来挖矿并且还对外扫描导致服务器被封,然后排查干净了才重新开启,兄弟们,安全意识要做好啊。

背景

事故背景为某日正在睡觉,突然被手机的邮件提醒打断,定眼一看,我勒个去,怎么服务器又被封了?还是爆破他人ssh?这可把我急了,立马上线和客服摆头,好在最后客服给我恢复了访问,于是我上前开始排查。

排查过程

由于知道是对外发起了ssh爆破,所以先netstat -ano看看网络连接,好家伙,全是对外的ssh半连接,看来是被日了。而且基本上都是没有建立连接成功,那要怎么找是哪个进程发起的呢?我请chatgpt老祖写了个脚本来进行:

#!/bin/bash
echo "[*] 正在检查所有连接到外部22端口的进程..."

# 查找所有对外22端口连接,过滤掉本地回环地址
ss -tnp | grep ':22' | grep -v '127.0.0.1' | grep -v '::1' | while read -r line; do
    pid=$(echo "$line" | grep -oP 'pid=\K[0-9]+')
    if [ -n "$pid" ]; then
        echo "[!] PID: $pid 发起 SSH 连接"
        echo "    用户: $(ps -p $pid -o user=)"
        echo "    命令: $(ps -p $pid -o cmd=)"
        echo "    路径: $(readlink /proc/$pid/exe 2>/dev/null)"
        echo "    启动命令: $(tr '\0' ' ' < /proc/$pid/cmdline)"
        echo
    fi
done

echo "[*] 检查结束。"

最后查到,是这个狗东西在发起:

/tmp/.X2g-unix/.rsync/c/kthreadadd64

藏的蒜泥深,但是也没有用。我定睛一看,诶这不是halo权限吗?我刚新建不久就被日真的尴尬😅。我去看日志历史命令等,不出意外是要出意外了,全部清掉了。事已至此为了不被继续投诉,我先使用防火墙禁止掉对外的22,2222等连接:

iptables -A OUTPUT -p tcp --dport 22 -m state --state NEW -j DROP
iptables -A OUTPUT -p tcp --dport 2222 -m state --state NEW -j DROP

先把攻击停掉,咱们在慢慢排查,先看看文件的md5,微步和vt查查是什么家族

md5sum /tmp/.X2g-unix/.rsync/c/kthreadadd64

一查果然已经被标记了,搜索kthreadadd64找到了安天的调查文章:https://www.antiy.cn/research/notice&report/research_report/Outlaw_Analysis.html。感谢安天。基本可以确认就是Outlaw挖矿僵尸网络

dota3.tar.gz会放于附件。

清理

由于有安天的文章,清理过程简直通畅,跟着大哥来就行了。落地文件我也懒得分析了,基本就是爆破文件和清理其他挖矿程序(还怪好的以及一些shell的守护进程(我就说之前怎么卡卡的进程还结束不掉,关键的是现在他搞的你的vps还不是很卡,让你也能用,所以一直没有发觉是挖矿,但是其中一个进程在几天前是注意到的)。虽然文件没有很好的分析。但是其实这个僵尸网络的运作方式还是很值得学习借鉴的,可以后面应用到写的C2上面。

安天列出了一份清理的清单,基本按照他这个来就行了:

 1. 计划任务 
/home/用户名/.configrc7/cron.d */30 * * * * /tmp/.kswapd00 || /home/pc/.configrc7/a/kswapd00 > /dev/null 2>&1 5 6 */2 * 0 /home/pc/.configrc7/a/upd>/dev/null 2>&1 @reboot /home/pc/.configrc7/a/upd>/dev/null 2>&1 5 8 * * 0 /home/pc/.configrc7/b/sync>/dev/null 2>&1 @reboot /home/pc/.configrc7/b/sync>/dev/null 2>&1 0 0 */3 * * /tmp/.X2pP-unix/.rsync/c/aptitude>/dev/null 2>&1 
2. 文件
 /tmp/.X2pP-unix/* 
/tmp/.kswapd00 
/home/用户名/.configrc7*(root用户/root/.configrc7) 
/var/tmp/.kswapd00 
3. 进程名 
kthreadadd32/64 
kauditd0 
edac0 
4. 网络 
185.165.169.188 
179.43.139.83 
88.218.17.122:80 
179.43.139.84 
179.43.139.85 
185.247.224.154:80 
5. SSH公钥 
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr 

我的清理方式和上面的大差不差,有些差别的地方就在于我直接把这个用户给删掉了,并且添加了防火墙规则不要在让他扫描了,我就想说你挖矿就挖矿干嘛要扫别人呢?害得我差点被封。

经过全面的检查主要包括进程,网络连接,系统服务,计划任务等,发现这个暂时是没有威胁到root用户。以下是一些排查的cmd,仅作记录

 
查看网络连接的进程
ss -tnp | grep ':52036\|:52038\|:52032\|:52040' 
ss -atp state established //查看建立的网络连接

查看进程的信息
ls -al /proc/13769/exe
lrwxrwxrwx 1 root root 0 Jun  7 23:44 /proc/13769/exe -> /opt/collie/services/collie-agent/engine


防火墙规则构建及时阻拦
iptables -A OUTPUT -p tcp --dport 22 -m state --state NEW -j DROP   //阻止对外访问22端口
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j DROP   //阻止访问我的22端口

网络连接
lsof -i
ss -tunlp

进程操作
lsof -p 13769  
ps -fp 11942 11943 11656  //查看进程的启动信息
ps -o user,pid,cmd -p <pid>  //查看进程

用户
pkill -u halo 
userdel -u halo

大概这些吧,有点乱有些也还没补充上,应该基本够用了。

善后

本来想重装服务器的发现服务商那边有问题没办法整,那就算了吧,留着吧,继续观察一下看看还有没有其他好玩的出来,但是也是做了一些措施,比如说关闭ssh服务,防火墙规则设定,以及持续监控等等。再之后就在某一天清晨再次讲博客启动并且做好了充足的安全策略(上次是雷池开的观察模式,并且halo用户可登陆),这次我只想说一句:“还有说!!!!(自行想象表情包),并且主动将这次丢脸事件公开,真的是,玩鹰的被鹰啄了眼。

结语

只有被黑了才能真正体会到网络安全,兄弟们注意菊花安全啊。好久没被日了,上一次还是很久远的时候,怀念的感觉还带点刺激。这次处理的比较草率很多东西没有截图也不够细心,主要原因是和某人约好了去游泳某人一直在催我。

再一次,一定要做好充足的安全策略啊。

附件 dota3.tar.gz


博客重启-Outlaw挖矿僵尸网络排查
http://localhost:8090/archives/vpYI6kXv
作者
Administrator
发布于
2025年06月11日
许可协议