免费加入 | |
≥3年粉丝 | |
星球成员 |
现在只对常读和星标公众号才展示大图推送,建议大家把“Hack分享吧”设为星标,否则可能看不到了!
yrecon 深度剖析:把信息收集做到"提权导向"的实战工具
项目地址:https://github.com/moresuo/yrecon
定位:内网信息收集 + 提权 CVE 探针
语言:Bash / PowerShell
适用场景:授权安全研究 / 红队评估 — webshell / 低权限 shell 后的本地侦察阶段
一、为什么需要 yrecon?
在红队评估和渗透测试的实战中,拿到一个 webshell 或低权限 shell 只是第一步。真正的挑战在于:如何在最短时间内从低权限突破到 root / SYSTEM?
传统做法是手动跑一堆命令——uname -a、id、sudo -l、find / -perm -4000、whoami /priv……每次都要重复,容易遗漏关键信息,而且耗时。
yrecon 的设计哲学很明确:
提权路径决定收集什么。
它不是无脑堆命令的"信息收集脚本",而是围绕权限提升这一核心目标,把每类信息的收集都映射到具体的提权路径上。拿到结果就能直接判断"能不能打、怎么打"。

二、工具组成与设计哲学
2.1 双平台对称架构
linrecon.sh | curl | bash 内存执行 | |||
winrecon.ps1 | iex(iwr) 内存执行 |
两个工具功能逻辑对称,输出风格统一——复刻 YSCAN 的 GitHub Dark 调色板 + 图标体系。这意味着:
学习成本低:学会一个,另一个自然就会用 输出可比对:同一目标上 Linux/Windows 双跑,输出格式一致,方便横向对比 维护成本低:两个脚本同步迭代,CVE 覆盖清单保持一致
2.2 单文件哲学
yrecon 选择单文件设计而非模块化目录结构,这在实战中有明确优势:
内存执行: curl | bash或iex(iwr)一行命令完成部署,不落盘传输简单:一个 HTTP 请求就能拉到完整工具 无依赖:不依赖额外的配置文件或库(除了系统自带工具)
三、执行模式与实战场景
3.1 三种通用执行模式
| 本地执行 | |||
| 内存执行 | curl|bash / iex(iwr) | ||
| 落盘 + 重定向 |
3.2 webshell 场景:yrecon 的核心战场
webshell 命令执行有两个硬约束:
响应长度截断:nginx/apache 的 buffer 有限,长输出会被截断 执行超时:php 的 max_execution_time等限制会导致脚本被 kill
yrecon 的解法是落盘 + 重定向到文件 + 分段读:
Linux(www-data 权限):

Windows(IIS_IUSRS 权限):
分模块跑解决超时:software(Win)/ suid(Linux)扫描慢,单独跑;先跑 cve 快速看可打洞。
四、模块体系:14 个 Linux 模块 + 10 个 Windows 模块
4.1 linrecon.sh 模块详解
sysinfo | uname/etc/os-release / /proc/1/cgroup | ||
userpriv | idsudo -n -l / [ -w /etc/passwd ] | ||
suid | find / -perm -4000/-2000 | ||
caps | getcap -r //proc/*/status CapEff | cap_setuid 等高危位高亮 | |
cron | /etc/crontab/etc/cron.* | ||
services | psss -tulpn / /dev/tcp 探测 | ||
fs | [ -w ]find / /etc/exports | ||
credz | find id_rsagrep password | ||
network | iproute / /etc/resolv.conf | ||
container | /.dockerenv/proc/1/cgroup / CapEff | ||
cve | uname -r | ||
suggest |
新增增强项(v2.0):
sysinfo 扩展了 sysctl安全配置检测:ASLR 状态、ptrace_scope、BPF 限制、KASLR(kptr_restrict)、dmesg_restrict、user.max_user_namespaces、mmap_min_addr 等——每一项都直接影响 exploit 可用性sysinfo 新增内核启动参数( /proc/cmdline)检查,能发现启动参数中泄露的凭据或安全敏感项sysinfo 新增 LSM 状态检测(SELinux / AppArmor),判断 MAC 策略是否影响提权路径 sysinfo 新增 lsmod检查,标记与 exploit 相关的内核模块(如nf_tables、overlay、vsock)
4.2 winrecon.ps1 模块详解
sysinfo | Get-CimInstance Win32_OperatingSystem | ||
userpriv | whoami /all | ||
services | Get-CimInstance Win32_Service + 写测试 | ||
registry | Get-ItemProperty 各键 | ||
credz | cmdkey / | ||
software | Get-CimInstance Win32_Product 或注册表卸载键 | ||
av | SecurityCenter2 / | ||
network | ipconfig / | ||
cve | |||
suggest |
五、CVE 探针:从版本号到可利用性判断
5.1 版本解析与比较算法
Linux:uname -r 取内核版本(如 5.15.0-91-generic),grep -oE '^[0-9]+(\.[0-9]+)*' 提取纯版本部分 5.15.0。
版本比较使用 Bash 函数 ver_lt():
原理:sort -V 做版本排序(按点分段数值比较),最小者排第一。若 a 是最小且 a≠b,则 a < b。
Windows:Build 号是整数,直接数值比较($build -lt 14393);版本号用 [System.Version]。
5.2 范围匹配逻辑
每个 CVE 定义受影响版本区间 [min, max),组合 !ver_lt(min)(不低于下限)与 ver_lt(max)(低于上限)判断:
5.3 用户态 CVE 检测
不依赖内核版本,检测工具存在性与版本:
pkexec存在 → PwnKit(CVE-2021-4034,polkit 几乎全版本)sudo --version< 1.9.5p2 → Baron Samedit(CVE-2021-3156,参数转义堆溢出)
5.4 CVE 覆盖清单
Linux 内核 LPE
| CVE-2026-31431 | Copy Fail | |||
| CVE-2026-46331 | act_pedit | |||
| CVE-2026-31635 | DirtyDecrypt | |||
| CVE-2026-43284 | Dirty Frag (ESP) | |||
| CVE-2026-53359 | Januscape | /dev/kvm 0666 | ||
| CVE-2026-31429 | Slab Cross-Cache |
Linux 用户态 LPE
Linux 信息泄露(可间接提权)
/etc/shadow/SSH host key,离线破解 |
Windows 提权
SeImpersonate → Potato 系列(JuicyPotato / RoguePotato / PrintSpoofer / GodPotato) PrintNightmare(CVE-2021-1675)、HiveNightmare(CVE-2021-36934)、NoPAC、win32k 系列 AlwaysInstallElevated、未引用服务路径、可写服务、AutoLogon、WSUS
重点项 — Copy Fail(CVE-2026-31431):版本矩阵最完整、条件最通用(
CONFIG_CRYPTO_USER_API_AEAD几乎全发行版默认开启),脚本内置 AF_ALG 自检(python3 -c "import socket; socket.socket(38,5,0)")确认可利用性。
5.5 已知局限与诚实标注
yrecon 在 CVE 探针上有一个非常重要的设计原则:诚实标注局限性。
发行版回溯补丁误报:RHEL/Ubuntu 常把补丁回溯到老版本号(如 Ubuntu 5.15.0-91 已含 Dirty Pipe 修复,但版本号仍在受影响区间)。脚本标"可能存在",实战需 PoC 实测。 粗筛性质:Build 号只判大版本区间,不精确到具体 KB。Windows 探针用"最近补丁日期"辅助,但仍粗。 CVE 覆盖有限:脚本只内置高频通用 CVE,新 CVE 需手工补充。
这种诚实标注避免了"探针说有就一定有"的误判,提醒使用者验证而非盲信。
六、提权路径映射:从信息到行动
yrecon 最有价值的设计是将每类收集信息直接映射到提权路径。下面是完整的映射关系。
6.1 Linux 提权路径 → 收集项
| 内核漏洞 | uname -r | |
| SUID 滥用 | find / -perm -4000 | |
| sudo 配置缺陷 | sudo -n -l | sudo find 可 -exec),直接提权 |
| Capabilities | getcap -r / | cap_setuidcap_dac_override 绕文件权限;比 SUID 更细粒度,常被忽视 |
| 定时任务可写 | /etc/crontab | |
| 可写 /etc/passwd | [ -w /etc/passwd ] | user::0:0::/root:/bin/bash 直接造 root 账户 |
| PATH 劫持 | $PATH | |
| NFS no_root_squash | /etc/exports | |
| Docker 组成员 | id | docker run -v /:/mnt 挂载宿主根目录,直接 chroot 提权 |
| 凭证泄露 | .bash_historyid_rsa |
6.2 Windows 提权路径 → 收集项
| 补丁缺失 | Get-HotFixBuildNumber | |
| SeImpersonate | whoami /priv | Impersonate 提权 |
| SeDebug | whoami /priv | CreateRemoteThread 注入 winlogon.exe 提权 |
| 未引用服务路径 | Win32_Service.PathName | C:\Program Files\svc → C:\Program.exe),上游目录可写则劫持 |
| 可写服务目录 | ||
| AlwaysInstallElevated | msiexec /i evil.msi 即提权 | |
| AutoLogon 凭证 | Winlogon | DefaultPassword 明文存于注册表 |
| SAM 可读 | ReadAllBytes(SAM) | |
| cmdkey 缓存 | cmdkey /list | runas /savecred 以其他用户身份执行 |
| WSUS HTTP | WindowsUpdate | |
| Defender 排除路径 | Get-MpPreference |
七、输出体系:YSCAN 风格的可视化设计
7.1 配色方案
yrecon 复刻了 YSCAN 的 GitHub Dark 调色板,使用 ANSI TrueColor 精确还原:
#f778ba | \033[1;38;2;247;120;186m | ||
#3fb950 | \033[1;38;2;63;185;80m | ||
#f85149 | \033[1;38;2;248;81;73m | ||
#d2991d | \033[1;38;2;210;153;29m | ||
#58a6ff | \033[1;38;2;88;166;255m | ||
#a371f7 | \033[1;38;2;163;113;247m | ||
#8b949e | \033[38;2;139;148;158m |
7.2 图标语义体系
✦ | |||
-> | |||
● | |||
● | 高危提权向量 | 最高 | |
⚠ | |||
▸ | |||
✓ | |||
└─ |
7.3 输出示例
优先级规则:红 ● > 橙 ⚠ > 绿 ●。实战先打红项。
终端不支持 TrueColor 时降级为默认色,图标仍可辨识。
八、安全配置深度检测(v2.0 增强)
linrecon v2.0 的 sysinfo 模块新增了内核安全配置深度检测,这是同类工具中少见的:
8.1 sysctl 安全参数
kernel.yama.ptrace_scope | ||
kernel.unprivileged_bpf_disabled | ||
kernel.kptr_restrict | ||
kernel.dmesg_restrict | ||
kernel.randomize_va_space | ||
user.max_user_namespaces | ||
vm.mmap_min_addr | ||
fs.protected_symlinks/hardlinks | ||
dev.tty.legacy_tiocsti |
8.2 LSM 与启动参数
SELinux/AppArmor:检测 MAC 策略是否影响提权路径 /proc/cmdline:检查启动参数中的安全敏感项(selinux=0、init=/bin/sh)和可能的凭据泄露
8.3 内核模块
检查 lsmod 输出,标记与 exploit 相关的内核模块(如 nf_tables 对应 CVE-2024-1086、overlay 对应 OverlayFS CVE、vsock 对应 vsock exploit)。
九、OPSEC:操作安全注意事项
yrecon 在 README 中明确列出了 OPSEC 注意事项,这在同类工具中非常少见且极为重要:
9.1 落盘位置选择
/dev/shm | ||
C:\Windows\Temp |
命名应伪装(如 .x.sh),避免明显的工具名。
9.2 输出截断处理
webshell 响应有长度限制,务必重定向到文件再分段读,勿直接回灌 HTTP 响应。
9.3 执行超时
software/suid 慢,分模块跑;先 cve 快速定方向。
9.4 日志痕迹
~/.bash_history | |
Windows PowerShell 事件日志 |
9.5 PowerShell 特殊处理
编码: winrecon.ps1必须保持 UTF-8 with BOM(PS 5.1 默认按 GBK 读无 BOM 文件,中文会报语法错)。重新分发勿转码。AMSI bypass:winrecon 头部内嵌反射 AMSI bypass(老版够用,新版 EDR 需 patch)。 CLM 检测:若检测到约束语言模式(CLM), .NET调用受限,部分模块降级,需先绕 CLM。AV/EDR:winrecon 含提权探测特征,本机 Defender 可能拦。测试时加排除路径或注释 AMSI bypass 段。
十、快速上手
10.1 Linux
10.2 Windows
十一、扩展:自定义 CVE 和输出风格
11.1 添加新 Linux CVE
在 m_cve() 内按版本区间仿写:
11.2 添加新 Windows CVE
在 Invoke-CVE 内按 Build 仿写:
11.3 修改输出风格
颜色变量集中在文件顶部(C_* / $script:C_*),改 TrueColor RGB 即可换主题。图标在输出函数(ok/high/warnx / W-Ok/W-High/W-Warn)里。
十二、与同类工具的对比
yrecon 的核心差异化在于:
双平台对称:一套工具覆盖 Linux + Windows,学习成本低 提权导向:不是无脑收集,而是每条信息都映射到具体提权路径 2026 新 CVE 覆盖:包含 poc-lab 最新 CVE(Copy Fail、act_pedit、DirtyDecrypt 等) 模块化执行:14 个模块可自由组合,webshell 场景下分模块跑避免超时 OPSEC 意识:内置 AMSI bypass、CLM 检测、落盘位置建议
十三、文件清单
十四、实战使用建议
14.1 标准流程
拿到 webshell/低权限 shell 后,先跑 cve模块快速定方向根据系统类型选择全量收集或分模块跑 优先关注输出中的红色 ●标记(高危提权向量)对 CVE 探针结果,验证发行版是否已回溯补丁 利用提权路径映射表,找到具体可利用的路径
14.2 webshell 场景最佳实践
落盘到内存盘(Linux: /dev/shm,Windows:C:\Windows\Temp)重定向输出到文件,分段读取 先跑快的模块( cve、sysinfo),慢的(suid、software)单独跑用完清理:删除脚本和输出文件
14.3 CVE 验证
yrecon 的 CVE 探针是粗筛,不是精确判断。对于探针报告的可能 CVE:
查发行版 changelog 确认是否已回溯补丁 用对应 PoC 实测(非生产环境) 结合 sysctl 安全配置判断 exploit 可用性(ASLR、userns、BPF 等)
免责声明
本工具集仅供授权安全研究与红队评估使用。在未取得书面授权的目标上使用本工具集中的任何功能均属违法。作者不对任何滥用行为承担责任。使用者需确保遵守当地法律法规,并承担相应责任。
知 识 星 球

限时免费 | |
≥3年粉丝 | |
星球成员 |
往期推荐工具