10.7 Active Directory na Linuxu, Post-exploitation a Nástroje
Active Directory a Linux
Linuxové stroje mohou být také součástí Active Directory sítě, avšak mají značně omezené schopnosti (například nepodporují nativní sdílené Group Policy Objects (GPO)). Z pohledu hekera, který najde kompromitovaný Linux začleněný do domény, se otevírají následující možnosti ohledně lokálních konfigurací a přístupu k Kerberos lístkům:
- Konfigurace klienta: Typicky uložená v souboru
/etc/krb5.conf. - Uložení lístků uživatele (Tickets): Ve formátu `ccache` běžně k nalezení jako soubory ve složce
/tmp/(např. `/tmp/krb5cc_1000`). - Uložení tajemství stroje (Machine Account secrets): Podobně jako v registrech u Windows, v Linuxu se klíče nacházejí bezpečně uložené v binárním souboru
/etc/krb5.keytab. Útočník s právem `root` je může číst a lístek počítačového účtu použít.
Pro nahrání lístku (ccache formátu) k aktivnímu užití linuxovým terminálem pro nástroje třetích stran stačí nastavit systémovou proměnnou příkazem:
export KRB5CCNAME=<ccache_file_path>Windows lístky jsou naopak z paměti zpravidla uloženy v Base64 a formátu `kirbi`. Nástroj impacket-ticketConverter slouží k obousměrnému převádění z formátu `kirbi` do `ccache`.
Post-exploitation
Jakmile má útočník k dispozici rozsáhlejší práva nad doménou, snaží se vytvořit si skryté zadní vrátka a perzistenci nebo ukrást další cenná data z řadičů bez vyvolání přímého alertu (což přináší například hrubé čtení ntds.dit ze složky system32, jelikož bývá monitorováno).
- DCSync: Útočník přesvědčí doménový řadič, že je další (nyní legitimní) řadič sítě a vyžádá si z něj "synchronizaci" neboli kompletní zaslání tajných hashů všech uživatelů (nebo jen klíče krbtgt). U této akce zneužívá nativní službu AD (Replication API). Cílí na získání Password Hashes z DC.
- DCShadow: Útočník vytvoří Rogue Domain Controller (falešný doménový řadič) a proaktivně jako replikaci vtlačí cílovému doménovému řadiči nová data pro objektové atributy. Může se například jednat o úpravu
msDS-AllowedToDelegateTonebo jiné SID a skupiny. - Udržení si přístupu přes tzv. Forest trusts (pokud má společnost víc propletených lesů/forestů se sdíleným Trusted vztahem), kompromitací jednoho forestu a domény se posouvá směrem od Domain Admin na nejvyšší stupeň Enterprise Admin do celkového mateřského forestu.
Nástroje (Tools)
- Impacket: Úplný základ. Kolekce Python tříd umožňující masivní množství útoků od SMB relay až po WmiExec pro Remote Execution bez antivirového povšimnutí.
- Rubeus: Silný nástroj (C# projekt) primárně se zabývající hrubými AS-REP, Kerberoasting a TGT requesty, včetně interakce pro injektáž a výměny Lístků (Tickets).
- mimikatz: Legendární nástroj v C spravující těžbu plaintextových hesel z paměti systému (LSASS proces), interakci a exportování TGT lístků z vrstvy API a provádění DCSync.
- PsExec: Známý Microsoft Sysinternals program určený pro běh interaktivních vzdálených příkazů.
- SpoolSample / printerbug.py: C# a Python program k přinucení protistrany k NTLM over SMB autentizaci vůči nám přes chyby tiskáren (MS-RPRN).
- PowerView: Z balíku PowerShell Empire, zajišťuje tzv. Situational Awareness (přehled o doménové síti, nahrazuje hlučné net.exe příkazy pro prohledávání skupin přes LDAP rozhraní).
- BloodHound a Sharphound: Sharphound jako C# klient sesbírá data z počítače pomocí nativních funkcí a LDAP a BloodHound, jako grafická single-page aplikace běžící nad neo4j grafovou databází, najde viditelné cesty a skryté propojení, kdo komu jaká práva předal pro např. Domain Admin takeover.