eustormy/Pentest_Sandbox

GitHub: eustormy/Pentest_Sandbox

一个基于 Flask 的全领域渗透测试训练靶场,涵盖 Web、网络、密码学、逆向、云安全、移动端等 60+ 个刻意植入漏洞的实战任务。

Stars: 0 | Forks: 0


░▒▓██  INTENTIONALLY  VULNERABLE  ██▓▒░   01001000 01000001 01000011 01001011



 ___ ___ _  _ _____ ___ ___ _____   ___   _   _  _ ___  ___  _____  __

| _ \ __| \| |_   _| __/ __|_   _| / __| /_\ | \| |   \| _ )/ _ \ \/ /

|  _/ _|| .` | | | | _|\__ \ | |   \__ \/ _ \| .` | |) | _ \ (_) >  <

|_| |___|_|\_| |_| |___|___/ |_|   |___/_/ \_\_|\_|___/|___/\___/_/\_\



 > 60+ MISSIONS  ·  WEB  ·  NET  ·  CRYPTO  ·  REVERSE  ·  CLOUD  ·  MOBILE

Pentest Sandbox

一个包含刻意留存的漏洞的 Flask 应用,用于渗透测试和 CTF 训练。
横跨 Web、网络、密码学、取证、逆向、云和移动端的 60+ 个任务

License Python 3.9+ Docker Flask GitHub stars

快速开始 · 任务 · 运行模式 · 贡献指南 · 许可证

## 为什么选择这个项目? 大多数“刻意留存漏洞”的应用只涵盖单一的攻击面——仅限 Web(DVWA、Juice Shop)、仅限网络或仅限某个主题。**Pentest Sandbox** 捆绑了一个横跨多个领域的真实实验室: - **现代 Web 漏洞** — SSTI、JWT 滥用、GraphQL / NoSQL 注入、反序列化、竞态条件 - **网络层** 任务由真实的 TCP / UDP 服务作为支撑 - **密码学、取证和逆向工程** 包含真实的工件(pcaps、ELF 二进制文件、`.pyc`、`.apk`) - **云安全** — IAM 权限提升、Terraform 状态、Kubernetes 错误配置 - **移动端赛道** — ADB、APK 逆向、移动端 Header 篡改 每个任务都有一个隐藏的 `FLAG_*`、渐进式提示,以及一个实现了特定刻意留存漏洞的专用路由。通过内置的仪表盘或 `POST /internal/metrics` 提交 Flag——其检查机制是单纯的字符串比较,且没有速率限制(刻意设计)。 ## 快速开始 ### 🐳 Docker(推荐) ``` git clone https://github.com/eustormy/Pentest_Sandbox.git cd Pentest_Sandbox docker-compose up --build ``` 应用 → · UDP 任务 → `:9999` · HTTP 指纹 → `:8080` ### 🐧 原生环境 (Linux / Kali) ``` ./start_native.sh ``` 使用 `pip --break-system-packages` 安装依赖,初始化数据库,并在端口 5000 上启动 Gunicorn。 ### ⚙️ 开发模式 ``` pip install -r requirements.txt python seed.py # one-time DB seed (idempotent) python run.py # Flask (5000) + HTTP (8080) + UDP (9999) ``` ### 📱 Termux / NetHunter ``` ./install-mobile.sh ``` ### 📦 Vagrant ``` vagrant up ``` ## 任务分类 | 分类 | 示例 | | ------------------- | --------------------------------------------------------------------- | | 🌐 Web | SQLi、XSS、SSRF、XXE、SSTI、IDOR、CSRF、Mass Assignment | | 🔐 Auth & JWT | 破坏性认证、PIN 暴力破解、JWT `none` 算法、弱密钥破解 | | 📤 上传 & RCE | 文件上传 RCE、命令注入、SUID root 读取 | | 🧩 APIs | GraphQL 内省、GraphQL SQLi、MQTT 主题拦截 | | ☁️ 云 | IAM 权限提升、Terraform 状态泄露、Kubelet Secret 暴露 | | 🔑 密码学 | Caesar、多表密码、JWT 解码、JS 混淆 | | 🧬 逆向 | ELF 二进制破解、APK Manifest Secret、`.pyc` 恢复 | | 🕵️ 取证 | PCAP 分析、DNS 数据外泄、DB 重构、Git 历史记录中的 Secret | | 🖧 网络 | HTTP 指纹识别 (TCP `8080`)、UDP 发现 (`9999`)、Gobuster | | 📱 移动端 | ADB 远程访问、Header 篡改、APK Manifest Secret | | 🧰 杂项 | 数据隐私欺骗器、IP 欺骗、竞态条件、Docker 逃逸 | **示例 Flag 名称**(非实际值——实际值隐藏在路由中): ``` FLAG_BROKEN_AUTH_ADMIN FLAG_JWT_NONE_ALG_BYPASS FLAG_CAESAR_CIPHER_SOLVED FLAG_FILE_UPLOAD_RCE FLAG_GRAPHQL_SQLI_SUCCESS FLAG_KUBELET_EXPOSED_SECRET FLAG_ELF_BINARY_CRACKED FLAG_DOCKER_BREAKOUT_ROOT FLAG_MQTT_TOPIC_INTERCEPTED ``` **已植入的任务总数:** 57(且在不断增加)。 ## 运行模式 | 模式 | 命令 | 适用场景 | | ---------- | --------------------------- | ------------------------------------- | | Docker | `docker-compose up --build` | 首次运行、隔离的实验环境 | | 原生 | `./start_native.sh` | Kali / Linux — 可使用全套工具 | | 开发 | `python run.py` | 构建 / 调试任务 | | Termux | `./install-mobile.sh` | Android / NetHunter | | Vagrant | `vagrant up` | 可复现的虚拟机配置 | ## 默认凭据 由 `seed.py` 植入: | 用户 | 密码 | 角色 | | ----- | -------- | ------------------------------------------ | | admin | admin123 | admin | | user | password | normal | | staff | sunshine | normal(弱密码 — 用于暴力破解任务) | ## 项目布局 ``` app/ __init__.py create_app() factory models.py SQLAlchemy models routes.py 90+ routes in a single blueprint config.json Intentionally-leaked DB creds (XXE target) static/ CSS + mission artifacts (pcaps, .pyc, .zip, ELF, PNGs) templates/ Jinja2 templates per mission utils/custom_parser.py Intentionally-weak eval wrapper (SSTI / RCE) run.py Dev entrypoint — Flask + HTTP:8080 + UDP:9999 services.py Background services (used by Docker entrypoint) seed.py Idempotent DB seed (users, products, missions, hints) entrypoint.sh Docker entrypoint: seed → Gunicorn start_native.sh Native Kali launcher install-mobile.sh Termux / NetHunter setup Dockerfile python:3.9-slim + iputils-ping docker-compose.yml Exposes 5000/TCP + 9999/UDP, persists instance/ Vagrantfile Ubuntu 20.04 VM provisioner requirements.txt Python dependencies instance/ Runtime SQLite DB (gitignored) ``` ## 环境变量 | 变量 | 默认值 | 用途 | | -------------- | ---------------------------- | ---------------------- | | `SECRET_KEY` | 每个进程随机生成 | Flask 会话签名 | | `DATABASE_URL` | `sqlite:///instance/shop.db` | SQLAlchemy DB URI | ## 贡献指南 欢迎提供任务创意、修复和改进。请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解任务格式、风格指南和 PR 工作流。新手任务标有 [`good first issue`](https://github.com/eustormy/Pentest_Sandbox/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)。 ## 行为准则 本项目遵循 [Contributor Covenant](CODE_OF_CONDUCT.md)。 ## 许可证 [MIT](LICENSE)。本软件为刻意留存漏洞的软件——请仅在授权的、隔离的环境中使用。
标签:CISA项目, CTF培训, Docker, Flask, GraphQL注入, JWT安全, NoSQL注入, Python, SSTI, Web安全, 云资产清单, 反序列化漏洞, 后端开发, 安全培训, 安全实验, 安全沙箱, 安全防御评估, 密码学, 手动系统调用, 插件系统, 数字取证, 无后门, 漏洞靶场, 目录枚举, 移动安全, 竞态条件, 网络安全, 网络安全实验, 自动化脚本, 蓝队分析, 请求拦截, 逆向工具, 逆向工程, 防御检测, 隐私保护