OscarArevaloSec/python-security-tools
GitHub: OscarArevaloSec/python-security-tools
一套面向蓝队分析师的 Python 安全自动化脚本集,涵盖日志解析、IOC 提取、哈希校验及授权范围内的资产发现与枚举功能。
Stars: 0 | Forks: 0
# Python 安全工具
[](https://github.com/OscarArevaloSec/python-security-tools/actions/workflows/ci.yml)
本仓库包含用于安全学习、分析师自动化、日志审查、IOC 提取、哈希检查以及**授权防御性枚举**的小型 Python 脚本。其蓝队目的是展示我能够使用 Python 来支持可重复的调查工作流、资产可见性以及基于证据的报告。
这些脚本仅用于授权实验室(如家庭实验室、Hack The Box、TryHackMe 和故意存在漏洞的环境)中的教育用途。严禁在未经明确许可的情况下对系统使用这些脚本。
## 脚本索引
| 脚本 | 用途 | 防御或学习价值 | 状态 |
|---|---|---|---|
| `log_parser.py` | 解析 auth.log、syslog 或 Windows 风格的事件日志,并识别暴力破解模式。 | 支持可疑登录分诊和时间线构建。 | 就绪 |
| `ioc-parser.py` | 从文本中提取并消除 IPs、domains、URLs、hashes、emails 和 CVEs 的危害。 | 支持钓鱼、恶意软件和威胁情报工作流。 | 就绪 |
| `hash_checker.py` | 对文件或字符串进行哈希处理并比对已知哈希。 | 支持文件完整性审查和恶意软件分诊基础。 | 就绪 |
| `asset_discovery.py` | 使用保守的 TCP 探测在授权范围内识别有响应的资产。 | 支持资产盘点、服务暴露审查和蓝队可见性。 | 就绪 |
| `port_scanner.py` | 使用 Python sockets 审查授权主机、主机列表或小型 CIDR 范围内开放的 TCP 服务。 | 支持授权的服务暴露审查,并提供 TXT、CSV、JSON 和 Markdown 报告。 | 就绪 |
| `nmap_scanner.py` | 针对授权目标运行 Nmap,并将 Nmap XML 输出解析为纯文本报告。 | 支持包含 Nmap 服务/版本详情和仅限 TXT 报告的枚举阶段记录。 | 就绪 |
| `subdomain_enum.py` | 使用 dnspython 或 socket 后备的 DNS 子域暴力破解工具。 | 支持授权的 DNS 发现实践。 | 就绪 |
| `dir_enum.py` | 具有状态和大小过滤功能的 Web 目录和文件暴力破解工具。 | 支持 Web 实验室枚举和防御性日志意识。 | 就绪 |
| `smb_enum.py` | SMB 共享枚举以及 RPC 用户或组枚举。 | 支持 Windows 和 SMB 实验室实践。 | 就绪 |
| `user_enum.py` | 通过 HTTP 响应分析或 SMB/RID 暴力破解进行用户名枚举。 | 支持在实验室中理解身份验证弱点。 | 就绪 |
| `common.py` | 共享辅助工具(端口解析、范围加载、CIDR 扩展、反向 DNS、子进程)。 | 由其他工具导入的内部模块;不可直接运行。 | 就绪 |
## 环境要求
| 要求 | 备注 |
|---|---|
| Python | 推荐使用 Python 3.10 或更高版本。 |
| 可选 Python 包 | 用于 HTTP 工具的 `requests` 和用于 DNS 枚举的 `dnspython`。 |
| 可选系统工具 | 用于 `nmap_scanner.py` 的 `nmap`;用于 SMB 工作流的 `smbclient`。 |
仅在您自己的实验室环境中安装可选包:
```
pip install -r requirements.txt # requests, dnspython
sudo apt install nmap smbclient
```
HTTP 工具(`dir_enum.py`、`user_enum.py`)默认验证 TLS 证书;传递 `--insecure` 以允许在实验室目标上使用自签名证书。
## 蓝队工作流
| 工作流 | 示例命令 |
|---|---|
| 可疑登录审查 | `python log_parser.py --file samples/auth_sample.log --filter failed --brute-threshold 3` |
| 从报告中提取 IOC | `python ioc_parser.py --file samples/threat_report_sample.txt` |
| 文件哈希验证 | `python hash_checker.py --file suspicious.bin --algorithm sha256` |
| 授权资产发现 | `python asset_discovery.py --scope 127.0.0.1/32 --ports 22,80,443 --format md --output inventory.md` |
| 授权 Nmap 服务枚举 | `python nmap_scanner.py --target-file samples/authorized_scope_sample.txt --ports 22,80,443,445,3389 --output exposure.txt` |
更多工作流记录可在 [分析师工作流](docs/analyst-workflows.md) 中查看。
## 快速使用
### 日志解析器
```
python log_parser.py --file /var/log/auth.log
python log_parser.py --file /var/log/auth.log --filter failed --brute-threshold 5
python log_parser.py --file samples/auth_sample.log --type auth --output report.txt
```
### IOC 解析器
```
python ioc_parser.py --file samples/threat_report_sample.txt
python ioc_parser.py --text "attacker at 192.168.1.100 hit https://evil.example/login"
python ioc_parser.py --file malware_log.txt --type ip,url,sha256 --output iocs.txt
```
### 哈希检查器
```
python hash_checker.py --file malware_sample.exe --algorithm sha256
python hash_checker.py --string "password123" --algorithm all
python hash_checker.py --identify 5f4dcc3b5aa765d61d8327deb882cf99
```
### 授权防御性枚举
```
python asset_discovery.py --scope 127.0.0.1/32 --ports 22,80,443 --include-inactive
python asset_discovery.py --scope-file samples/authorized_scope_sample.txt --format csv --output asset_inventory.csv
python port_scanner.py --target 127.0.0.1 --ports 22,80,443
python port_scanner.py --targets 127.0.0.1,localhost --ports 22,80,443 --format txt --output service_exposure.txt
python port_scanner.py --target-file samples/authorized_scope_sample.txt --ports 22,80,443,445,3389 --format json --output service_exposure.json
python nmap_scanner.py --target 127.0.0.1 --ports 22,80,443 --output nmap_service_exposure.txt
python nmap_scanner.py --target-file samples/authorized_scope_sample.txt --ports 22,80,443,445,3389 --output nmap_service_exposure.txt
```
枚举工具特意围绕**授权资产可见性**和**服务暴露文档**进行构建。目标不是制作一个隐蔽的扫描器。目标是展示我理解范围界定、报告、基础自动化,以及如何将发现结果转化为分析师的后续问题。
## 示例证据工件
| 工件 | 用途 |
|---|---|
| `samples/authorized_scope_sample.txt` | 展示分析师在运行发现之前如何定义测试范围。 |
| `samples/asset_inventory_sample.csv` | 展示招聘人员可以快速检查的资产清单输出类型。 |
| `samples/port_exposure_sample.md` | 展示原始服务发现如何转化为简短的防御性审查报告。 |
| `service_exposure.txt` | 当您需要来自 `port_scanner.py` 的枚举阶段参考记录时,推荐的本地输出名称。 |
| `nmap_service_exposure.txt` | 当您需要来自 `nmap_scanner.py` 的基于 Nmap 的枚举记录时,推荐的本地输出名称。 |
## 仓库规范
每个工具应包含帮助输出、安全使用示例、预期输入、预期输出以及对其演示的安全概念的简短说明。对于枚举工具,每个示例都应明确声明它适用于**自有实验室或明确授权的范围**。
## 开发
持续集成会在 Python 3.10–3.12 上运行 linting、导入冒烟测试和单元测试
(参见 `.github/workflows/ci.yml`)。要在本地运行相同的检查:
```
pip install -r requirements-dev.txt # pytest, ruff
ruff check . # lint
pytest -q # unit tests (tests/)
```
## 免责声明
这些工具仅用于**教育目的和授权测试**。切勿对您不拥有或没有明确书面测试许可的系统运行这些工具。未经授权的扫描、枚举或访问尝试是非法且不道德的。
标签:CTI, IP 地址批量处理, Python, 威胁情报, 安全运营, 开发者工具, 扫描框架, 插件系统, 数字取证, 无后门, 自动化脚本, 逆向工具