Ryuk0x01/pentest-kit

GitHub: Ryuk0x01/pentest-kit

一个基于 Python 的教育型渗透测试工具包,集成了端口扫描、目录爆破、主机发现和 HTTP 头分析功能,帮助初学者从底层理解安全工具原理。

Stars: 0 | Forks: 0

# PentestKit ## 📌 概述 PentestKit 是一个用 Python 构建的多功能渗透测试工具包。它提供了一组基础安全工具,用于执行网络和 Web 应用程序分析。 该工具包包含: * TinyScanner → TCP 端口扫描器 * DirFinder → 目录暴力破解工具 * HostMapper → 网络主机发现(ICMP ping 扫描) * HeaderGrabber → HTTP 标头分析器 本项目完全从零开始构建,旨在出于教育目的,帮助理解核心渗透测试概念和网络安全基础知识。 ## 🎯 目标 * 了解基础渗透测试工具的内部工作原理 * 构建不依赖外部 CLI 扫描器的安全工具 * 练习 socket 编程和 HTTP 分析 * 学习网络发现技术 * 理解网络安全中的道德和法律考量 ## ⚙️ 开发环境 ### 推荐配置 * 操作系统:Kali Linux 2024.1 * Python:3.10+ * 虚拟机:VirtualBox * 网络模式:NAT / Host-Only ### 为什么使用虚拟机? * 隔离测试环境 * 防止意外扫描生产系统 * 降低触发安全警报的风险 * 允许安全的实验和测试 * 在出现问题时提供快照恢复功能 ## 📦 安装说明 克隆代码库: ``` git clone https://github.com/Ryuk0x01/pentest-kit.git cd pentest-kit ``` 安装依赖项: ``` pip install -r requirements.txt ``` ## 📁 项目结构 ``` pentest-kit/ ├── src/ │ ├── main.py │ ├── helpers/ │ │ ├── display.py │ │ ├── output.py │ │ ├── parser.py │ │ └── runners.py │ │ │ └── tools/ │ ├── tinyscanner.py │ ├── dirfinder.py │ ├── hostmapper.py │ └── headergrabber.py │ ├── wordlists/ ├── output/ ├── tests/ ├── pentestkit ├── README.md └── requirements.txt ``` ## 📋 依赖要求 - Python 3.10+ - requests ## 🔐 权限要求 | 工具 | 需要 Root 权限 | | ------------- | ------------- | | TinyScanner | 否 | | DirFinder | 否 | | HeaderGrabber | 否 | | HostMapper | 是 | ### HostMapper 要求 **重要提示:** HostMapper 需要提升的权限 (`sudo`)。 **原因:** * 使用 ICMP 原始套接字 * 原始套接字受 Linux 限制 * 需要 Root 权限才能发送 ICMP Echo Request 示例: ``` sudo ./pentestkit -n 192.168.1.0/24 -o hosts.txt ``` ## 🚀 使用说明 显示帮助信息: ``` ./pentestkit --help ``` ## 🔍 工具 ### 1. TinyScanner (端口扫描器) 扫描目标主机上的 TCP 端口。 ``` ./pentestkit -t 127.0.0.1 -p 22,80,443 -o ports.txt ``` 输出示例: ``` Port 22 is open (ssh) Port 80 is open (http) Port 443 is closed ``` ### 2. DirFinder (目录暴力破解) 使用字典表发现 Web 服务器上隐藏的目录。 ``` ./pentestkit -d http://example.com -w wordlists/common.txt -o dirs.txt ``` 输出示例: ``` /admin (200) /login (200) /backup (403) ``` ### 3. HostMapper (网络发现) 使用 ICMP Echo Request 识别子网中的活动主机。 ``` sudo ./pentestkit -n 192.168.1.0/24 -o hosts.txt ``` 输出示例: ``` Live hosts found: 192.168.1.1 192.168.1.10 192.168.1.20 ``` ### 4. HeaderGrabber (HTTP 标头分析) 获取并分析 HTTP 响应标头。 ``` ./pentestkit -g http://example.com -o headers.txt ``` 输出示例: ``` Server: Apache Content-Type: text/html Missing Security Headers: - X-Frame-Options - Content-Security-Policy - Strict-Transport-Security ``` ## 📄 输出 * 结果将显示在终端中 * 可以使用 `-o` 选项保存结果 * 输出文件存储在 `output/` 目录中 * 输出格式为纯文本 示例: ``` ./pentestkit -t 127.0.0.1 -o results.txt ``` ## 🧪 测试环境 本项目仅在授权的系统上进行过测试: * 本地主机 (127.0.0.1) * 个人虚拟机 * 隔离的虚拟机网络 * DVWA 测试环境 在开发过程中没有扫描过任何未经授权的系统。 ## ⚠️ 错误处理 该工具包包含对以下情况的处理: * 缺少目标 * 无效的端口指定 * 缺少字典表 * 缺少输出文件名 * 权限被拒绝错误 * 无效的命令行参数 * 网络相关的故障 ## 🔐 道德与法律考量 * 仅扫描您拥有或有权测试的系统 * 未经授权的扫描可能违反法律法规 * 尽可能使用隔离的虚拟环境 * 遵循负责任的披露原则 * 严格将此工具包用于教育目的 ## ⚠️ 局限性 * 单线程扫描 * 仅支持 IPv4 * 不支持代理 * 服务检测功能有限 * HostMapper 需要提升的权限 ## 📌 免责声明 本项目仅供教育目的使用。 对于滥用、未经授权的扫描或使用此软件执行的任何操作,作者不承担任何责任。 在测试任何系统之前,请务必获得适当的授权。
标签:Python, 主机安全, 云存储安全, 字符串匹配, 实时处理, 密码管理, 插件系统, 无后门, 目录枚举, 移动安全, 网络扫描, 逆向工具