WindowsのPetitPotam攻撃を防止する新しい手法が公開

news

セキュリティ研究者は、ハッカーがWindowsドメインコントローラを簡単に制御できるようにする、最近公開されたPetitPotam攻撃ベクトルをブロックする方法を考案したと発表しました。

セキュリティ研究者のGILLES Lionel氏は、Windowsドメインコントローラを含むWindowsマシンに対して、Microsoft Encrypting File System Remote Protocol(EFSRPC)を使用して、攻撃者がNTLMリレーサーバに対して認証を行わせるPetitPotamという新しい手法を公開しました。

Windowsパスワードハッシュを強制的に共有させられる全Windowsに影響する脆弱性が発見:PetitPotam: PrintNightmare、SeriousSAMに続き3つ目の深刻な脆弱性

攻撃者は、この認証要求をHTTP経由で対象ドメインのActive Directory証明書サービスに中継し、そこでKerberosチケット付与チケット(TGT)を受け取り、ドメインコントローラーの身元を引き継ぐことができます。

研究者はすぐにこの方法のテストを開始し、認証情報を捨ててWindowsドメインを乗っ取ることがいかに簡単かを示しました。

この攻撃を使えば、攻撃者は新しいグループポリシーやスクリプトをクライアントにPushしたり、ランサムウェアなどのマルウェアをすべてのデバイスに展開したりするなど、Windowsドメインを完全に制御することができます。

マイクロソフト社は、「Mitigating NTLM Relay Attacks on Active Directory Certificate Services (AD CS)」と題したアドバイザリを公開し、NTLMリレー攻撃を緩和する方法を説明しています。

マイクロソフト、NTMLリレー攻撃「PetitPotam」の対応策を公開

「NTLMを有効にしているネットワーク上でのNTLMリレー攻撃を防ぐために、ドメイン管理者はNTLM認証を許可しているサービスが、EPA(Extended Protection for Authentication)などの保護機能や、SMB署名などの署名機能を利用していることを確認する必要があります。PetitPotamは、Active Directory Certificate Services (AD CS)にNTLMリレー攻撃に対する保護機能が設定されていないサーバーを利用します。KB5005413に記載されている緩和策は、このような攻撃からAD CSサーバーを保護する方法を顧客に指示しています。」とMS社は説明しています

ただマイクロソフトの提案は、NTLMリレー攻撃を防ぐことができるかもしれませんが、他の攻撃として使われる可能性のあるPetitPotamをブロックするためのガイダンスはありません。

ライオネル氏は、この攻撃手法を公開した際に「NTLMv1のダウングレードや、マシンアカウントがローカル管理者であるコンピュータへのマシンアカウントの中継など、別の攻撃にも使用できる」と述べています。

PetitPotam、SeriousSAM、PrintNightmareなどの最近の脆弱性に対するマイクロソフトの対応は、マイクロソフトが顧客を保護するために十分な努力をしていないと感じているセキュリティ研究者にとって非常に気になるところです。

NETSHフィルターによるPetitPotam攻撃の阻止

ローカルEFSの機能に影響を与えることなく、NETSHフィルターを使用してリモートの未認証PetitPotam攻撃ベクトルをブロックする方法を発見し公開しました。

NETSHはWindowsのコマンドラインユーティリティで、管理者がネットワークインターフェースの設定やフィルターの追加、Windowsファイアウォールの設定変更を行うことができます。

クレイグ・カービー氏は、MS-EFSRPC APIへのリモートアクセスをブロックするNETSH RPCフィルターを公開し、認証されていないPetitPotam攻撃を効果的にブロックできると発表しました。

Benjamin Delpy氏によると、以下の内容を「block_efsr.txt」というファイルにコピーしてデスクトップに保存することで、このフィルターを使用することができます。

rpc
filter
add rule layer=um actiontype=block
add condition field=if_uuid matchtype=equal data=c681d488-d850-11d0-8c52-00c04fd90f7e
add filter
add rule layer=um actiontype=block
add condition field=if_uuid matchtype=equal data=df1941c5-fe89-4e79-bf10-463657acf44d
add filter
quit

次にコマンド プロンプトを開き、次のコマンドを入力して、NETSH を使用してフィルタをインポートします。

netsh -f %userprofile%\desktop\block_efsr.txt

次のコマンドを実行すると、フィルターが追加されたことを確認できます。

netsh rpc filter show filter

コマンドを実行すると、netsh は次のように 2 つのフィルタを表示します。1 つは c681d488-d850-11d0-8c52-00c04fd90f7e、もう 1 つは df1941c5-fe89-4e79-bf10-463657acf44d です。

これらのフィルターを設定すると、PetitPotam攻撃は有効ではなくなり、かつEFSはデバイス上で正常に動作し続けます。

Microsoft がこの攻撃を防ぐための修正を行った場合、次のコマンドを使用してフィルタを削除できます。

netsh rpc filter delete filter filterkey=[key]

filterkey は、上記のように構成されたフィルターの一覧を表示するときに見つけることができます。

Comments

タイトルとURLをコピーしました