0x01 前言
原文:https://github.com/JY-666-YINZI/Linux-schoolncident-response/blob/main/%E8%AE%B0%E4%B8%80%E6%AC%A1%E5%BA%94%E6%80%A5%E5%93%8D%E5%BA%94%E5%AE%9E%E6%88%98%EF%BC%9A%E4%BB%8E%E6%9C%AA%E7%9F%A5%20Java%20%E6%8C%96%E7%9F%BF%E6%9C%A8%E9%A9%AC%E5%88%B0%E6%8C%81%E4%B9%85%E5%8C%96%E5%90%8E%E9%97%A8%E6%B8%85%E9%99%A4.md
在安全运维过程中,突发服务器 CPU 飙升异常。本文将以 PDCERF(准备-检测-抑制-根除-恢复-跟踪) 应急响应模型为指导,记录一次在极端不出网环境(无法使用 <font style="color:rgba(0, 0, 0, 0.55);">apt</font>、<font style="color:rgba(0, 0, 0, 0.55);">lsof</font> 等常用工具)下,从发现异常、定位溯源到彻底根除 Java 挖矿木马及隐藏守护进程的实战过程。
0x02 应急响应挑战与限制
环境痛点: 目标主机处于内网不出网环境,无法通过包管理器安装 <font style="color:rgba(0, 0, 0, 0.55);">apt</font>、<font style="color:rgba(0, 0, 0, 0.55);">lsof</font>、<font style="color:rgba(0, 0, 0, 0.55);">netstat</font> 等网络与进程分析利器。
在缺乏自动化工具的情况下,我们需要充分利用 Linux 原生命令(如 <font style="color:rgba(0, 0, 0, 0.55);">ps</font>、<font style="color:rgba(0, 0, 0, 0.55);">cat</font>、<font style="color:rgba(0, 0, 0, 0.55);">crontab</font>)进行手工对齐与排查。
0x03 D – 检测与分析阶段 (Detection)
1. 异常进程排查
排查发现系统 CPU 占有率异常高。由于无法使用常规工具,通过 <font style="color:rgba(0, 0, 0, 0.55);">ps</font> 命令组合查看后台进程,锁定嫌疑对象:
Bash
ps -ef | grep java
分析发现: 引起 CPU 飙升的不是系统常规服务,而是一个由 <font style="color:rgba(0, 0, 0, 0.55);">java</font> 运行的异常程序,成功定位到对应的文件详细信息与进程 PID。
由于这个不出网导致这个环境问题(不能拉apt和lsof这些关键命令包)
ps -ef看后台进程也能看到对应的文件所在。 来查找这个PID对应的进程的文件详细信息(替换品)
2. 静态样本分析
初步发现可疑文件位于 <font style="color:rgba(0, 0, 0, 0.55);">/tmp/miner.jar</font>。
- 读取文件内容尝试:
Bash
cat /tmp/miner.jar
- 溯源手段: 在条件允许的情况下,可将该
<font style="color:rgba(0, 0, 0, 0.55);">jar</font>包导出并上传至微步在线沙箱或相关威胁情报平台进行 MD5/沙箱检测,进一步确认其挖矿木马属性。
cat /tmp/miner.jar 探查这个文件的内容
可以放在“微步”上来确定一下。
0x04 C & E – 抑制与根除阶段 (Containment & Eradication)
1. 初次清理与“守护进程”对抗
首先尝试对表面文件和进程进行清理:
- 删除木马文件:
rm -rf /tmp/miner.jar
结果:删除成功。
rm -rf /tmp/miner.jar 删除该文件
删除成功
- 强制杀掉异常进程(假设当时 PID 为 519):
kill -9 519
结果:进程被杀掉后瞬间“复活”,虽然删除了 _<font style="color:rgba(0, 0, 0, 0.55);">/tmp/miner.jar</font>_,但系统内又拉起了新的 Java 挖矿进程,且进程 PID 发生了变化。
核心诊断: 系统内必然存在守护进程或**定时任务(Cron Job)**在持续监控并强制拉起该挖矿程序。
kill -9 519 杀掉该进程,发现这个进程又“活了过来”删除成功,但是PID变了。
说明可能存在”守护进程“,进行完这些步骤后下面要查看“计划任务 /etc/crontab中的*;以及/usr/cron*这两个地方的计划任务”
2. 阻断执行源
为了防止木马持续消耗系统资源并作为临时抑制手段,直接切断其 JDK 执行环境(注意:此操作需评估对业务 Java 环境的影响):
# 删除木马依赖的 java 执行文件
rm -rf /usr/lib/jvm/java-11-openjdk-amd64/bin/java
# 验证文件是否彻底删除
cat /usr/lib/jvm/java-11-openjdk-amd64/bin/java
# 再次强制杀掉新生成的挖矿 PID(如 70473)
kill -9 70473
结果:杀掉进程后,CPU 占有率高的 Java 异常进程消失,指标恢复正常。
0xz5 E – 深层漏洞与持久化后门根除 (Eradication)
虽然 CPU 降了下来,但为了防止黑客留有隐藏的计划任务在特定时间再次生成文件,必须对系统级和用户级的持久化后门进行地毯式排查。
1. 系统级计划任务排查
检查系统核心定时任务配置文件及目录:
Bash
# 检查系统级总任务配置
cat /etc/crontab
# 检查各类定时目录(每小时、每天、每周等)
ls -la /etc/cron*
排查结果:_<font style="color:rgba(0, 0, 0, 0.55);">cat /etc/crontab</font>_ 及 _<font style="color:rgba(0, 0, 0, 0.55);">cron.hourly</font>_ 等目录中仅发现系统原生合规进程,未见异常,继续转换排查方向。
- cat /etc/crontab
发现了一个都是系统进程,没有那么换个地方查探
- ls -la /etc/cron*
查看这个地方的计划任务。
依旧是从每分钟开始排查,发现有两个但是都是系统文件,可以往下探查一波。
探查每小时的hourly:发现也是系统文件。
2. 用户级计划任务排查(突破口)
攻击者常利用防守方忽视用户级计划任务的侥幸心理进行权限维持。
Bash
# 查看当前用户的计划任务
crontab -l
关键发现:成功发现一条指向异常隐藏脚本的恶意定时任务!
**crontab -l **查看用户级(attacker可能会利用我们忽略用户级计划任务的侥幸心理)
然后我们可以** cat /usr/share/.per/persistence.sh查看**
也可以直接下载下来拿给 ai/微步上查看。
分析出来确实是恶意挖矿文件。
3. 后门脚本与备份木马溯源
顺藤摸瓜,深度分析恶意定时任务指向的后门脚本:
# 查看后门持久化脚本内容
cat /usr/share/.per/persistence.sh
代码审计结论: > 1. 该 <font style="color:rgba(0, 0, 0, 0.55);">.sh</font> 脚本具备自动下载/拉起挖矿程序的功能。
2. 审计代码发现,黑客除了 <font style="color:rgba(0, 0, 0, 0.55);">/tmp/miner.jar</font> 外,还在系统深处隐藏了一个备份木马文件,路径为:<font style="color:rgba(0, 0, 0, 0.55);">/usr/share/.miner/miner.jar</font>。
审计代码可以发现还有个隐藏的备份:usr/share/.miner/miner.jar
接着探查:
4. 彻底斩草除根
定位到所有隐藏备份与后门脚本后,执行最终清理:
rm -rf /usr/share/.miner/miner.jar 删除这个备份文件
删除 rm -rf /usr/share/.per/persistence.sh
没报错也没再生成删除成功。(但是其实要隔几分钟再看,万一还有守护进程,不过经过排查没有其他可疑文件与计划任务)
Bash
# 1. 删除隐藏的挖矿木马备份文件
rm -rf /usr/share/.miner/miner.jar
# 2. 删除用于权限维持的恶意持久化持久脚本
rm -rf /usr/share/.per/persistence.sh
# 3. 清理 crontab 中的恶意配置项
crontab -e
验证反馈:命令执行未报错。静置观察数分钟并持续监控系统进程与文件状态,未发现恶意文件再生或异常进程复活,持久化后门被成功根除。
0x06 R & F – 恢复与总结跟踪 (Recovery & Follow-up)
1. 靶场 Flag 提交汇总(结合流量审计与网络发现)
在完成主机层的病毒清理后,结合网络流量审计及 Web 站点漏洞关联,梳理出本次事件的核心要素与靶场得分点:
- 扫描特征分析: 统计流量中存在 Web 扫描特征的 IP 数量,并筛选出显式使用 NMAP 扫描特征的源 IP。
- 攻击路径溯源: * 时间线限制: 准确定位到
<font style="color:rgba(0, 0, 0, 0.55);">2025.6.22 17:03:27</font>由 IP<font style="color:rgba(0, 0, 0, 0.55);">192.168.37.10</font>通过端口<font style="color:rgba(0, 0, 0, 0.55);">55689</font>访问的异常 URL 路径,以<font style="color:rgba(0, 0, 0, 0.55);">flag{...}</font>形式提交。- 漏洞利用点: 审计 Web 站点流量,确定攻击者是通过特定的 漏洞文件名接口 成功入侵并控制主机的。
- 身份凭证: 查明攻击者在前台注册并利用漏洞的 恶意注册用户名。
- 战果验证(Flag 提交):
- 木马确认: 提交攻击者控制成功时上传的木马文件名,以及后续上传的挖矿木马在流量中暴露的矿池地址。
- Flag 1(Web木马清除): 清除 Web 侧上传的木马后,查看并提交
<font style="color:rgba(0, 0, 0, 0.55);">/var/flag/1/flag</font>。 - Flag 2(挖矿木马清除): 清除主机
<font style="color:rgba(0, 0, 0, 0.55);">/tmp/miner.jar</font>后,查看并提交<font style="color:rgba(0, 0, 0, 0.55);">/var/flag/2/flag</font>。 - 持久化后门路径: 提交定时更新挖矿程序的后门路径
<font style="color:rgba(0, 0, 0, 0.55);">/usr/share/.per/persistence.sh</font>。 - Flag 3(后门彻底清除): 彻底清除上述后门及备份文件后,查看并提交
<font style="color:rgba(0, 0, 0, 0.55);">/var/flag/3/flag</font>。
2. 安全加固建议(Follow-up)
- 修复 Web 漏洞: 立即修复涉事 Web 站点被攻击者利用的注册/文件接口漏洞,防止二次入侵。
- 基线安全加固: 严格限制 Web 运行组件(如 Tomcat/Jboss 等)的执行权限,禁止以 root 高权限运行。
- 权限最小化: 定期审计系统
<font style="color:rgba(0, 0, 0, 0.55);">crontab</font>计划任务,对<font style="color:rgba(0, 0, 0, 0.55);">/tmp</font>、<font style="color:rgba(0, 0, 0, 0.55);">/usr/share</font>等敏感目录设置严格的权限控制或部署文件完整性监控(如 AIDE)。


![图片[1]李白你好-实战攻防记一次应急响应实战:从未知 Java 挖矿木马到持久化后门清除李白你好-实战攻防李白你好](https://cdn.nlark.com/yuque/0/2026/png/66872828/1783944216867-76739698-2b5f-4cd6-8bba-573fca07355d.png)
![图片[2]李白你好-实战攻防记一次应急响应实战:从未知 Java 挖矿木马到持久化后门清除李白你好-实战攻防李白你好](https://cdn.nlark.com/yuque/0/2026/png/66872828/1783995771109-99fb78b7-3ece-42b1-8254-999104ac71f0.png)
![图片[3]李白你好-实战攻防记一次应急响应实战:从未知 Java 挖矿木马到持久化后门清除李白你好-实战攻防李白你好](https://cdn.nlark.com/yuque/0/2026/png/66872828/1783995810410-9dfc51f3-31f8-4bfe-bf86-e347e2fea2d9.png)
![图片[4]李白你好-实战攻防记一次应急响应实战:从未知 Java 挖矿木马到持久化后门清除李白你好-实战攻防李白你好](https://cdn.nlark.com/yuque/0/2026/png/66872828/1783997731121-8f361f46-2290-43ee-8ac6-c4572bb27b45.png)
![图片[5]李白你好-实战攻防记一次应急响应实战:从未知 Java 挖矿木马到持久化后门清除李白你好-实战攻防李白你好](https://cdn.nlark.com/yuque/0/2026/png/66872828/1783945038278-6469451c-168d-4dd4-9100-5157032c651e.png)
![图片[6]李白你好-实战攻防记一次应急响应实战:从未知 Java 挖矿木马到持久化后门清除李白你好-实战攻防李白你好](https://cdn.nlark.com/yuque/0/2026/png/66872828/1783945557743-6764b9b9-6dc6-4d7d-8f68-bc7da408c8b1.png)
![图片[7]李白你好-实战攻防记一次应急响应实战:从未知 Java 挖矿木马到持久化后门清除李白你好-实战攻防李白你好](https://cdn.nlark.com/yuque/0/2026/png/66872828/1783992493210-e9b9db0b-db0b-448b-bf5c-f99338bf48b8.png)
![图片[8]李白你好-实战攻防记一次应急响应实战:从未知 Java 挖矿木马到持久化后门清除李白你好-实战攻防李白你好](https://cdn.nlark.com/yuque/0/2026/png/66872828/1783996265869-ca95312f-3bd0-43eb-b0b1-576e91287f24.png)
![图片[9]李白你好-实战攻防记一次应急响应实战:从未知 Java 挖矿木马到持久化后门清除李白你好-实战攻防李白你好](https://cdn.nlark.com/yuque/0/2026/png/66872828/1783996557467-05a32f16-6d66-48e6-8216-d958c1b22fb1.png)
![图片[10]李白你好-实战攻防记一次应急响应实战:从未知 Java 挖矿木马到持久化后门清除李白你好-实战攻防李白你好](https://cdn.nlark.com/yuque/0/2026/png/66872828/1783996525267-a3c71271-7bc0-40c1-b9af-81f3d511dd37.png)
![图片[11]李白你好-实战攻防记一次应急响应实战:从未知 Java 挖矿木马到持久化后门清除李白你好-实战攻防李白你好](https://cdn.nlark.com/yuque/0/2026/png/66872828/1783996959822-f762fe68-c445-4f55-9666-8fbb439c545a.png)
![图片[12]李白你好-实战攻防记一次应急响应实战:从未知 Java 挖矿木马到持久化后门清除李白你好-实战攻防李白你好](https://cdn.nlark.com/yuque/0/2026/png/66872828/1783997365140-1d3a6c33-03ca-4177-bf70-9f4f766a90bd.png)
![图片[13]李白你好-实战攻防记一次应急响应实战:从未知 Java 挖矿木马到持久化后门清除李白你好-实战攻防李白你好](https://cdn.nlark.com/yuque/0/2026/png/66872828/1783997167621-3ac528ca-1586-405a-9f35-284daf2255ab.png)

















暂无评论内容