jeffersoncesarantunes/S.I.R.E.N
GitHub: jeffersoncesarantunes/S.I.R.E.N
基于 Bash 的 Linux 实时内存获取与流式取证工具,支持完整性校验和远程零痕迹传输。
Stars: 0 | Forks: 0
# 🐧 S.I.R.E.N. - Shell Interactive Runtime Entity Notifier
专注于实时流式传输和完整性校验的高速取证内存获取工具。
## ● 词源与起源
S.I.R.E.N. 这个名字是一个递归缩写,反映了该工具的双重属性:既是一个警报系统,也是一个数据采集器。
在取证传说中,Siren 呼唤着隐藏在深处的真相。在此语境下,它象征着在运行时对内存状态的系统性通知(Entity Notifier)。它充当着数字信标的角色,确保即使在数据被流式传输(Runtime Entity)时,其完整性依然受到监控和审计;一旦有任何硬件保留区或内核限制被突破,它便会发出“警报”。
## ● 概述
S.I.R.E.N. 是一款专用的取证工具,专为高速内存获取和实时完整性审计而设计。
它通过实现流式管道绕过了传统的“文件优先”转储模式,允许分析人员:
- 识别安全的 System RAM 区域。
- 通过网络套接字执行实时取证渗出。
- 同时计算完整性哈希(SHA256)并提取字符串。
该工具完全使用 Bash 编写,确保在紧急事件响应场景下实现零依赖运行。
## ● 工作原理
S.I.R.E.N. 通过 `/proc/iomem` 接口和 `/dev/mem` 字符设备与 Linux Kernel 交互。
其获取逻辑遵循非破坏性路径:
1. **内存映射:** 它解析 `/proc/iomem` 以区分“System RAM”和保留的硬件偏移量。
2. **流式管道:** 它不使用临时文件,而是使用进程替换和管道将数据并行输入到 `sha256sum` 和 `strings` 中。
3. **网络渗出:** 它利用 Netcat (nc) 将原始内存块直接流式传输到远程工作站。
所有检查机制旨在最大限度地减少对目标系统的取证痕迹。
## ● 输出示例
```
┌────────────────────────────────────────────────────────┐
│ [+] Mapping safe System RAM regions... │
├────────────────────────────────────────────────────────┤
│ Address: 00001000-0009fbff [SAFE RANGE] │
│ Address: 00100000-b697efff [SAFE RANGE] │
│ Address: b6b5f000-b6b5ffff [SAFE RANGE] │
└────────────────────────────────────────────────────────┘
[!] Starting acquisition from: /dev/mem
[+] Pipeline completed successfully. Results in ../dumps
```
## ● 远程取证流式传输 (选项 5)
此功能允许提取 RAM 而无需将大文件写入目标的本地磁盘(零痕迹方案)。
1. **在取证工作站(接收端):**
```
nc -l -p 4444 > remote_mem_dump.bin
```
2. **在目标机器上(S.I.R.E.N.):**
选择选项 5,输入 IP 和端口。脚本在流式传输数据的同时会生成本地哈希以供验证。
## ● 关键安全:“需要操作”警告
执行选项 3(实时内存提取)时,系统会访问 `/dev/mem`。
## ● 功能特性
- 通过 Netcat 进行远程渗出。
- 实时 SHA256 完整性审计。
- 实时字符串提取。
- 获取前磁盘空间验证。
- `/proc/iomem` 安全范围映射。
- STRICT_DEVMEM 限制检测。
## ● 运行完整性
## *S.I.R.E.N. 专为取证稳定性而设计:*
- 对系统内存设备进行只读访问。
- 并行处理以减少 I/O 等待时间。
- 不修改内核结构或进程状态。
- 在内核级拒绝访问时优雅终止。
## ● 调查工作流
在成功转储或流式传输后,分析人员可以执行以下操作:
1. **完整性验证:**
```
sha256sum -c dump_filename.sha256
```
2. **取证字符串搜索:**
```
grep -Ei "pass|user|config" mem_strings.txt
```
3. **十六进制检查:**
```
hexdump -C mem_dump.bin | head -n 20
```
## ● 部署
**要求:**
- Linux OS 且具有 root 权限。
- Netcat(用于远程渗出)。
- Bash 4.x 或更高版本。
**构建与执行:**
```
git clone https://github.com/jeffersoncesarantunes/S.I.R.E.N.git
cd S.I.R.E.N
chmod +x src/siren.sh
sudo ./src/siren.sh
```
## ● 故障排除:内核限制
如果转储在正好 **1.0MB** 处停止,或者您看到 `[DENIED BY KERNEL]`,说明您的内核受 `CONFIG_STRICT_DEVMEM` 保护。
为了取证目的绕过此限制,请将 `iomem=relaxed` 添加到您的引导参数(GRUB/systemd-boot)中并重新启动。
## ● 技术栈
- **语言:** Bash Script
- **数据源:** `/dev/mem`, `/proc/iomem`
- **工具:** `dd`, `sha256sum`, `strings`, `nc`
## ● 路线图
- [x] 自动化安全范围提取(Beta 优化)。
- [ ] 渗出期间集成 RAM 压缩。
- [ ] 支持 Lime/LiME 内存驱动程序。
- [ ] JSON 元数据报告生成。
## ● 许可证
根据 MIT License 发布。详情请参见 [LICENSE](./LICENSE)。
标签:Dev/Mem, DevMem, HTTP工具, HTTP请求, ITDR, Linux取证, Netcat, Proc文件系统, RAM流式传输, SecList, SHA256, Shell脚本, TCP流, 二进制分析, 云安全运维, 内存取证, 内存映射, 内核接口, 取证工具, 命令控制, 哈希计算, 字符串提取, 完整性校验, 实时内存获取, 审计工具, 库, 应急响应, 应用安全, 数字取证, 数据渗漏, 数据采集, 杀软绕过, 硬件保留区, 系统RAM, 网络安全, 自动化脚本, 证据保全, 隐私保护, 零依赖