SiteQ8/ShadowPulse
GitHub: SiteQ8/ShadowPulse
一款零依赖的 Linux 威胁狩猎与事件响应工具套件,通过八个模块自动化完成取证调查全流程。
Stars: 0 | Forks: 0
[]()
[](LICENSE)
[]()
[]()
[]()
**Linux 威胁狩猎与事件响应工具套件**
当发生入侵时,最初的 30 分钟决定一切。
[快速开始](#quick-start) · [模块](#modules) · [使用方法](#usage) · [输出](#output) · [贡献](#contributing)
## 概述
ShadowPulse 自动化了 Linux 系统上的取证调查生命周期。它收集易失性证据、搜寻持久化机制、检测恶意软件和 Webshell、提取 IOC、重构事件时间线,并生成证据保管链报告——所有这些都在单次执行中完成。
### 功能特性
- **收集易失性证据**,在其消失之前——进程、连接、内存映射、打开的文件
- **搜寻持久化**——cron、systemd、Shell 配置文件、SSH 密钥、LD_PRELOAD、init 脚本
- **检测恶意软件**——Webshell 特征库(14 种模式)、加密货币挖矿程序、反向 Shell、Rootkit 指标
- **审计用户**——UID 0 账户、无密码用户、NOPASSWD sudo、登录失败、SSH 活动
- **分析网络**——活动连接、C2 端口检测、DNS、ARP、防火墙、混杂模式
- **检查日志**——暴力破解指标、权限提升、日志篡改检测
- **提取 IOC**——外部 IP、域名、URL、文件哈希、可疑的命令历史
- **构建时间线**——文件修改、认证事件、软件包安装、登录会话
- **保全证据**——对每个证据进行 SHA-256 哈希,以保证证据保管链的完整性
### 设计原则
- **零依赖**——纯 Bash。无需安装 Python、Ruby、Go 或外部工具。
- **取证可靠性**——对收集的每个证据文件进行 SHA-256 保管链处理。
- **模块化执行**——运行全部 8 个模块或仅选择您需要的模块。
- **非破坏性**——只读证据收集。不修改系统。
- **本地运行**——完全在目标系统上运行。无数据渗出。
- **即时部署**——下载并执行。无需编译或配置。
## 快速开始
```
# 部署并运行(完整调查)
curl -sO https://raw.githubusercontent.com/SiteQ8/ShadowPulse/main/shadowpulse.sh
chmod +x shadowpulse.sh
sudo ./shadowpulse.sh
# 或克隆并运行
git clone https://github.com/SiteQ8/ShadowPulse.git
cd ShadowPulse
sudo ./shadowpulse.sh
```
## 模块
| 模块 | 名称 | 收集与检测内容 |
|--------|------|-----|
| **01** | 易失性数据 | 进程树、打开的文件描述符、已删除但打开的文件、内核模块、内存映射、环境变量中的机密 |
| **02** | 持久化狩猎 | Cron(系统 + 用户级)、systemd 服务/定时器、init 脚本、rc.local、Shell 配文件(.bashrc/.profile)、SSH authorized_keys、LD_PRELOAD 劫持、at 任务 |
| **03** | 恶意软件检测 | 隐藏文件(/tmp, /dev/shm)、SUID 审计、Webshell 特征库(14 种模式,包括 c99, r57, WSO, b374k)、加密货币矿工(xmrig, stratum)、反向 Shell、Rootkit 指标、软件包完整性(rpm -Va / dpkg --verify)、近期修改的系统二进制文件 |
| **04** | 用户分析 | UID 0 账户、无密码用户、NOPASSWD sudo 规则、登录历史(last/lastb)、SSH 接受/失败计数、近期创建的用户 |
| **05** | 网络取证 | 进程映射的活动连接、C2 端口检测(4444/5555/1337/31337)、DNS 配置审计、ARP 表、路由、iptables/nftables、混杂模式 |
| **06** | 日志分析 | Auth/syslog/kernel/Web 服务器日志、日志篡改检测(空文件/截断)、暴力破解计数、权限提升尝试、审计日志提取 |
| **07** | IOC 提取 | 外部 IP(连接 + 日志)、域名提取、URL 收集、可疑文件的 SHA-256 哈希、Shell 历史记录模式匹配(wget\|bash, base64 decode, /dev/tcp) |
| **08** | 时间线 | 文件修改时间线(72 小时)、认证事件、软件包安装历史、登录会话时间线 |
## 使用方法
```
sudo shadowpulse.sh [OPTIONS]
Modules:
--all Run all modules (default)
--volatile Volatile data collection
--persistence Persistence mechanism hunting
--malware Malware and webshell detection
--users User and authentication analysis
--network Network forensics
--logs Log analysis and anomaly detection
--ioc IOC extraction
--timeline Event timeline reconstruction
Options:
--output DIR Custom output directory
--quiet Suppress banner and progress
--no-report Skip HTML report generation
--help Show help
--version Show version
```
### 示例
```
# 完整调查 — 所有 8 个模块
sudo ./shadowpulse.sh
# Threat hunting — 重点关注恶意软件和持久化
sudo ./shadowpulse.sh --malware --persistence
# Network incident — 连接和 IOC
sudo ./shadowpulse.sh --volatile --network --ioc
# Brute force investigation — 用户和日志
sudo ./shadowpulse.sh --users --logs --timeline
# Case management — 自定义输出路径
sudo ./shadowpulse.sh --output /cases/INC-2026-042
# Quiet mode — CI/CD 或自动化流水线
sudo ./shadowpulse.sh --quiet --no-report
```
## 输出
每次调查都会生成一个取证证据包:
```
/var/shadowpulse/case-YYYYMMDD-HHMMSS/
├── evidence/ # 50+ raw evidence artifacts
│ ├── processes-tree.txt # Process hierarchy
│ ├── deleted-files-open.txt # Deleted but open files
│ ├── cron-system.txt # System cron jobs
│ ├── cron-users.txt # Per-user cron jobs
│ ├── systemd-services.txt # All systemd units
│ ├── ssh-authorized-keys.txt # SSH public keys
│ ├── webshells-*.txt # Detected webshell files
│ ├── suid-binaries.txt # SUID/SGID audit
│ ├── netstat-established.txt # Active connections
│ ├── ioc-ips.txt # External IP addresses
│ ├── ioc-hashes.txt # SHA-256 file hashes
│ ├── timeline-files.txt # File modification timeline
│ └── ...
├── chain-of-custody.sha256 # SHA-256 of every evidence file
└── report.html # Visual forensic report
```
### 证据保管链
每个证据文件在收集后立即进行 SHA-256 哈希处理。`chain-of-custody.sha256` 文件提供加密证明,证明证据在收集后未被修改——这对于法律诉讼和合规审计至关重要。
### HTML 报告
取证报告包括带有严重性评分的执行摘要(Critical/High/Medium/Low)、每个发现的修复指南、证据文件列表以及案例元数据(主机名、内核、时间戳、调查员)。
## 检测项
### 持久化(模块 2)
| 检测项 | 严重性 | 技术 |
|-----------|----------|-----------|
| 包含 curl/wget/nc/base64 的 Cron 任务 | CRITICAL | 计划下载并执行 |
| Shell 配置文件注入 | CRITICAL | .bashrc/.bash_profile 代码注入 |
| LD_PRELOAD 劫持 | CRITICAL | 通过 /etc/ld.so.preload 进行库注入 |
| 启用了 SSH root 登录 | HIGH | PermitRootLogin yes |
| 活动的 rc.local 命令 | HIGH | Init 级别持久化 |
| 近期修改的 systemd 服务 | MEDIUM | 服务文件篡改(7 天窗口) |
### 恶意软件(模块 3)
| 检测项 | 严重性 | 指标 |
|-----------|----------|------------|
| Webshells(14 个特征库) | CRITICAL | eval(base64_decode), system($_), c99shell, r57shell, WSO, b374k, FilesMan, AnonymousFox |
| 加密货币矿工 | CRITICAL | xmrig, minerd, cpuminer, stratum, cryptonight |
| 反向 Shell | CRITICAL | bash -i, /dev/tcp, nc -e, python socket |
| 隐藏进程(Rootkit) | CRITICAL | /proc PID 没有 ps 对应项 |
| 修改过的系统二进制文件 | HIGH | /usr/bin, /sbin 在 24 小时内发生变化 |
| 已删除但打开的文件 | HIGH | 通过文件删除逃避恶意软件检测 |
| 异常的 SUID 二进制文件 | HIGH | 标准路径之外的 SUID |
### 网络(模块 5)
| 检测项 | 严重性 | 指标 |
|-----------|----------|------------|
| C2 端口连接 | CRITICAL | 出站连接到 4444, 5555, 6666, 1337, 31337 |
| 无防火墙规则 | HIGH | iptables 或 nftables 中无 DROP/REJECT |
| 混杂模式 | HIGH | 网络接口嗅探 |
| 非标准 DNS | MEDIUM | 已知提供商之外的 DNS 服务器 |
## 免责声明
ShadowPulse 旨在用于您拥有或拥有明确书面授权调查的系统上的授权事件响应和取证调查。在未经授权的系统上运行此工具可能违反适用法律。证据收集是只读且非破坏性的。
## 贡献
欢迎贡献:
- 额外的恶意软件特征库和检测模式
- 云特定取证模块(AWS, Azure, GCP)
- 容器取证(Docker, Kubernetes)
- 内存获取集成
- YARA 规则集成
- STIX/TAXII IOC 导出格式
参见 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 许可证
MIT 许可证 — 详见 [LICENSE](LICENSE)。
ShadowPulse — Linux 威胁狩猎与事件响应工具套件
@SiteQ8 — Ali AlEnezi — Made in Kuwait
标签:BurpSuite集成, C2检测, Cutter, ESC漏洞, HTTP工具, IOC提取, IP 地址批量处理, PE 加载器, Python Webshell, reverse shell, SHA-256校验, Webshell扫描, Web报告查看器, 协议分析, 后渗透, 子域名变形, 安全工具包, 库, 应急响应, 应用安全, 持久化狩猎, 数字取证, 无线安全, 时间线重建, 权限提升, 流量嗅探, 用户审计, 网络安全审计, 网络连接分析, 自动化脚本, 证据收集, 链条监管