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, 主机安全, 云存储安全, 字符串匹配, 实时处理, 密码管理, 插件系统, 无后门, 目录枚举, 移动安全, 网络扫描, 逆向工具