一键导入
escalate-linux-privilege
在 Linux 目标上系统性地检测权限提升路径,包括 SUID/SGID 文件、sudo 配置、可写的 cron 脚本、内核版本漏洞、NFS 错误配置、PATH 劫持等。当任务涉及 Linux 提权、SUID、sudo 滥用、内核漏洞时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
在 Linux 目标上系统性地检测权限提升路径,包括 SUID/SGID 文件、sudo 配置、可写的 cron 脚本、内核版本漏洞、NFS 错误配置、PATH 劫持等。当任务涉及 Linux 提权、SUID、sudo 滥用、内核漏洞时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Shell 混淆与免杀——教 AI 理解 WebShell/内存马工作原理,在生成 payload 时自主应用字符串加密、类加载规避、反射规避、控制流混淆、环境探测等混淆策略
当用户希望在平台侧开发、测试、创建或更新 Disguise 时使用。该 skill 用于生成符合平台约束的 encodeBody、decodeBody、headersJson、description 和规范名称,并优先调用 testDisguise 验证 encode/decode 是否可互逆,再创建或更新 Disguise。
当用户希望在平台侧编写、生成、完善、检查、保存、更新或删除指纹规则时使用。该 skill 用于生成符合 FingerprintComponent 约束的 HTTP/TCP 指纹 rule.requests 与 rule.script,并要求通过平台 FingerprintTools 查询已有指纹、读取详情、保存和删除,不直接读写 VFS 指纹文件。
当用户希望基于命中的指纹获取漏洞利用建议时使用。该 skill 读取一组 fingerprintId 对应的 info.vulnerabilities 元数据,按风险等级排序输出可利用方向、对应 CVE、可调用的 exploit skill 与人工跟进项,不直接执行任何利用动作。
在目标主机的环境变量、进程启动参数、配置文件和常见凭据存放路径中猎取账号密码、Token、密钥等敏感信息。覆盖 JDBC 数据库、Redis、Nacos、Shiro Key、SSH、云凭据等所有场景。当任务涉及凭据搜集、密钥提取、数据库密码、Redis 密码、Nacos 配置、Shiro Key、API Token、云凭据或服务账号时使用。
利用已收集的 SSH 私钥或密码凭据,尝试横向移动到内网其他主机。当发现 SSH 私钥、SSH 密码或内网存活主机开放 22 端口时使用。
| name | escalate-linux-privilege |
| description | 在 Linux 目标上系统性地检测权限提升路径,包括 SUID/SGID 文件、sudo 配置、可写的 cron 脚本、内核版本漏洞、NFS 错误配置、PATH 劫持等。当任务涉及 Linux 提权、SUID、sudo 滥用、内核漏洞时使用。 |
| enabled | true |
| tags | ["privilege-escalation","linux"] |
当目标是 Linux 主机且当前权限为普通用户(非 root)时,使用这个 skill 系统性地检测可用的提权路径。
原则:只检测,不利用。 所有步骤为信息收集,不执行实际提权操作,由用户决定是否利用。
| 原则 | 说明 |
|---|---|
| 只读操作 | 不修改系统文件、不安装内核模块、不执行实际提权 |
| 低噪声 | find / 级搜索加 timeout,避免触发 HIDS 文件遍历告警 |
| 避免触发审计 | 不读取 /etc/shadow(除非已确认有权限),不执行 sudo 带密码 |
| 分阶段收敛 | 先快速检测高价值向量(SUID/sudo),再扩展到内核和服务 |
| 并发执行 | 独立检测项并发执行,减少总耗时 |
WebShell 环境注意:
sudo -l 可能需要密码find / 在容器 overlay fs 上性能极差,必须限定目录或加 timeoutlsb_release、showmount)可能不存在,需回退sudo 无法输入密码,只能检测 NOPASSWD 规则检测并报告以下提权向量:
在任何工具调用前,先输出:
如果已有侦察摘要,先读取 hostProfile(内核版本)、privilegeProfile(当前用户)、containerProfile(容器状态),跳过已有信息。如果当前用户已是 root,此 skill 无需执行。
同时执行:
getCurrentUserInfo 或 id && whoami && groupsuname -r && cat /etc/os-release 2>/dev/nullcat /etc/passwd | grep -v "nologin\|false" | grep "sh$"同时执行以下检测:
1. SUID/SGID 文件:
timeout 15 find / -perm -4000 -type f 2>/dev/null
timeout 15 find / -perm -2000 -type f 2>/dev/null
对比 GTFOBins 可利用清单,重点关注:
nmap, vim, vi, nano, find, awk, python, python3, perl, ruby, php, bash,
sh, more, less, man, cp, mv, tar, zip, unzip, curl, wget, nc, netcat,
openssl, base64, dd, xxd, tee, env, strace, ltrace, gdb, git, svn, ftp,
sftp, ssh, scp, rsync, screen, tmux, docker, lxc, kubectl, ionice, nice,
taskset, time, timeout, journalctl, systemctl, service, mount, umount,
chsh, chown, chmod
2. sudo 配置:
sudo -l 2>/dev/null
cat /etc/sudoers 2>/dev/null
ls -la /etc/sudoers.d/ 2>/dev/null
重点关注:
NOPASSWD 规则(WebShell 环境下唯一可利用的 sudo 配置)*)滥用env_keep 中保留 LD_PRELOAD3. 可写的 cron 任务:
cat /etc/crontab 2>/dev/null
ls -la /etc/cron.d/ /etc/cron.daily/ /var/spool/cron/ 2>/dev/null
crontab -l 2>/dev/null
# 查找 root cron 引用的可写脚本
grep -r "^[^#]" /etc/cron* 2>/dev/null | grep -v "^Binary"
4. PATH 劫持:
echo $PATH | tr ':' '\n' | while read dir; do test -w "$dir" && echo "WRITABLE: $dir"; done
5. 敏感文件权限:
ls -la /etc/passwd /etc/shadow /etc/sudoers 2>/dev/null
find /etc -writable -type f 2>/dev/null | head -20
根据内核版本对照以下高危 CVE:
| CVE 编号 | 名称 | 受影响版本 | 修复基线 |
|---|---|---|---|
| CVE-2016-5195 | Dirty COW | 2.6.22 ~ 4.8.3 | 4.8.3 / 4.7.9 / 4.4.26 |
| CVE-2022-0847 | Dirty Pipe | 5.8 ~ 5.16.11 | 5.16.11 / 5.15.25 / 5.10.102 |
| CVE-2024-1086 | nf_tables UAF | 3.15 ~ 6.7.2 | 6.1.76 / 6.6.15 / 6.7.3 |
| CVE-2021-4034 | PwnKit (pkexec) | 所有 polkit 版本 | 发行版修复包 |
| CVE-2021-3156 | Baron Samedit (sudo) | sudo 1.8.2 ~ 1.9.5p1 | sudo 1.9.5p2+ |
| CVE-2023-4911 | Looney Tunables (glibc) | glibc 2.34+ | 发行版修复包 |
| CVE-2023-0386 | OverlayFS EoP | 5.11 ~ 6.1.8 | 5.15.91 / 6.1.9 |
| CVE-2021-3493 | Ubuntu OverlayFS | Ubuntu 特定内核 | Ubuntu 修复包 |
| CVE-2022-0185 | fs_context | 5.1 ~ 5.16 | 发行版修复内核 |
| CVE-2019-5736 | runc 容器逃逸 | runc ≤ 1.0-rc6 | Docker 18.09.2+ |
补充检测组件版本:
# pkexec 版本(PwnKit)
pkexec --version 2>/dev/null
# sudo 版本(Baron Samedit)
sudo --version 2>/dev/null | head -1
# glibc 版本(Looney Tunables)
ldd --version 2>/dev/null | head -1
注意:发行版常通过 backport 修复,排查时应同时核对上游版本和发行版安全公告中的包版本。
1. 特权服务:
ps -eo pid,user,comm --no-header | grep "^.*root" | grep -v "\[" | head -30
2. 环境变量注入:
sudo -l 2>/dev/null | grep -iE "env_keep|ld_preload|ld_library"
3. Docker / 容器逃逸:
# Docker socket 可写
ls -la /var/run/docker.sock 2>/dev/null
# 特权容器检测
cat /proc/self/status 2>/dev/null | grep CapEff
# CapEff = 0000003fffffffff 表示特权容器
test -f /.dockerenv && echo "IN_DOCKER"
cat /proc/1/cgroup 2>/dev/null | grep -i docker | head -3
4. NFS 错误配置:
cat /etc/exports 2>/dev/null | grep -v "^#"
showmount -e localhost 2>/dev/null
关注 no_root_squash 选项。
| 优先级 | 工具 | 用途 |
|---|---|---|
| 1 | CommandTools | 所有检测命令执行 |
| 2 | FileTools | 读取配置文件(sudoers、crontab、exports) |
命令执行模式选择:
| 命令类型 | 模式 |
|---|---|
| 快速命令(id、uname) | exec |
| 可能耗时(find /) | exec 或 exec + queryTask |
| 多个独立命令 | 并发 exec |
| 场景 | 回退策略 |
|---|---|
find / 超时 | 限定 /usr/bin、/usr/sbin、/usr/local/bin 搜索 SUID |
sudo -l 需要密码 | 跳过,标注"需密码,WebShell 环境不可用" |
lsb_release 不存在 | 用 cat /etc/os-release |
showmount 不存在 | 只检查 /etc/exports 文件 |
容器内 /proc 受限 | 从环境变量和挂载点推断 |
pkexec --version 不存在 | 用 dpkg -l policykit-1 或 rpm -q polkit |
| 权限不足读取 sudoers | 标注后继续其他检测 |
## Linux 提权路径检测摘要
**当前用户**:{username}(uid={uid})
**内核版本**:{kernel}
**发现向量数**:{n}(high: x,medium: y,low: z)
---
## 提权向量(按优先级排序)
| # | 类型 | 目标 | 可利用性 | 前提条件 |
|---|------|------|---------|---------|
## 向量详情
### [HIGH] {vector_name}
- **类型**:{suid_binary / sudo / cron / kernel_cve / ...}
- **目标**:{具体文件/配置/CVE}
- **可利用性**:{high / medium / low}
- **利用前提**:{条件说明}
- **参考**:{GTFOBins / CVE 编号}
## 内核 CVE 评估
| CVE | 名称 | 匹配 | 备注 |
|-----|------|------|------|
## 已检测项
{列出所有已检测的类别和结果}
## 未检查项
{权限不足或工具缺失导致未检测的项}
## 下一步建议
2~3 条具体建议
| 发现 | 建议 |
|---|---|
| SUID 可利用 | 用户可通过 GTFOBins 技术提权 |
| 内核 CVE 匹配 | 评估 exploit 可用性和稳定性 |
| Docker socket 可写 | 通过 Docker 挂载宿主机文件系统逃逸 |
| 提权成功后 | 使用 persistence-linux skill 建立持久化 |
| 发现凭据线索 | 使用 hunt-credentials skill 深入收集 |
完成后必须:
manage_recon_summary(action="append") — 提权向量检测结果摘要manage_recon_summary(action="append") — 机器可读字段结构化 patch 示例:
{
"privilegeEscalation": {
"linux": {
"currentUser": "www-data",
"currentLevel": "user",
"vectors": [
{
"type": "suid_binary",
"target": "/usr/bin/find",
"exploitability": "high",
"technique": "find . -exec /bin/sh -p \\;",
"reference": "GTFOBins"
},
{
"type": "kernel_cve",
"target": "CVE-2021-4034",
"exploitability": "high",
"kernelVersion": "5.4.0-42-generic",
"note": "pkexec SUID + polkit 版本 < 0.120"
}
],
"checkedCategories": ["suid", "sudo", "cron", "kernel", "path_hijack", "nfs", "container", "services", "env_inject"]
}
},
"openQuestions": ["persistence-linux"]
}
| 场景 | 行为 |
|---|---|
| 当前用户已是 root | 告知用户已有最高权限,此 skill 不适用 |
| 所有检测命令 | 只读操作,不写入任何文件 |
find / 耗时 | 使用异步模式,等待时先执行其他检测 |
| 发现 docker.sock 可写 | 单独标注"高危:Docker Socket 逃逸" |
| 内核版本匹配 CVE | 列出 CVE 编号和概要,不提供 exploit 代码 |
| 发现 SUID 可利用 | 引用 GTFOBins 技术,不直接执行 |
| WebShell 环境 sudo 需密码 | 跳过,只检测 NOPASSWD 规则 |
| 容器环境 | 额外检测特权容器和 socket 挂载 |
| 发现可利用向量 | 立即写入侦察摘要 |
mediumread_onlyCommandTools, SuidCapabilityToolsFileTools, UserAccountTools, ProcessTools, ServiceManagerToolsprivilegeEscalation.linux, openQuestionspersistence-linux, hunt-credentials, recon-internal-network, detect-container-escape