应急响应-MHT应急响应靶场

暗月:linux 服务器被黑应急响应

介绍

该靶场环境来自暗月2025培训课程,请使用web123/Abc@1234 通过ssh远程连接,如需root使用sudo -i切换,flag答题程序在桌面文件夹中,执行后答题获取最终flag

WP

攻击者ip:192.168.10.145

第1题:攻击者是哪天打进来的?

如果是web端打进来,那就是webshell拿权限,分析web目录/var/www/html/是否存在恶意文件,以及日志分析

文件分析

查看web目录下是否存在恶意文件

find /var/www/html -name "*.php" -type f | xargs grep -n --color=always -B2 -A2 "base64_decode\|eval(\|gzinflate\|passthru\|shell_exec" 2>/dev/null

发现存在shell.php文件

image-20260105205507107

查看该文件

典型冰蝎码

密码:rebeyond
URL:http://target.com/shell.php
加密方式:AES128

image-20260105205657479

确定shell.php为上传的恶意文件之后,检索日志中的shell.php

查看Apache日志

image-20260105210347957

先查看access.log.1

发现最新的日志为20250630:00:09:57,此时已经post请求shell.php,响应为200,此时已经上传shell.php成功了

image-20260105210116208

下载已压缩的日志分析

攻击者192.168.10.145进行了大量后门文件的扫描,第一次访问shell.php时间为:29/Jun/2025:13:22:03

image-20260105210518365

继续检索

image-20260105210940987

29/Jun/2025:14:32:53,访问shell.php,此时响应200,已经访问成功,此时shell.php已存在,并且Referer为http://192.168.10.107/dede/makehtml_homepage.php

猜测/dede/makehtml_homepage.php可能为漏洞存在点,攻击者通过该接口上传了shell.php

提交时间 2025-06-29

image-20260105211440577

把makehtml_homepage.php提出来给ai分析一下

image-20260105212059386

第2题:攻击者用于提权获取root权限的最终可执行文件名是什么?

获取shell权限->提权

查看身份验证日志auth.log,看攻击者在什么时候登录过

其中auth.log.2记录的是6.29:01:05:34之前的,而攻击者是在6.29下午两点才拿到的webshell,因此不查看该文件

查看auth.log和auth.log.1

image-20260105213454793

cat auth.log.1 | grep "Accepted"

查看登录成功的信息,发现在06-30 00:42:31登录成功

image-20260105213746836

image-20260105230729915

在29:05-29:24之间执行了提权操作

分析用户,查看可以登录shell的用户,与日志一致

cat /etc/passwd | grep bash

image-20260105214953434

查看用户组

重点是 root组和sudo组

image-20260105225348368

查看root用户的历史命令

下载了gcc,编译了用于提权的文件rootshell

image-20260105233942085

提权文件创建时间为:2025-06-30 00:53:11

image-20260105235248653

image-20260105234207274

第3题:攻击者最后一次创建的后门用户名是什么?

经上述分析,创建了两个后门用户,最后一次创建后门用户为backdoor

image-20260105234212123

事件分析

攻击者在2025-06-29 14:32:53通过web/dede/makehtml_homepage.php接口漏洞上传webshell,获取用户web123权限,2025-06-30:00:42:31登录成功,该用户在sudo组,攻击者通过su下载gcc并编译执行提权工具rootshell获取root权限,2025-06-30 00:41:32创建后门用户sysadmin,并且将该用户加入root组和sudo组,2025-06-30 00:55:58创建后门用户backdoor,提权文件rootshell创建时间为2025-06-30 00:53:11

Linux服务器挖矿病毒应急案例

介绍

靶机来源于wxiaoge应急响应培训,请使用ssh访问机器,账户:zyr 密码:wxiaoge123 flag在用户桌面目录中,请答题获取最终flag
目标是彻底清理挖矿程序,你的任务是尽快使机器恢复正常,检查重启后是否不再被挖矿,不溯源

WP

问题 1: 挖矿进程的command是什么?

存在挖矿,分析进程,查看cpu占用率前10的进程

image-20260107175208734

存在rsync

image-20260107175253183

问题 2: 最终运行的挖矿程序名称?提示:k开头

提示k开头,可以全局搜索文件

进程 PID = 2013 ⇔ /proc/2013 是内核为该进程创建的“实时视图目录”
进程存在 → /proc/2013 存在
进程结束 → /proc/2013 立即消失

/proc 是一个 伪文件系统(procfs)

  • 不在磁盘上
  • 内容由 内核实时生成
  • 用来暴露进程、内存、CPU、打开文件等信息

所以:

/proc/2013  ≠ 一个普通目录
/proc/2013 = PID 为 2013 的进程在内核中的“镜像”

image-20260107180954426

分析:

/proc/2013/attr/keycreate
/proc/2301/attr/keycreate
...
这是 Linux keyring 机制 的接口文件:
属于 procfs
文件名以 key 开头 ≠ 恶意程序
不在磁盘上
与挖矿无关
/home/zyr/.mozilla/.../key4.db
/home/zyr/.local/share/keyrings
浏览器 / GNOME 正常文件
不可执行
与挖矿无关

kswapd0为实际恶意挖矿程序

/home/zyr/.cache/vmware/drag_and_drop/.../.rsync/a/kswapd0
/home/zyr/桌面/.rsync/a/kswapd0
/home/zyr/.configrc/a/kswapd0

文件名:kswapd0
以 k 开头
冒充内核线程(真正的 kswapd0 应该是内核态、不可见文件)

并且路径特征:

~/.cache/
~/.configrc/
~/桌面/.rsync/a/
vmware/drag_and_drop/

这些都是:

  • 用户可写目录
  • 非系统二进制路径
  • 挖矿马 / 后门最爱藏身点

.rsync/a/ 目录(经典矿马结构)

.rsync/
└─ a/
└─ kswapd0 ← ELF 挖矿程序

进程名伪装成 rsync

实际执行文件叫 kswapd0

两层同时伪装

问题 3: 计划任务中完整的重启计划。

进程已经知道了,挖矿进程是当前用户的,查看当前用户计划任务

crontab -l

image-20260107183330845

image-20260107183200550

问题 4: Ssh 公钥免密后门文件全路径?

SSH 公钥免密后门文件全路径为:

/home/zyr/.ssh/authorized_keys

如果是 root 用户,则是:

/root/.ssh/authorized_keys

image-20260107183640957

2025年勒索病毒排查溯源

介绍

详情
靶机来源于州弟学安全,请使用RDP访问远程桌面 账号密码:administrator/Sierting789@ flag获取请在终端中运行桌面的ulabflag.exe,请勿双击exe,完成答题获取

勒索病毒排查溯源靶场核心考点
勒索家族识别(通过勒索信、加密后缀、专属标识等特征判定)
勒索ID提取(从勒索信或关联文件中获取唯一凭证)
加密文件解密(查找对应版本解密工具并正确执行解密操作)
Windows Defender日志分析(查杀记录、开启/关闭时间排查)
恶意程序(C2)绝对路径定位(结合文件排查工具与攻击时间线)
C2外联IP识别(通过沙箱分析或网络连接命令检测)
加密器路径查找(依据加密时间、文件类型筛选定位)
攻击漏洞溯源(开放端口分析、Web应用漏洞探测与验证)
Windows事件日志分析(登录日志、系统操作日志筛选解读)
专业工具使用(Everything、FullEventLogView等文件/日志排查工具)
攻击时间线梳理(还原攻击者完整操作流程)
沙箱工具应用(恶意文件属性及行为分析)
渗透思维应用(验证潜在漏洞并确认攻击路径)

WP

rdp连接后,桌面上的docx、txt等文件都被加密为了LIVE后缀,并且桌面存在flag.txt.LIVE,也是被加密器加密了,直接打开显示乱码

image-20260108152209461

image-20260108152225121

同时存在一个txt文件,查看内容为勒索信

image-20260108152253222

image-20260108152300896

问题1:病毒家族的名称(不区分大小写):

到Solar在线病毒检测,输入后缀名查询病毒家族

https://www.solarsecurity.cn/detection.html

image-20260108152615856

image-20260108152641789

问题2:勒索病毒预留的ID:

勒索id是勒索组织对于数据恢复的一个凭证,一般勒索id会存放在以下位置

  1. 勒索信
  2. 被加密后的文件名
  3. 勒索信文件名

查看勒索信,预留的id在勒索信文件名中

image-20260108152848857

image-20260108152940897

问题3:解密并提交桌面中flag.txt.LIVE的flag:

Solar下载恢复工具

https://www.solarsecurity.cn/tools.html

image-20260108153047311

用法:https://www.solarsecurity.cn/tools/35.html

image-20260108153340408

image-20260108153353725

image-20260108153602777

问题4:Windows Defender删除攻击者C2的时间(格式示例:2070.12.13):

打开windowsDefender显示已关闭,证明可能为攻击者关闭了

可以直接查看WindowsDefender->历史记录->隔离的项目,可以看到直接删除的文件信息

image-20260108154914045

这里我在查看的时候没有信息

image-20260108154717781

可以去系统日志查看WindowsDefender日志

事件查看器:“应用程序和服务日志” > “Microsoft” > “Windows” > “Windows Defender” > “Operational”

image-20260108155057344

windowsDefender在2025/8/25 10:43:32对Backdoor:Win64/CobaltStrike.NP!dha进行了查杀,路径为C:\Users\Administrator\Desktop\Wq12D.exe

image-20260108155401728

提交攻击者关闭Windows Defender的时间

关闭Windows Defender的事件id:5001

使用fulleventlogview->查看->使用快速筛选

image-20260108172041530

只存在一个事件id5001的日志

时间为2025.8.25 10:45:08

问题5:攻击者上传C2的绝对路径:

在windowsDefender日志中查看,查杀路径为C:\Users\Administrator\Desktop\Wq12D.exe,但是在桌面并没有看到该文件,说明攻击者可能将windowsDefender关闭后把后门上传到其他路径了

Everything全局搜索Wq12D.exe

image-20260108162143842

C:\Users\Administrator\Downloads

但是实际情况中攻击者可能会更改后门名称,我们也可以全局查看exe文件排查

时间排序,查找2025/8/25 10:43:32之后的exe文件

image-20260108162441998

image-20260108162534694

问题6:攻击者C2的IP外联地址:

查看外链地址:

  1. 虚拟机运行该exe,查看网络连接中外连情况
  2. 威胁平台样本分析

image-20260108163003488

192.168.186.2

8. 提交攻击者加密器绝对路径

思路:已知加密后文件拓展名为LIVE,全局搜索.LIVE文件,查看修改时间,找到最早的修改时间,加密器上传时间一定在该时间之前

image-20260108172358102

2025.8.25 11.14之前,搜索在此之前的exe文件

大部分加密器为exe,很少有py,按照优先级查找

image-20260108172637342

Wq12D.exe为后门程序,沙箱分析systime.exe是否为加密器

image-20260108173338466

C:\Users\Administrator\Documents\systime.exe

9. 溯源黑客攻击路径,利用的哪个漏洞并推测验证

2025.8.25 10:43:32 windowsDefender查杀后门
2025.8.25 10:45:08 攻击者关闭Windows Defender
2025.8.25 10:48 攻击者上传后门
2025.8.25 11:00 攻击者上传加密器
2025.8.25 11:14 攻击者开始使用加密器加密

攻击者的入口是什么?web?rdp爆破?

查看日志,不存在大量rdp登录失败信息

image-20260108173635409

排除rdp爆破

查看网络端口,看开放了哪些服务

netstat -ano

image-20260108180927611

开放了80、8081等web端口,3306数据库端口,存在web服务

在访问12333端口时,发现为web若依

image-20260108181945279

无法访问时是因为windows系统防火墙自动开启,没有将端口对外映射

image-20260108182302344

搜索发现,E盘下存在ruoyi文件夹,对文件夹进行解密

查看日志,没有直接信息

爆破ruoyi shiro密钥,这里我没有爆破出来密钥,查看wp是可以爆破的

image-20260108182606827

攻击者是怎么关闭的Windows defender的?

shiro rce之后,通过powershell关闭了防火墙

https://www.cnblogs.com/tomtellyou/p/16300557.html

事件分析

web端若依存在弱密钥,攻击者通过爆破若依密钥,rce,尝试上传后门文件,上传后发现被windowsDefender查杀,通过powershell关闭防火墙,关闭后上传后门文件,上传加密器、对文件进行加密从而勒索

某项目特洛伊挖矿木马靶场

介绍

https://mp.weixin.qq.com/s/cMj5vZqF4hBSeMSmqpSqZw

靶机来源于州弟学安全 题目描述: 角色: 你是一名初级安全工程师。 事件: 运维团队报告,公司的一台核心开发服务器(Ubuntu 22.04 LTS)出现CPU使用率异常飙高告警及安全设备检出外联挖矿事件。现在,你需要登录该服务器,排查并处置这一安全事件,并最终找出问题的根源。 账号:root 密码:P@ssw0rd 请使用ssh远程 flag获取请运行ulabflag,完成答题获取

本次环境是在8月份的一次勒索排查项目中遇到的,先描述一下当时情况

  1. 某日某客户被勒索病毒加密
  2. 我方经过排查和溯源后找到漏洞点,并在后续进入客户需求与数据恢复工作和安全运营的工作
  3. 安全运营期间,通过奇安信天眼发现有外出挖矿流量
  4. 在上机排查后发现属实,程序表现为以下特征:
  1. 挖矿程序和计划任务删除提示:无权限(当时以root权限运行)
  2. 使用busybox删除挖矿程序与计划任务成功
  3. 但当使用sudo、以及wget后,挖矿程序和计划任务再次重现

根据此类木马特征和服务器业务开放情况判断,可能是运维、开发人员安装了非官方程序或U盘内存在病毒文件导致感染,当运行了程序后会释放挖矿文件和感染常用可执行文件的情况,并且会感染stat、rm等对应文件,导致stat无法查看文件创建时间和删除挖矿程序(无权限),执行ls -la sudo后发现修改时间在6月份,时间已经过去两个月,溯源难度大且不确定此类程序是否在运行并感染后自删除,根据经验先行进行应急响应,而后将完成流程进行复现汇报

题目信息:  
1. 提交挖矿文件的绝对路径,最终以flag{/xxx/xxx}格式提交
2. 提交挖矿文件的外联的IP与端口,最终以flag{ip:port}格式提交
3. 停止挖矿进程并尝试删除挖矿程序,根据异常判断,提交守护进程脚本的绝对路径,最终以flag{/xxx/xxx/xxx/xxx}提交
4. 根据出现的异常及守护进程脚本,继续排查,以人为本,使用环境内浏览器访问:http://chat.internal-dev.net:8081 获取可疑网址,最终以flag{http://www.example.com}格式提交
5. 分析病毒文件,提交其感染的所有程序,最终以flag{md5(/usr/bin/whoai,/usr/bin/ls,/usr/bin/top)}进行提交,顺序需以病毒文件中为准
6. 修复系统并恢复文件完整性:已知所有程序被感染,当前系统属于断网状态,所以作者贴心的在/deb_final目录下存放了对应程序的deb包,请尝试恢复所有程序,恢复完毕后在/var/flag/1文件获取flag
7. 最终清理:删除挖矿程序、删除计划任务及守护进程及清除相关进程,等待片刻在/var/flag/2获取flag

WP

1. 提交挖矿文件的绝对路径,最终以flag{/xxx/xxx}格式提交

存在挖矿,查看CPU占用信息

使用top查看cpu

image-20260112154429888

回显为空,可能为以下三种原因

  1. alias改别名:程序自动化或人为更改了别名,在执行指定的命令后,会按照修改后的别名显示出对应结果
  2. 环境变量劫持:这里在直播中强调,如在:tmp目录下创建一个top,其中输出打印123,修改环境变量$PATH,当再次执行top后则会输出123
  3. top程序被感染:也就是特洛伊等病毒的特征,会自动化感染其它文件,达到所谓永生

查看别名

alias

image-20260112154542144

top的别名的确被修改,执行top会echo空

删除别名,查看是否删除,重新执行top

unalias top
alias
top

image-20260112155055774

发现存在PID为356,Command为kworkerds的进程,cpu占用率在30%上下,对比其他进程不合理

定位程序位置:

lsof -p 356

image-20260112155706133

txt 表示可执行文本段(executable text),这是进程正在运行的可执行文件本身。每个进程的 lsof 输出中:

  • txt 指向的就是进程的可执行程序文件
  • 这通常是程序二进制文件本身

mem 表示该进程当前映射到内存中的共享库文件(这里是libc库),这通常是:

  • 进程动态链接的共享库
  • 通过 mmap() 映射到进程地址空间的库文件

找到对应的该文件,查看字符串内容

strings kworkerds

image-20260112160118783

{"id": 1, "method": "login", "params": {"login": "%s", "pass": "x", "agent": "%s"}}

这是典型的加密货币矿机连接到矿池的登录协议格式(通常是XMR/门罗币矿工)。

/tmp/kworkerds.pid

程序会创建PID文件

根据特征:

CPU占用、所在目录(可执行文件在tmp目录下、可在对运维核实确认后作为佐证)、其中字符等,暂时判定为它是挖矿文件的决定路径

image-20260112160548985

2. 提交挖矿文件的外联的IP与端口,最终以flag{ip:port}格式提交

  1. 沙箱分析
  2. ss查看

image-20260112162503741

识别为木马,但是无网络行为

image-20260112162640205

无网络行为不代表不存在外联行为,可能只是沙箱没有检测到,或者样本对沙箱有检测等原因

使用ss -tanpan|grep “kworker”筛选相关程序的外联情况

image-20260112163758859

发现ss可以看到内容,而netstat无法看到内容

ss 能看到而 netstat 看不到,本质原因是:
ss 直接读取内核的 socket 状态,而 netstat 依赖用户态的进程映射与旧接口,容易被“隐藏”。

还有一种是可以使用lsof -p pid去查看,运行完毕后就可以看到

image-20260112164334321

但是我这里运行之后无法看到外链情况

image-20260112164356175

还有一种情况是我们执行ss以后没有结果,有可能是因为这个程序外联有心跳机制,第一个可能规避频繁外联的检测,第二个就是无需长连接校验(业务有关),就像我们的C2一样,有心跳机制

flag{104.21.6.99:10235}

image-20260112164547112

3. 停止挖矿进程并尝试删除挖矿程序,根据异常判断,提交守护进程脚本的绝对路径

尝试删除病毒和kill进程

删除时,提示无权限,但当前为root用户

image-20260112164904667

两种情况:

  1. 感染程序
  2. 文件属性锁

文件属性锁,也就是chattr,他会将我们的文件进行锁住,可以自定义是否增删改的权限,执行lsattr /tmp/kworkerds(chattr负责加锁、lsattr负责查看属性)

先查看是否有文件属性锁

lsattr /tmp/kworkerds

image-20260112165549291

image-20260112165639442

说明此时无文件属性锁,要考虑感染,是否为rm命令被感染

我们猜测rm命令被感染,尝试使用其他去删除文件

使用busybox中的rm删除文件

busybox rm -rf /tmp/kworkerds

image-20260112170322029

两个问题

  1. 系统中存在计划任务,导致定时写入挖矿文件
  2. 有程序被感染,当感染后会检查挖矿进程是否存在、挖矿程序是否存在,不存在则释放和运行

排查计划任务

crontab -l

image-20260112170503236

cat /etc/crontab

image-20260112170537804

都没有看到计划任务

ls -la /etc/cron*

image-20260112170709244

其中的内容为:每分钟、每天、每小时、每月、每周,当把文件存放到里面以后,会按照规律进行启动,类似于Windows中的计划任务

依次排查,根据特征(刚删除文件立马就创建了),排查每分钟

cat /etc/cron.d/0guardian

image-20260112171019538

每次执行该计划任务脚本时,会执行/usr/bin/.0guardian的脚本

跟踪查看

cat /usr/bin/.0guardian

image-20260112171149006

脚本内容为执行stat /tmp

此时的stat命令已经被感染了

stat命令可以帮助我们查看此文件的创建时间、最后修改时间等,但是当我们想要试图查看这个计划任务脚本和挖矿程序的创建和修改时间时,结果为空,但是查看passwd文件却成功,这说明stat被感染后又做了篡改逻辑,在其中加了类似于”白名单”机制,组织我们进一步追溯

image-20260112171819363

strings查看stat命令

strings /usr/bin/stat

image-20260112172135542

猜测该部分为被修改的白名单

通过特征:每分钟运行、守护进程脚本为隐藏文件、stat的异常行为,最终确认:/usr/bin/.0guardian为守护进程脚本,目的是为了让挖矿程序和进程重生

计划任务(每分钟)->调用守护进程脚本->调用stat命令->检查挖矿程序是否存在、进程是否存活->如有则退出->如没有则释放程序和启动进程

问题 4: 分析病毒文件逻辑,提交感染程序名,最终以md5(/usr/bin/whoai,/usr/bin/ls,/usr/bin/top)后的密文进行提交,比如e10adc3949ba59abbe56e057f20f883e,顺序需以病毒文件中为准

需要逆向查看源码, 一般逆向前,先使用DIE查看一下此程序有无加壳,什么语言编写的,这是一个正常的流程

image-20260112214156247

未加壳,并且程序为c语言写

c语言入口为main函数

后续IDA分析

6. 修复系统并恢复文件完整性

我们通过刚才的逆向得知,wget也被感染了,那使用apt源进行更新的时候,就会调用wget进行下载,这是不安全的,其次就是当服务器中招以后,我们需要进行断网排查的,以免横向感染

image-20260112220724188

所以除了杀毒软件进行清除,我们还可以利用如图的程序进行离线覆盖更新,执行命令:dpkg -i --force-overwrite *.deb会自动安装覆盖所有的感染程序

image-20260112220736572