strikoder/gtfobinSUID
GitHub: strikoder/gtfobinSUID
一款Python脚本,用于自动化检查SUID/SGID二进制文件是否存在于GTFOBins数据库中,以识别潜在的提权漏洞。
Stars: 30 | Forks: 2
# gtfobinSUID V1.3
**由 [strikoder](https://www.youtube.com/@strikoder) 开发**
`gtfobinSUID` 是一款轻量级的 Python 工具,用于自动化 SUID/SGID 二进制文件枚举。它会将发现的二进制文件与 [GTFOBins](https://gtfobins.github.io) 数据库进行比对,并支持在线和离线两种模式。
在离线模式下,它使用一个本地数据库文件 (db.txt),该文件可以通过抓取 GTFOBins 的最新条目进行自动更新。
## 🎥 演示

## 🔹 功能特性
- 支持 Linux、macOS 和 Windows
- 能处理带版本号的二进制文件名(如 python3、perl5.42 等)
- 可按需打印用于在 Linux 系统上枚举 SUID/GUID 的命令
- 极简设计,除 `requests` 外无其他依赖(*在 Kali Linux 上通常已预装*)
- 当某些二进制文件(如 pkexec 和 sudo)启用了 SUID 时,会显示可能存在漏洞的提示
- 检查二进制文件在 GTFOBins 上是否存在 **SUID** 或 **Limited SUID** 条目,并在处理过程中打印 `[FOUND]`、`[FOUND - Limited SUID]` 或 `[NOT FOUND]`
## 标志位
- **--online(默认)**:直接从 GTFOBins 获取实时数据
- **--update-db**:自动拉取所有 GTFOBins 的 SUID 和 Limited SUID 条目
- **--offline(无网络时自动切换)**:在无网络环境下使用本地 `db.txt`
## 安装说明
选择您偏好的安装方法:
### 方法一:使用 pipx
使用 pipx 在独立环境中安装:
```
pipx install gtfobinsuid
```
### 方法二:使用 pip
全局或在虚拟环境中安装:
```
pip3 install gtfobinsuid
```
### 方法三:从源码安装
克隆仓库并安装依赖:
```
git clone https://github.com/strikoder/gtfobinSUID.git
cd gtfobinsuid
pip install requests
```
### 方法四:独立脚本
下载并直接运行,无需安装:
**使用 wget:**
```
wget -q -O gtfobinsuid.py "https://raw.githubusercontent.com/strikoder/gtfobinSUID/main/gtfobinsuid.py"
chmod +x gtfobinsuid.py
./gtfobinsuid.py
```
**使用 curl:**
```
curl -sL -o gtfobinsuid.py "https://raw.githubusercontent.com/strikoder/gtfobinSUID/main/gtfobinsuid.py"
chmod +x gtfobinsuid.py
./gtfobinsuid.py
```
## 使用说明
### 1. 基本用法
直接粘贴您的 SUID/SGID 枚举输出:
```
python3 gtfobinsuid.py
```
然后粘贴类似如下的内容:
```
/usr/bin/find
/usr/bin/passwd
/usr/bin/sudo
/bin/mount
```
按下 **Ctrl+d** (Linux/macOS) 或 **Ctrl+z + Enter** (Windows) 结束输入。
您将立即看到输出:
```
[FOUND] find -> https://gtfobins.github.io/gtfobins/find/
[NOT FOUND] sudo
[!] HINT: 'sudo' with SUID might indicate CVE exploits or misconfigurations (check Baron Samedit & version vulnerabilities)
[NOT FOUND] mount
```
### 2. 强制在线或离线模式
- 仅强制使用在线模式:
`python3 gtfobinsuid.py --online`
- 强制使用离线模式(需要 `db.txt` 文件):
`python3 gtfobinsuid.py --offline`
### 3. 更新本地数据库
您可以从 GTFOBins 自动刷新 `db.txt`:
```
python3 gtfobinsuid.py --update-db
```
这将会:
- 直接从 GTFOBins 网站抓取所有 SUID 和 Limited SUID 二进制文件
- 保存到 `db.txt`
- 打印找到的条目数量
示例输出:
```
[*] Fetching GTFOBins lists...
[+] Database updated successfully: db.txt
195 SUID entries
64 Limited SUID entries
```
## 工作原理
1. 从您粘贴的枚举结果中提取二进制文件的基本名称。
例如:`/usr/bin/sudo` → `sudo`
2. 检查每个二进制文件:
- 如果处于在线模式:查询该二进制文件在 GTFOBins 的页面。
- 如果处于离线模式:在 `db.txt` 中查找该名称。
3. 为每个二进制文件立即打印结果。
## 🧑💻 作者
**Strikoder**
渗透测试工程师 & 前 AI 工程师标签:GTFOBins, GTFOBins集成, SEO词:SUID检查, SUID/SGID枚举, 二进制利用, 功能关键词:枚举, 协议分析, 反取证, 在线模式, 字符串匹配, 安全, 安全评估, 技术栈:Python, 数据库更新, 权限提升, 权限提升工具, 枚举工具, 漏洞检查, 离线模式, 系统信息发现, 脚本工具, 请求库, 超时处理, 逆向工具