PowerShell modul DSInternals

PowerShell modul DSInternals sprístupňuje viaceré nedokumentované funkcie Active Directory a Azure Active Directory. Patria medzi ne auditovanie FIDO2 a NGC kľúčov, offline manipulácia so súborom ntds.dit, audit hesiel, obnova DC z IFM zálohy, and počítanie odtlačkov hesiel.

Asi najobľúbenejšou funkciou modulu DSInternals je príkaz Test-PasswordQuality, ktorý vie skontrolovať heslá v Active Directory voči zoznamu uniknutých hesiel publikovanom na stránke Have I Been Pwned (HIBP):

Ukážka z výstupu príkazu Test-PasswordQuality

Viac informácií o tomto module:

PowerShell modul DSInternals bol údajne použitý aj pri útokoch v rámci tzv. SoloriGate, podľa správy Symantecu o malvéri Raindrop:

Príklad časovej osi útoku malvéru Raindrop

VAROVANIE: Funkcionalita modulu DSInternals nie je podporovaná firmou Microsoft a preto nie je určený pre produkčné nasadenie. Jeho nesprávne použitie môže spôsobiť nevratné poškodenie doménového kontroléru alebo negatívne ovplyvniť bezpečosť domény.

.NET knižnice DSInternals

Funkcionalitu PowerShell modulu je možné integrovať do iných aplikácií pomocou NuGet balíčkov pre .NET.

Projekt DSInternals momentálne využívajú minimálne tieto produkty:

PowerShell modul DSInternals.Passkeys

PowerShell modul DSInternals.Passkeys umožňuje správcom Entra ID registrovať Passkey (bezpečnostné kľúčenky štandardu FIDO2 či aplikáciu Microsoft Authenticator) pre iných používateľov, bez nutnosti im nastavovať heslo:

Screenshot z registrácie Passkey v Entra ID pomocou PowerShellu

Aby som mohol jednoducho demonštrovať možnosti Win32 API WebAuthn, vytvoril som ako súčasť tohoto projektu aj desktopovú aplikáciu FIDO2 UI:

FIDO2 UI Screenshot

Vývojári .NET aplikácií môžu tiež jednoducho využiť túto funkcionalitu pomocou mojich NuGet balíčkov.

Delinea Weak Password Finder

Pre spoločnosť Thycotic (dnes Delinea) som kedysi vytvoril prvú verziu programu Weak Password Finder for Active Directory.

Screenshot z programu Delinea Weak Password Finder

ADMX šablóna pre YubiKey Smart Card Minidriver

Pred časom som vytvoril ADMX šablónu, ktorá môže správcom uľahčiť centrálnu konfiguráciu YubiKey Smart Card Minidriver cez Active Directory Group Policy.

Group Policy Editor Screenshot

Bezpečnostný výskum Active Directory a Entra ID

CVE-2024-20692: Zraniteľnosť v Microsoft Local Security Authority Subsystem Service (LSASS)

Počas analýzy sieťovej komunikácie Windows služby Local Security Authority Subsystem Service (LSASS) som objavil zraniteľnosť CVE-2024-20692. Útočníkovi, ktorý je schopný pasívneho odposluchu sieťovej komunikácie, umožňuje získať citlivé dáta, ktoré je možné zneužiť pri ďalších útokoch na podnikovú sieť.

Elevácia oprávnení cez Windows Hello for Business

V roku 2019 som objavil niekoľko nových vektorov útoku voči implementácii Windows Hello for Business v Active Directory. Výsledky môjho výskumu som prezentoval na konferencii Black Hat Europe, pričom záznam prednášky aj slajdy sú verejné dostupné.

NGC kľúče so zraniteľnosťou ROCA v Active Directory

V rámci koordinovaného zverejnenia zraniteľnosti publikoval Microsoft bezpečnostné doporučenie ADV190026 nazvané Microsoft Guidance for cleaning up orphaned keys generated on vulnerable TPMs and used for Windows Hello for Business a vydal PowerShell modul WHfBTools v predvečer mojej prednášky na konferenci Black Hat.

Útok Shadow Credentials voči Active Directory

Počas skúmania Windows Hello for Business som vyvinul aj nástroj na pridávanie nových NGC kľúčov do AD atribútu msDS-KeyCredentialLink. Táto technika bola neskôr spopularizovaná Eladom Shamirom zo spoločnosti SpecterOps, ktorý pre ňu vymyslel názov Shadow Credentials (tieňové prihlasovacie údaje). Úprava atribútu msDS-KeyCredentialLink sa medzičasom stala dobre známou a obľúbenou technikou nielen medzi penetračnými testermi, ale aj medzi hackermi.

Auditovanie Auditing Shadow Credentials pomocou DSInternals

Ak vie útočník upraviť tento atribút na nejakom účte, môže sa ako tento účet prihlásiť do AD cez protokol Kerberos PKINIT. To môže viesť buď k elevácii oprávnení, alebo k perzistencii. Vedľajším dôsledkom je, že je možné voči napadnutému účtu vykonať útok UnPAC-the-Hash a dostať sa tak k NT hashu používateľského hesla. Tento útok tak môžeme považovať za zacielený DCSync.

Moje pôvodné zdrojové kódy si svojim životom žijú aj v týchto hackerských nástrojoch:

Bezpečnostná zraniteľnosť v Azure AD Graph API

V roku 2020 som náhodou zistil, že prostredníctvom Azure AD Graph API sú nedopatrením sprístupnené šifrovacie kľúče DPAPI všekých používateľov ostatným používateľom daného AAD tenantu cez atribút searchableDeviceKey. Túto zraniteľnosť som nahlásil Microsoftu, ktorý ju následne ošetril.

Zobrazenie kľúčov DPAPI pomocou DSInternals

Útok Silver Ticket voči Azure Active Directory

V roku 2017 som ako prvý verejne poukázal na možnosť vykonania silver ticket útoku voči Azure Active Directory, zneužitím funkcie Seamless Single Sign-on, ktorá v tom čase pritom ešte ani nebola všeobecne dostupná. Tento útok môže byť využitý k vydávaniu sa za ľubovoľného používateľa voči Office 365, Azure, alebo inej službe napojenej na Azure Active Directory.

Silver Ticket útok voči Azure AD

Microsoft následne implementoval možnosť zmeniť heslo účtu AZUREADSSOACC$odporúča tak učiniť každých 30 dní.

Reverzné inžinierstvo Azure AD Connect

Dávno pred tým, než existovala oficiálna dokumentácia k funkcii synchronizácie hesiel v programe Azure Active Directory Connect, podarilo sa mi pomocou reverzného inžinierstva odhaliť použitý kryptografický algoritmus.

OrgIdHash

V reakcii na moju spätnú väzbu zvýšil Microsoft počet iterácií SHA256 zo 100 na 1000. A už deň po vydaní môjho článku bol do programu hashcat, populárneho nástroja na lámanie hesiel, pridaný hash mode 12800 (MS-AzureSync PBKDF2-HMAC-SHA256).