
LdapNightmareは、CVE-2024-49113に対して脆弱なWindows ServerをテストするPoCツールです。
Yuki Chen(@guhe120)氏によって報告されたCVE-2024-49113のエクスプロイトです。Windowsライトウェイトディレクトリアクセスプロトコル(LDAP)の脆弱性です。
SafeBreach Labsによって作成されました(2025年1月1日公開)。この脆弱性の完全な技術分析と、私たちがどのようにエクスプロイトに成功したかについては、ブログ記事こちらをご覧ください。
CVE-2024-49113は、Microsoftによるとリモートコード実行を可能にする、Windows LDAPクライアントの重大な脆弱性です。このエクスプロイトは、この脆弱性を利用して、標的のWindows ServerシステムのNetlogon Remote Protocol(NRPC)およびLDAPクライアントと対話することで、システムをクラッシュさせます。
https://github.com/user-attachments/assets/1cbda4a9-943a-4e07-a95a-b20e45863ec3
依存関係のインストール:
必要なPythonパッケージがすべてインストールされていることを確認してください。pipと提供されているrequirements.txtファイルを使用してインストールできます:
pip install -r requirements.txt
エクスプロイトの設定:
target_ip: ターゲットマシンのIPアドレス。port: RPC通信用のTCPポート(デフォルト:49664)。listen_port: エクスプロイトサーバーがリッスンするUDPポート(デフォルト:389)。変更しない場合、このツールは管理者またはroot権限で実行する必要がありますdomain_name: 攻撃者が所有するインターネット上のドメイン名。このドメインには、その下に2つのDNS SRVレコードが必要です。(SRVレコードは、ドメインをポートと別のドメインにマッピングします):
domain_name -> listen_port attacker's machine hostnamedomain_name -> listen_port attacker's machine hostnameattacker's machine hostnameは、被害者サーバーがNBNSを使用してホスト名で攻撃者マシンを見つけられることを前提に機能します。攻撃者のホスト名の代わりに、この値は、脆弱性を悪用する悪意のあるLDAPサーバーのIPアドレスを指すインターネット上のドメイン名に置き換えることができます。account: アカウント名パラメータ(デフォルト:Administrator)。site_name: サイト名パラメータ(デフォルト:空文字列)。python LdapNightmare.py <target_ip> --domain-name <domain_name> [options]
例:
python LdapNightmare.py 192.168.1.100 --domain-name example.com
エクスプロイトサーバーの起動:
スクリプトは、指定されたUDPポートで着信接続をリッスンする非同期LDAPサーバーを起動します。
DsrGetDcNameEx2の呼び出し:
スクリプトは、Netlogon Remote Protocolを介してDsrGetDcNameEx2関数を呼び出し、被害者サーバーに攻撃者へのLDAPクエリを送信させます。
脆弱性のトリガー:
特別に細工された応答を送信することで、エクスプロイトはCVE-2024-49113の脆弱性をトリガーし、被害者サーバーをクラッシュさせます
| Or Yair | Shahak Morag | |
|---|---|---|
| Or Yair | Shahak Morag | |
| @oryair1999 | @shahakmo |