Ruby570bocadito/peekaboo
GitHub: Ruby570bocadito/peekaboo
peekaboo 是一个自动化Linux权限提升工具,通过扫描系统配置错误并利用GTFOBins数据库来获取root权限。
Stars: 0 | Forks: 0
Linux 权限提升自动利用工具
单一二进制文件。零依赖。自动提权。
## 🎯 什么是peekaboo?
**peekaboo** 是一个自动化的Linux权限提升工具,它扫描目标系统,识别配置错误,并**自动利用这些错误**来获取root权限。
它的工作流程分为 **3个阶段**:扫描 → 枚举 → 利用。无网络调用。无依赖。只需放置二进制文件并运行即可。
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ SCAN │───▶│ ENUMERATE │───▶│ EXPLOIT │
│ (read-only)│ │ GTFOBins DB │ │ Auto-root │
└─────────────┘ └─────────────┘ └─────────────┘
10+ vectors 60+ bins safe→danger
```
专为 **CTF竞赛**、**渗透测试任务** 和 **红队行动** 而构建。
## ⚡ 功能特性
| 攻击向量 | 检测能力 | 利用方式 |
|--------|-----------|--------------|
| **SUID二进制文件** | 扫描10+个目录的SUID位 | 为60+个二进制文件提供GTFOBins命令 |
| **Sudo配置错误** | 解析 `sudo -l` 输出 | NOPASSWD + GTFOBins 自动利用 |
| **可写Cron** | 检查cron目录及相关脚本 | 反向shell注入 |
| **Docker逃逸** | 检测docker组成员资格 | `docker run -v /:/mnt` 逃逸 |
| **Capabilities** | 读取 `/proc/self/status` | cap_setuid 利用 |
| **NFS no_root_squash** | 解析 `/etc/exports` | 挂载并以root身份获取文件 |
| **可写PATH** | 检查PATH目录 | 二进制文件植入检测 |
| **Systemd服务** | 扫描 `/etc/systemd/system` | 服务劫持 |
| **/etc/passwd** | 权限检查 | 追加root用户 |
| **/etc/shadow** | 权限检查 | 破解或覆盖哈希值 |
## 🚀 快速开始
### 安装
```
# 克隆
git clone https://github.com/Ruby570bocadito/peekaboo.git
cd peekaboo
# 构建(需要 Go 1.26+)
go build -o peekaboo .
# 或从发布页面下载预构建二进制文件
```
### 使用
```
# 仅扫描(安全,只读)
./peekaboo
# 自动利用发现的向量
./peekaboo --exploit
# 带风险限制的自动利用
./peekaboo --exploit --risk=medium
# 仅特定向量
./peekaboo --vector=suid,sudo
# 用于自动化的 JSON 输出
./peekaboo --json
# 安静模式(退出代码:0=成功,1=失败)
./peekaboo --quiet
```
## 🎬 演示
### 扫描阶段
```
╔══════════════════════════════════════════╗
║ peekaboo — Linux PrivEsc AutoPwn ║
║ ruby570bocadito (c) 2026 ║
╚══════════════════════════════════════════╝
UID: testuser PID: 1337 Host: target
[1/3] Scanning system...
[!] SUID → SUID binary: python3.10 (GTFOBins: true) (/usr/bin/python3.10)
[.] SUID → SUID binary: find (GTFOBins: true) (/usr/bin/find)
[!] SUDO → NOPASSWD sudo: /usr/bin/find → find (/usr/bin/find)
[!] CRON → Writable cron job — inject command (/etc/cron.d/backup)
[!] FILE → Writable /etc/passwd — inject root user (/etc/passwd)
[!] FILE → Readable /etc/shadow — crack root hash (/etc/shadow)
[!] NFS → NFS export with no_root_squash (/shared *(rw,no_root_squash))
[2/3] Enumerating vectors...
── Findings ──
[!] SUID → SUID binary: python3.10 (GTFOBins: true) (/usr/bin/python3.10)
[!] SUDO → NOPASSWD sudo: /usr/bin/find → find (/usr/bin/find)
[!] CRON → Writable cron job — inject command (/etc/cron.d/backup)
[!] FILE → Writable /etc/passwd — inject root user (/etc/passwd)
[3/3] Exploiting... (max risk: MEDIUM)
[try] SUID python3.10
[!] ROOT OBTAINED
Vector: SUID python3.10
[+] Root shell starting...
```
### 所有命令
```
./peekaboo # Enum only (no exploit)
./peekaboo --exploit # Auto-exploit safe vectors first
./peekaboo --exploit --risk=safe # Only SAFE risks
./peekaboo --exploit --risk=danger # Everything (including dangerous)
./peekaboo --vector=suid,sudo,cron # Specific vectors only
./peekaboo --exploit --one-shot # Stop after first success
./peekaboo --json # Machine-readable output
./peekaboo --quiet # Exit code only (0=root, 1=fail)
./peekaboo --rooteame ./rooteame.ko # Load rootkit on success
./peekaboo --stealth # Slow scan (evade IDS)
```
## 🏗️ 架构
### 引擎流程
```
┌─────────────────────────────────────────────────────────────┐
│ peekaboo │
├─────────────────────────────────────────────────────────────┤
│ main.go CLI flags + orchestration │
│ universe.go Types, risk levels, output formatting │
│ scanner.go FASE 1 — passive discovery (10+ checkers) │
│ enumerate.go FASE 2 — findings → exploit vectors │
│ exploit.go FASE 3 — execute vectors (safe→danger) │
│ gtfobins.go Offline GTFOBins database (~60 binaries) │
└─────────────────────────────────────────────────────────────┘
```
### 基于风险的执行顺序
```
SAFE ──▶ LOW ──▶ MEDIUM ──▶ HIGH ──▶ DANGER
│ │ │ │ │
│ │ │ │ └─ shadow overwrite
│ │ │ └─ passwd injection, cron inject
│ │ └─ cap_sys_ptrace
│ └─ find SUID, awk sudo
└─ python SUID spawn shell
```
### 文件结构
```
peekaboo/
├── main.go CLI entry point + orchestration
├── scanner.go 10 vulnerability scanners
├── enumerate.go Findings → exploit vectors
├── exploit.go Exploitation engine
├── gtfobins.go Embedded GTFOBins database
├── universe.go Types, constants, formatting
├── peekaboo_test.go Unit tests (9 tests)
│
├── docker/
│ ├── Dockerfile.vulnerable Target with 10 deliberate flaws
│ ├── Dockerfile.clean Secure baseline system
│ ├── Dockerfile.edgecases Edge case scenarios
│ ├── docker-compose.yml Test network
│ └── test_runner.sh Automated test runner
│
├── brain/ Development documentation
│ └── SESSION_*.md
│
└── README.md
```
## 🧪 Docker 测试
```
# 构建所有测试镜像
cd docker
docker compose build
# 启动测试网络(易受攻击 + 干净 + 边界情况)
docker compose up -d
# 在易受攻击的目标上运行 peekaboo
docker exec peekaboo-vulnerable peekaboo --exploit
# 在干净系统上运行(应发现最少的向量)
docker exec peekaboo-clean peekaboo
# 运行边界情况场景
docker exec peekaboo-edgecases peekaboo --vector=sudo
# 运行完整测试套件
./test_runner.sh
```
## 📊 风险等级
| 等级 | 示例 | 自动利用? | 文件系统更改? |
|-------|----------|---------------|---------------------|
| **安全** | python SUID → shell | ✅ 是 | 否 |
| **低** | find SUID, awk sudo | ✅ 是 | 轻微 |
| **中** | cap_sys_ptrace | ⚠️ 可选 | 可能触发警报 |
| **高** | passwd注入, cron注入, docker逃逸 | ⚠️ 可选 | 是 |
| **危险** | shadow覆盖, 内核漏洞利用 | ❌ 仅手动 | 是,可能导致崩溃 |
## 📦 GTFOBins 数据库
**60+个二进制文件** 附带利用命令,**嵌入在二进制文件中**。运行时无网络调用。适用于隔离环境。
点击查看所有支持的二进制文件
**Shell二进制文件 (SUID):** python, python2, python3, python3.8-3.13, perl, perl5, php, php5-8.2, ruby, ruby2-3, lua, lua5.3-5.4, node, nodejs, bash, dash, zsh, ksh, fish, sh
**Sudo二进制文件:** find, vim, vi, less, more, man, awk, gawk, nawk, sed, gdb, nmap, tcpdump, tar, zip, unzip, rsync, scp, socat, env, nice, timeout, stdbuf, watch, make, pip, pip3, npm, gem, git, ssh, docker, lxc, apache2, cpan, ed, ex, ftp, wall, systemctl, journalctl, mysql, psql, sqlite3
## 🗺️ 路线图
- [ ] 内核CVE检测模块 (Dirty Pipe, PwnKit 等)
- [ ] 从官方仓库自动更新GTFOBins
- [ ] SSH密钥检测和凭据扫描
- [ ] `--lhost`/`--lport` 参数用于反向shell载荷
- [ ] 带等级的结构化日志记录 (DEBUG, INFO, WARN, ERROR)
- [ ] CSV/HTML报告导出
- [ ] `--dry-run` 模式 (预测但不执行)
- [ ] 信号处理 (Ctrl+C 清理)
- [ ] Windows权限提升支持
- [ ] 与C2框架集成 (BTY)
## ⚠️ 免责声明
本工具仅设计用于**授权的安全测试**、**CTF竞赛**和**教育目的**。
- 仅可在你拥有或获得明确书面授权进行测试的系统上使用
- 滥用可能违反当地及国际法律
- 作者不对本工具造成的任何滥用或损害负责
由 Ruby570bocadito 用心构建 ❤️
标签:CTF工具, EVTX分析, Go语言, GTFOBins, root访问, Web报告查看器, 二进制分析, 云安全运维, 协议分析, 单文件, 子域名枚举, 数据展示, 日志审计, 权限提升, 漏洞搜索, 程序破解, 系统安全, 红队, 自动利用, 请求拦截, 错误配置利用, 零依赖