Coercer and PetitPotam — Active Directory Coercion Frameworks
Coercion forces a Windows machine to initiate outbound NTLM authentication to a host you control. The target is typically a domain controller or server — coercing its machine account is what gives the attack weight. When that authentication lands on your listener, two paths open: relay it onward to LDAP, SMB, or ADCS to gain impact without ever cracking a password, or receive it on an unconstrained delegation host to extract a full TGT for the coerced machine.
The tools covered here are the trigger mechanisms. What you do with the arriving authentication is a separate decision — see NTLM Relay and Unconstrained Delegation Abuse for those workflows.
Coercer — unified coercion framework
Coercer wraps every major coercion technique — MS-RPRN, MS-EFSR, MS-FSRVP, MS-DFSNM, and others — into a single tool with consistent syntax. Rather than running each protocol manually, Coercer probes the target and fires whichever methods succeed. The scan mode checks availability without triggering outbound authentication, which matters when you want to identify working methods before making noise.
Scan for available coercion methods
[+] MS-RPRN: RpcRemoteFindFirstPrinterChangeNotification - available [+] MS-EFSR: EfsRpcOpenFileRaw - available [+] MS-FSRVP: IsPathShadowCopied - available [-] MS-DFSNM: NetrDfsAddStdRoot - not available
Scan mode identifies which methods the target responds to. Pick one or let Coercer fire all available methods when you run coerce.
Coerce authentication toward your listener
[+] MS-RPRN: RpcRemoteFindFirstPrinterChangeNotification - success [+] Incoming authentication expected on 10.10.10.20
Coercer with no method filter tries every available protocol in sequence. This is noisy — each attempted method generates authentication events on the target. Use scan first, then coerce with --filter-method to limit to a single confirmed technique if noise is a concern.
Before running coerce, start your listener on $LHOST. Use Responder to capture the arriving hash for offline cracking, or ntlmrelayx to relay it onward. When relaying, disable SMB and HTTP in Responder so ntlmrelayx receives the connection.
Warning
Responder's LLMNR/NBT-NS poisoning is prohibited in the OSCP exam. Coercion (Coercer, PetitPotam) plus ntlmrelayx is the exam-safe trigger — capture the coerced hash with a plain SMB listener rather than Responder poisoning mode. Verify exam rules before use.
PetitPotam — MS-EFSRPC coercion
PetitPotam abuses the MS-EFSRPC protocol (Encrypting File System Remote) to force outbound authentication. It has two modes: unauthenticated and authenticated. The unauthenticated variant is blocked by KB5005413 on patched systems. Most modern environments have this patch applied, so treat the authenticated variant as the default approach.
[+] Sending auth request [+] Triggered RPC call - incoming authentication expected on 10.10.10.20
Always try the authenticated variant first in current engagements. The unauthenticated path is included for completeness but should not be the primary assumption.
PrinterBug — MS-RPRN coercion
PrinterBug abuses the Print Spooler service via MS-RPRN. The RpcRemoteFindFirstPrinterChangeNotification call forces the target to authenticate to an arbitrary host. Requires Print Spooler running on the target and any valid domain credentials.
Check if Print Spooler is running
SMB 10.10.10.10 445 DC01 [+] Spooler service enabled on DC01
Trigger coercion via printerbug.py
printerbug.py is part of the krbrelayx toolset from https://github.com/dirkjanm/krbrelayx.
[*] Triggering authentication via MS-RPRN RpcRemoteFindFirstPrinterChangeNotification... [*] Connecting to ncacn_np:10.10.10.10[\pipe\spoolss] [+] Triggered RPC call - incoming authentication expected on 10.10.10.20
Print Spooler is disabled by default on Windows Server 2019 and later. On older environments and some DCs it remains active. Coercer covers this same protocol under MS-RPRN — if Coercer scan confirms MS-RPRN is available, printerbug.py is an equivalent manual trigger.
What to do with the coerced authentication
Once authentication arrives at $LHOST, the two main paths are NTLM relay and TGT theft.
NTLM relay
Run ntlmrelayx on $LHOST before triggering coercion. The relay receives the incoming authentication and forwards it to the configured target service.
Then trigger coercion with any of the tools above. The arriving machine account authentication is relayed before the originating host can complete the exchange.
For relay target selection, signing requirements, and full relay chains including DCSync via ADCS, see NTLM Relay and SMB NTLM Relay.
TGT theft via unconstrained delegation
If $LHOST is a machine configured for unconstrained delegation, incoming Kerberos authentication includes the coerced machine's TGT embedded in the service ticket. Rubeus running on that host can extract it from memory.
Trigger coercion after starting the monitor. When the DC authenticates to your unconstrained delegation host, Rubeus captures the TGT. That ticket can be injected and used for DCSync or other operations as the DC machine account.
For the full workflow, see Unconstrained Delegation Abuse.
OPSEC
Every coercion attempt generates authentication events on the target. MS-RPRN triggers Event ID 4624 on the DC when Spooler initiates outbound authentication. Running Coercer without filtering tries multiple protocols in sequence — each attempt is a separate authentication event and RPC call logged on the target.
Use scan mode before coercing to identify which single method works, then coerce with a targeted method rather than letting Coercer iterate through everything. One clean trigger is harder to correlate than a sequence of failed RPC calls followed by a successful one.
References
-
https://github.com/p0dalirius/Coercergithub.com/p0dalirius/Coercer (opens in new tab)
Multi-protocol coercion tool covering MS-RPRN, MS-EFSR, MS-FSRVP, MS-DFSNM
-
- https://github.com/topotam/PetitPotam | PetitPotam | MS-EFSRPC coercion, authenticated and unauthenticated variantsgithub.com/topotam/PetitPotam (opens in new tab)
MS-EFSRPC coercion, authenticated and unauthenticated variants
-
- https://github.com/dirkjanm/krbrelayx | krbrelayx | printerbug.py MS-RPRN coercion toolgithub.com/dirkjanm/krbrelayx (opens in new tab)
printerbug.py MS-RPRN coercion tool
Was this helpful?
Your feedback helps improve this page.