kangindustries/Serpent
GitHub: kangindustries/Serpent
基于 Python 的轻量级 YARA 扫描器,支持文件扫描和进程内存扫描,并可自动获取社区规则。
Stars: 0 | Forks: 0
# 简介
Serpent 是一个简单但强大的基于 Python 的 YARA 扫描器。它包含的工具可以轻松获取社区驱动的 YARA 规则,扫描文件和目录,并动态检查运行中进程的内存以查找匹配项。
## 功能特性
- **文件扫描器 (`scan.py`)**:使用指定的 YARA 超时设置递归扫描特定文件或目录。将结果直接输出为 JSON。
- **进程内存扫描器 (`mem_scan.py`)**:扫描运行中的进程内存(通过单个 PID,或并发扫描所有进程)。支持直接从匹配的内存区域提取预览字符串。
- **自动规则获取 (`scripts/fetch_rules.py`)**:直接从 GitHub 无痛下载并解压社区 YARA 规则。
## 本地运行
确保已安装 Python,然后安装依赖项:
```
pip install -r requirements.txt
```
*(请注意,在 Windows 上需要以**管理员身份**运行终端,在 Linux 上则需要使用 `sudo`,`mem_scan.py` 才能获得读取其他进程内存所需的权限)。*
在扫描任何内容之前,你需要一些 YARA 规则。你可以将自己的规则加载到任何文件夹中,或者获取第三方规则。
要下载社区维护的 `Yara-Rules/rules` 的所有类别:
```
python scripts/fetch_rules.py
```
仅下载特定类别(例如 malware 和 mobile_malware):
```
python scripts/fetch_rules.py --categories malware mobile_malware
```
你可以使用 `--list-categories` 标志查看所有可用的类别。
*注意:获取的规则受其各自的开源许可证(例如 GPLv2)约束。*
### 文件扫描
要扫描特定文件或整个目录,请使用 `scan.py`:
```
python scan.py "C:\path\to\scan" --rules "rules/third_party/yara-rules"
```
可选参数:
- `--timeout [seconds]` - 为每个扫描的文件设置最大超时时间(默认值:10)。
- `--out [file.json]` - 将扫描报告输出到特定的 JSON 文件(默认值:`results.json`)。
### 内存扫描
要根据你的 YARA 规则扫描所有正在运行进程的实时内存:
```
python mem_scan.py --all --rules "rules/third_party/yara-rules"
```
扫描特定的进程 ID (PID):
```
python mem_scan.py --pid 1234 --rules "rules/third_party/yara-rules"
```
可选参数:
- `--timeout [seconds]` - 为每个进程设置最大超时时间(默认值:10)。
- `--out [file.json]` - 将扫描报告输出到特定的 JSON 文件(默认值:`mem_results.json`)。
标签:AMSI绕过, EDR, Python, YARA, 主机扫描, 云计算, 云资产可视化, 威胁检测, 库, 应急响应, 数字取证, 文件扫描, 无后门, 流量嗅探, 网络安全, 网络安全审计, 网页爬虫, 脆弱性评估, 自动化脚本, 规则引擎, 进程内存扫描, 逆向工具, 隐私保护