AnderssonProgramming/automated-recon-toolkit
GitHub: AnderssonProgramming/automated-recon-toolkit
一套纯Python标准库构建的安全自动化工具链,集成异步端口扫描、Nmap解析增强、日志异常检测和综合侦察编排功能。
Stars: 0 | Forks: 0
## 标题:"技术安装:安全自动化与工具集成"
项目:实验 15 - 自动化
学科:IT 安全与隐私
教授:Daniel Esteban Vela López
作者:Andersson David Sánchez Méndez & Cristian Santiago Pedraza Rodríguez
日期:2026-05-12
地点:哥伦比亚,波哥大
保密级别:仅供内部/学术使用
# 技术安装:安全自动化与脚本编程
Escuela Colombiana de Ingeniería Julio Garavito
Project: Lab 15 - Automation
Subject: IT Security and Privacy
Professor: Daniel Esteban Vela López
Authors: Andersson David Sánchez Méndez & Cristian Santiago Pedraza Rodríguez
Date: 2026-05-12
Location: Bogotá, Colombia
Confidentiality: Internal / Academic Use Only
## 1. 环境与设置说明
根据实验要求,此安全工具套件旨在 Kali Linux 上原生运行,且仅包含最少的外部依赖项,以维护操作安全 (OPSEC) 并确保可移植性。
* **要求 Python 版本:** Python 3.10+
* **要求系统二进制文件:** `nmap`, `whois`, `dig`, `curl`, `ssh-keyscan`
### 依赖项
所有核心脚本均使用 Python 标准库(`asyncio`, `argparse`, `xml.etree.ElementTree`, `subprocess`, `re`, `statistics`, `logging`)。因此,所需的交付物**不需要进行外部 pip 安装**。
*(注意:如果要将工具扩展为使用理论部分讨论的被动 Shodan/VirusTotal API,你需要运行:`pip install shodan requests python-dotenv`)*。
## 2. 脚本文档与设计选择
以下是 `submission/` 目录中包含的脚本的执行指南和架构说明。
### 第 1 部分:`scanner.py`(并发端口扫描器)
* **使用示例:** `python3 scanner.py 127.0.0.1 -p 1-1024 --rate 200 -o scan_results.json`
* **用途:** 高速 TCP 连接扫描器。
* **设计选择:** 我们选择 `asyncio` 和 `asyncio.Semaphore` 而不是 `ThreadPoolExecutor`。网络扫描属于严重的 I/O 密集型(等待 TCP 握手)。`asyncio` 允许单线程复用数千个套接字,从而降低操作系统的内存开销,同时信号量会限制并发数,以防止自我造成的拒绝服务 或触发基本的 IDS 特征。
### 第 2 部分:`parse_scan.py`(Nmap XML 解析器与增强工具)
* **使用示例:** `python3 parse_scan.py --input scan.xml --output hosts.json`
* **用途:** 解析 Nmap 的 `-oX` XML 输出并动态增强 SSH 发现结果。
* **设计选择:** 我们使用内置的 `xml.etree.ElementTree` 来避免第三方依赖。对于增强功能,我们利用 `subprocess` 对开放了 22 端口的主机触发 `ssh-keyscan`。关键是,我们包含了 `timeout=5` 参数,以确保在目标防火墙丢弃数据包时,流水线能够优雅且独立地处理失败。
### 第 3 部分:`auth_analysis.py` 和 `log_analysis.py`(异常检测)
* **使用示例:** `python3 auth_analysis.py` && `python3 log_analysis.py`
* **用途:** 提取服务器日志以识别暴力破解目标、攻击特征和统计异常。
* **设计选择:** 我们设计的这些脚本通过使用生成器表达式(`for line in f:`)来处理数 GB 大小的日志,而无需将其全部加载到内存中。我们使用 Python 的 `statistics` 模块实现了 **3-Sigma 规则**,以便根据实际流量基线动态检测异常,从而适应没有硬编码阈值的环境。
### 第 4 部分:`recon.py`(综合侦察工具)
* **使用示例:** `python3 recon.py google.com --mode domain --output ./sample_output`
* **用途:** 编排 `nmap`, `whois`, `dig` 和 `curl` 的综合 CLI 工具。
* **设计选择:** * **审计日志:** 每个 `subprocess.run()` 都被包装在输出到 `audit.log` 的逻辑中,这是渗透测试期间追踪行动不可或缺的 OPSEC 要求。
* **独立故障:** 使用了精细的 `try/except` 块。如果 `whois` 受到速率限制,脚本会捕获错误并继续执行 `dig` 而不会崩溃。
## 3. 实验室执行证据与遥测数据
### 阶段 1:高速并发执行
针对环回接口执行的 `asyncio` 扫描器展示了极高的效率,在遵守 200 个连接速率限制的同时,在 0.02 秒内完成了 1,024 个端口的扫描。


### 阶段 2:结构化 Nmap 解析
解析器成功读取了 `scan.xml`,并使用外部子进程用加密密钥数据(`ssh-ed25519`)增强了 22 端口的信息。


### 阶段 3:日志挖掘与 3-Sigma 异常检测
脚本识别出源自 `185.220.101.5` 的严重暴力破解活动,检测到特定的 SQLi/LFI 请求,并将 `03 时` 标记为 3-Sigma 异常(Z=3.1σ)。


### 阶段 4:综合侦察工具
最终的编排成功收集了主动/被动情报,维护了审计跟踪,并且尽管存在孤立的工具故障也没有崩溃。


## 4. 分析问题
### 问题 1:高并发下的漏报
**问题:** *在极高的并发下(例如 `--rate 2000`),你可能会观察到漏报。请解释其背后的机制。*
**回答:** 高并发会使本地和远程资源不堪重负。在本地,操作系统可能会耗尽文件描述符限制(`ulimit`)。在网络方面,路由器、防火墙或目标的 TCP 监听队列可能由于状态表耗尽而丢弃数据包。由于异步扫描器依赖超时,因此被丢弃的数据包会被解释为防火墙超时。因此,“扫描器未检测到它”意味着未能及时完成握手,而不是确定该端口已关闭。
### 问题 2:服务版本检测的价值
**问题:** *为什么服务版本字符串是有价值的情报?`Apache 2.4.54` 与完全没有字符串之间有什么区别?*
**回答:** 特定的版本字符串允许攻击者将服务直接映射到已知的漏洞利用程序 (CVEs)。返回无版本字符串的服务器迫使攻击者进行“盲目”利用——猜测内存偏移量和易受攻击的端点。这种暴力模糊测试会显著增加网络噪音,从而提高被 IDS 检测和 IP 封锁的概率。
### 问题 3:3-Sigma 规则与周期性
**问题:** *每日周期性如何影响 3-sigma 检测中单一的全局基线?描述一种改进的方法。*
**回答:** 全局基线会平均掉日常的波峰和波谷。因此,正常的中午流量可能会触发误报,而危险的凌晨 3:00 暴力破解攻击可能会被遗漏,因为总流量仍低于白天的平均水平。**改进方法:** 实施*分时段基线*。仅将当前星期二凌晨 3:00 的流量与之前各个星期二凌晨 3:00 的历史均值和标准差进行比较。
### 问题 4:主动侦察与被动侦察
**问题:** *它们之间的操作差异是什么?哪一个更难被检测到?应用场景是什么?*
**回答:** * **差异:** 主动侦察 使用数据包直接发送给目标。被动侦察 查询第三方数据库,而不触及目标。
* **检测:** 被动侦察对于目标来说几乎是无法检测到的。主动侦察则会触发防火墙和 IDS 警报。
* **应用场景:** 被动侦察非常适合初步的 OSINT 和隐蔽的足迹探测。主动侦察则是内部网络测试或发现尚未被搜索引擎索引的动态服务所必需的。
## 3. 项目结构
以下是仓库组织结构的技术概览:
```
.
├── Automation.md # Raw report content (Markdown)
├── Automation.pdf # Main Technical Report (Final Export)
├── images/ # Supporting evidence and architecture diagrams
├── README.md # Main landing page (this file)
└── submission/ # Core deliverables
├── auth_analysis.py # Log analyzer for authentication attempts
├── log_analysis.py # General access log pattern matcher
├── parse_scan.py # XML-to-JSON parser for Nmap/Scanner output
├── recon.py # Automated footprinting (DNS, Whois, Banner)
├── scanner.py # Concurrent TCP port scanner
├── others/ # Raw logs and intermediate data files
│ ├── access.log # Sample web server logs
│ ├── auth.log # Sample SSH/Auth logs
│ └── host.json # Target metadata
└── sample_output/ # Generated reports and JSON datasets
├── report.md # Evidence report
└── results.json # Structured scan output
```
**注意:** 有关完整的技术分析和实验室结论,请参考主报告:[Automation.pdf](Automation.pdf)。
Escuela Colombiana de Ingeniería Julio Garavito
Project: Lab 15 - Automation
Subject: IT Security and Privacy
Professor: Daniel Esteban Vela López
Authors: Andersson David Sánchez Méndez & Cristian Santiago Pedraza Rodríguez
Date: 2026-05-12
Location: Bogotá, Colombia
Confidentiality: Internal / Academic Use Only
标签:3-Sigma, CDN识别, DNS查询, GitHub, meg, Nmap, OPSEC, Python, Whois, 侦察工具, 信息安全, 信息技术安全, 学术项目, 安全实验室, 实时处理, 异常检测, 异步编程, 插件系统, 教育项目, 数据统计, 无后门, 无线安全, 端口扫描, 网络安全, 脚本编程, 虚拟驱动器, 行动安全, 计算机取证, 隐私保护