SNB220/SnEnum
GitHub: SNB220/SnEnum
SnEnum 是一款综合性的 Linux 安全枚举与提权发现脚本,用于在渗透测试中自动化收集系统信息并识别潜在的权限提升路径和敏感凭证。
Stars: 0 | Forks: 0
# SnEnum - 高级 Linux 枚举与提权工具
## 📋 概述
**SnEnum v1.0.0** 是一个全面的 Linux 枚举脚本,专为安全评估、渗透测试和权限提升发现而设计。SnEnum 采用现代安全功能从零构建,可自动发现 Linux 系统上的敏感信息、配置错误和潜在攻击向量。
## 🎯 核心功能
### 基础枚举功能
- **系统信息** - Kernel 版本、OS 详情、架构、主机名
- **用户枚举** - 当前用户、组、sudo 权限、用户账户
- **网络配置** - 接口、路由、DNS、活动连接
- **服务发现** - 运行中的进程、监听端口、已安装的软件
- **文件系统分析** - SUID/SGID 文件、可写目录、敏感文件
- **Cron 作业与计划任务** - 系统和用户 crontabs、systemd 定时器
### 🔥 高级安全功能
#### 1. **浏览器数据提取**
从已安装的 Web 浏览器中提取敏感数据:
- **支持的浏览器:** Chrome, Firefox, Edge, Opera, Brave
- **数据类型:** Cookies、登录数据、历史记录、书签
- **加密密钥:** 主密钥和加密凭证
- **存储位置:** 用户配置文件和全系统安装
#### 2. **密码搜寻器**
基于模式的深度凭证发现:
- 数据库凭证 (MySQL, PostgreSQL, MongoDB 等)
- API 密钥和 token (AWS, Azure, Google Cloud, GitHub)
- 应用程序密码 (WordPress, Drupal, Laravel)
- 云服务提供商凭证
- FTP/SFTP 凭证
- 邮件服务器密码
- 私钥和证书
#### 3. **数据库连接字符串查找器**
识别 11 种以上数据库类型的凭证:
- MySQL, PostgreSQL, MongoDB, Redis
- Microsoft SQL Server, Oracle, SQLite
- Elasticsearch, CouchDB, Cassandra
- JDBC 连接字符串
#### 4. **通讯平台 Token 查找器**
发现以下平台的身份验证 token:
- **Slack:** Bot token、用户 token、webhook、应用 token
- **Discord:** Bot token、webhook
- **Telegram:** Bot token
- **Microsoft Teams:** Webhook
- **Mattermost:** Token
#### 5. **HTML 报告生成**
美观、交互式的 Web 报告:
- 用于有序查看的选项卡式界面
- 跨所有发现结果的搜索功能
- 颜色编码的严重性级别
- 进度统计和指标
- 可导出和共享的格式
- **用法:** `./snenum.sh -H`
#### 6. **建议引擎**
智能漏洞利用指导:
- SUID/SGID 二进制文件利用技术
- Sudo 配置错误滥用
- Docker/LXD 容器逃逸方法
- Kernel 漏洞利用建议
- 可写服务/定时器利用
- 数据库提权
- NFS 共享挂载攻击
- Path 劫持机会
- Cron 作业篡改
- 弱文件权限利用
#### 7. **隐蔽模式**
在枚举过程中最大程度减少被检测到的可能:
- 基于 RAM 的存储(使用 /dev/shm)
- 低 I/O 优先级操作
- 退出时自动清理
- 最小化的磁盘痕迹
- **用法:** `./snenum.sh -S`
#### 8. **进度条**
实时扫描进度跟踪:
- 14 步枚举过程
- 动画进度指示器
- 完成百分比显示
- 逐步状态更新
- **用法:** `./snenum.sh -p`
#### 9. **静默模式**
仅显示关键发现结果的聚焦输出:
- 用于标记重要发现的高价值 (HIGH-VALUE) 标识
- 抑制信息性输出
- 用于快速评估的发现结果计数器
- 非常适合快速扫描
- **用法:** `./snenum.sh -q`
#### 10. **可写服务文件检测**
识别 systemd 提权向量:
- 可写的 systemd 服务文件
- 可写的服务单元目录
- 弱权限检测(全局/组可写)
- 可写的定时器文件和 socket 文件
- Drop-in 目录漏洞
- 正在运行的服务配置分析
- Systemd 配置文件检查
#### 11. **Polkit 漏洞检查**
全面的 Polkit/pkexec 安全评估:
- pkexec SUID 检测
- CVE-2021-4034 (PwnKit) 漏洞测试
- CVE-2021-3560 漏洞检查
- 可写的 polkit 配置文件
- 可写的 polkit 规则目录
- 无密码身份验证检测
- Polkit 版本分析
- 辅助二进制文件权限检查
#### 12. **Systemd 定时器滥用检测**
增强的基于定时器的提权检测:
- 可写定时器文件检测
- 活动/已启用的定时器枚举
- 与定时器关联的服务分析
- 定时器计划配置展示
- 弱权限检测
- Drop-in 目录检查
- 非 root 用户拥有的定时器识别
#### 13. **内部端口扫描器**
快速的本地主机端口扫描:
- 扫描 27 个常见服务端口
- 服务识别 (SSH, HTTP, MySQL, PostgreSQL, Redis, MongoDB 等)
- 基于连接的快速检测
- 无需外部工具
#### 14. **活动连接分析**
网络连接监控:
- 带有进程名称的已建立连接
- 远程 IP 枚举
- 连接统计
- 进程到连接的映射
#### 15. **防火墙规则展示**
全面的防火墙枚举:
- iptables/ip6tables 规则(包括 NAT)
- nftables 规则集
- UFW 状态和配置
- firewalld 区域和规则
- 不活跃/缺失的防火墙检测
- 宽松规则识别
#### 16. **网络共享枚举**
增强的 NFS/SMB/CIFS 发现:
- 带有不安全选项检测的 NFS 导出
- 已挂载的 NFS/SMB 共享
- Samba 配置分析
- 访客访问检测
- SMB 凭证文件发现
- AutoFS 配置
- fstab 中的凭证检测
## 📖 用法
### 基本用法
```
./snenum.sh
```
### 命令行选项
| 标志 | 描述 |
|------|-------------|
| `-k` | 关键字搜索模式 - 在文件中搜索特定字符串 |
| `-e` | 导出模式 - 将发现结果保存到有序的目录结构中 |
| `-s` | 彻底扫描 - 包含耗时的额外检查 |
| `-t` | 包含彻底测试(文件系统枚举) |
| `-r [report]` | 在特定目录生成报告 |
| `-H` | 生成交互式 HTML 报告 |
| `-S` | 隐蔽模式 - 使用 RAM 存储和低 I/O 优先级 |
| `-p` | 在枚举期间显示进度条 |
| `-q` | 静默模式 - 仅显示高价值的发现 |
| `-h` | 显示帮助信息 |
### 用法示例
#### 标准枚举
```
./snenum.sh
```
#### 生成 HTML 报告
```
./snenum.sh -H
# 在浏览器中打开 snenum-report.html
```
#### 导出所有发现结果
```
./snenum.sh -e -r /tmp/audit
# 将 findings 保存到 /tmp/audit/snenum-export-YYYY-MM-DD/
```
#### 带有静默输出的隐蔽模式
```
./snenum.sh -S -q
# 最小检测,仅显示 HIGH-VALUE findings
```
#### 带有进度条的彻底扫描
```
./snenum.sh -s -t -p
# 带可视化进度的完整 enumeration
```
#### 关键字搜索
```
./snenum.sh -k password
# 在配置文件中搜索 "password"
```
#### 完整评估
```
./snenum.sh -s -t -e -H -p -r /tmp/results
# 包含 HTML 报告、export 和进度跟踪的完整扫描
```
## 🎯 高价值发现
SnEnum 会自动识别并标记关键的安全问题:
### 提权向量
- ✅ SUID/SGID 二进制文件(尤其是包含在 GTFOBins 中的利用方式)
- ✅ Sudo 配置错误(NOPASSWD 条目)
- ✅ 可写的 systemd 服务/定时器文件
- ✅ Polkit 漏洞 (CVE-2021-4034, CVE-2021-3560)
- ✅ Docker socket 访问权限
- ✅ 可写的 cron 作业
- ✅ 弱 PATH 配置
### 凭证发现
- ✅ 浏览器保存的密码和 cookies
- ✅ 带有密码的数据库连接字符串
- ✅ API 密钥和 token (AWS, Azure, GitHub 等)
- ✅ Slack/Discord/Teams 身份验证 token
- ✅ 具有弱权限的 SSH 私钥
- ✅ SMB/NFS 凭证文件
- ✅ 应用程序配置中的密码
### 网络漏洞利用
- ✅ 不活跃/缺失的防火墙
- ✅ 不安全的 NFS 导出 (no_root_squash)
- ✅ 已启用的 Samba 访客访问
- ✅ 开放的内部服务 (数据库、Redis 等)
- ✅ fstab 中的 SMB 凭证
### 系统配置错误
- ✅ 全局可写文件和目录
- ✅ 敏感文件的弱权限
- ✅ 以 root 权限运行的服务
- ✅ 过时的 kernel 版本
- ✅ 可写的 systemd 配置
## 📂 导出结构
使用 `-e` 标志时,SnEnum 会创建有序的目录:
```
snenum-export-YYYY-MM-DD/
├── browsers/ # Browser data extracts
├── writable-services/ # Writable systemd files
├── polkit-configs/ # Polkit configuration files
├── systemd-timers/ # Timer unit files
├── network-shares/ # NFS/SMB configurations
├── ps-export/ # Process binaries
└── [additional files] # Other exported data
```
## 🔍 SnEnum 检查内容
### 系统信息
- 操作系统和 Kernel 版本
- 系统架构和主机名
- 环境变量
- 已安装的软件包 (dpkg, rpm, snap)
- 可用的编译器和开发工具
### 用户与组枚举
- 当前用户和组成员身份
- Sudo 权限和 sudoers 文件
- 所有用户账户和主目录
- 密码策略和 shadow 文件访问权限
- 最近登录的用户
- SSH 密钥发现
### 网络分析
- 网络接口和 IP 地址
- 路由表和 DNS 配置
- ARP 缓存
- 监听的 TCP/UDP 端口
- 活动的已建立连接
- 内部端口扫描(27 个常见端口)
- 防火墙规则 (iptables, nftables, UFW, firewalld)
### 服务与进程发现
- 带有完整命令行的运行中进程
- 进程二进制文件权限
- 来自 inetd/xinetd 的服务
- Systemd 单元和定时器
- Init 脚本
- 软件版本 (MySQL, PostgreSQL, Apache, nginx 等)
### 文件系统安全
- SUID/SGID 文件
- 全局可写文件和目录
- 可写的 /etc 文件
- 主目录权限
- 敏感配置文件
- 日志文件访问权限
- 最近修改的文件
- 可写的 systemd 服务文件
- 可写的定时器文件
### 计划任务
- 系统和用户 crontabs
- Cron 作业权限
- Systemd 定时器单元
- Anacron 作业
- At 作业
### 凭证搜寻
- 浏览器 cookies 和密码(5 种浏览器)
- 数据库连接字符串(11 种以上数据库类型)
- API 密钥和云凭证
- 通讯平台 token
- SSH 私钥
- 配置文件密码
- 环境变量凭证
### 容器与虚拟化
- Docker socket 和组成员身份
- LXD/LXC 访问权限
- 容器检测
- 虚拟机 (VM) 检测
### 提权检查
- Sudo 版本和配置
- Polkit/pkexec 漏洞
- Kernel 漏洞利用建议
- 可写的服务文件
- Docker 逃逸机会
- NFS no_root_squash
- Path 劫持可能性
## ⚠️ 重要说明
### 合法与合规使用
- **需要授权:** 仅在你拥有或获得明确测试许可的系统上使用 SnEnum
- **安全评估:** 非常适合渗透测试、安全审计和 CTF 竞赛
- **教育目的:** 专为学习 Linux 安全和枚举技术而设计
- **合规性:** 确保使用符合当地法律和组织政策
### 操作注意事项
- **系统影响:** 彻底模式 (`-s -t`) 可能会占用大量资源
- **检测:** 标准模式可能会被安全工具记录;使用 `-S` 进行隐蔽扫描
- **权限:** 某些检查需要提升的权限才能获得完整结果
- **导出大小:** `-e` 标志可能会创建包含文件副本的大型导出目录
- **运行时间:** 完整枚举可能需要 5-15 分钟,具体取决于系统大小
### 最佳实践
1. **从简单开始:** 首先运行基本扫描:`./snenum.sh`
2. **检查输出:** 在静默模式下检查 HIGH-VALUE 标记:`./snenum.sh -q`
3. **生成报告:** 使用 HTML报告进行更好的分析:`./snenum.sh -H`
4. **隐蔽操作:** 使用 RAM 存储以实现最小痕迹:`./snenum.sh -S`
5. **导出发现结果:** 保存结果以进行离线分析:`./snenum.sh -e`
6. **遵循建议:** 使用建议引擎获取漏洞利用指导
### 技术要求
- **Shell:** Bash(已在 4.0+ 版本上测试)
- **权限:** 支持任何用户;使用 root/sudo 可发现更多内容
- **依赖项:** 使用标准 Linux 实用程序(大部分已预装)
- 核心:`find`, `grep`, `ps`, `netstat`/`ss`, `systemctl`
- 可选:`iptables`, `nft`, `showmount`, `smbclient`
- **存储:**
- 标准模式:最小化(仅输出)
- 导出模式:视系统大小需 10MB-500MB
- 隐蔽模式:使用 /dev/shm (RAM)
## 🚀 高级技巧
### 寻找快速突破点
```
# 仅专注于 privilege escalation vectors
./snenum.sh -q | grep "HIGH-VALUE"
```
### 综合评估
```
# 包含所有功能的完整扫描
./snenum.sh -s -t -e -H -p -r /tmp/audit
```
### 隐蔽侦察
```
# 最小检测,基于 RAM 的存储
./snenum.sh -S -q -r /dev/shm/tmp
```
### 搜索特定凭证
```
# 查找数据库 password
./snenum.sh -k "password\|passwd\|pwd" | grep -i "mysql\|postgres"
```
### 分析 HTML 报告
```
# 生成并在浏览器中打开
./snenum.sh -H
firefox snenum-report.html
```
## 📊 输出解读
### 颜色编码
- **🔴 红色 (`[-]`)** - 信息标题和扫描状态
- **🟡 黄色 (`[+]`)** - 发现结果和已找到的项目
- **🟢 绿色** - 正常/预期情况
- **🔵 蓝色 (`[!]`)** - 建议和漏洞利用提示
- **🟡 HIGH-VALUE** - 关键安全发现
### 优先级
1. **HIGH-VALUE** - 直接的提权机会
2. **Yellow [+]** - 需要调查的有趣发现
3. **Red [-]** - 标准枚举结果
4. **Recommendations** - 建议的利用技术
## 🛡️ 防御建议
如果 SnEnum 在你的系统上发现了漏洞,请考虑:
1. **SUID/SGID 文件:** 审查并移除不必要的 SUID 位
2. **Sudo 权限:** 限制 NOPASSWD 条目,使用 sudoers 策略
3. **Systemd 服务:** 使用适当的权限保护服务文件 (644 root:root)
4. **Polkit:** 更新到已修补的版本,审查 polkit 规则
5. **凭证:** 移除硬编码的密码,使用密钥管理工具
6. **防火墙:** 启用并正确配置防火墙规则
7. **NFS/SMB:** 移除 no_root_squash,禁用来宾访问,使用身份验证
8. **Docker:** 限制 docker 组成员身份,使用 user namespaces
9. **文件权限:** 修复全局可写文件,保护敏感配置
10. **Cron 作业:** 保护 cron 文件,验证 cron 作业脚本
## 📝 版本历史
### v1.0.0(当前版本)
- 从 LinEnum 完全更名为 SnEnum
- 新增 16 项高级安全功能
- 带有交互式 UI 的 HTML 报告生成
- 基于 RAM 存储的隐蔽模式
- 进度条和静默模式
- 全面的提权检查
- 浏览器数据提取(5 种浏览器)
- 带有模式匹配的密码搜寻器
- 数据库连接字符串查找器(11 种以上数据库)
- 通讯平台 token 查找器
- 带有漏洞利用提示的建议引擎
- Polkit 漏洞检查 (CVE-2021-4034, CVE-2021-3560)
- 增强的 systemd 定时器滥用检测
- 内部端口扫描器(27 个常见端口)
- 带有进程映射的活动连接分析
- 防火墙规则展示 (iptables, nftables, UFW, firewalld)
- 网络共享枚举 (NFS/SMB/CIFS)
## 🤝 贡献
欢迎贡献!可改进的领域包括:
- 更多凭证模式
- 更多提权检查
- 容器/云平台枚举
- 更多导出格式 (JSON, XML)
- 插件/模块系统
## 📄 许可证
SnEnum 仅出于教育和授权的安全测试目的提供。
## ⚡ 快速参考卡
```
# 基础命令
./snenum.sh # Standard enumeration
./snenum.sh -q # Quick high-value findings only
./snenum.sh -H # Generate HTML report
./snenum.sh -S # Stealth mode (RAM-based)
./snenum.sh -p # Show progress bar
./snenum.sh -e # Export findings to directory
# 组合用法
./snenum.sh -s -t -H -p # Thorough scan with HTML & progress
./snenum.sh -S -q -e # Stealth mode with quiet output & export
./snenum.sh -k password -e # Keyword search with export
./snenum.sh -s -t -e -H -p -r /tmp/results # Full assessment
# Flags 摘要
-k [keyword] Search for keyword in files
-e Export findings to directory
-s Thorough scan (slower but comprehensive)
-t Include thorough tests
-r [path] Report directory location
-H HTML report generation
-S Stealth mode (RAM storage, low I/O)
-p Progress bar display
-q Quiet mode (HIGH-VALUE only)
-h Help message
```
## 🎓 学习资源
了解有关 SnEnum 所用技术的更多信息:
- **GTFOBins:** https://gtfobins.github.io/ - SUID/sudo 漏洞利用
- **PEASS-ng:** Linux 提权工具和技术
- **HackTricks:** https://book.hacktricks.xyz/ - 全面的渗透测试指南
- **PayloadsAllTheThings:** 权限提升备忘单
**SnEnum v1.0.0** - 高级 Linux 枚举与提权工具
标签:Cutter, HTTP工具, StruQ, Web报告查看器, 凭据提取, 协议分析, 多模态安全, 对称加密, 应用安全, 无线安全, 权限提升, 自动化审计