Mimikatz Extrahujte heslá používateľov systému Windows z pamäte ako obyčajný text

V tomto článku, ktorý bol napísaný ako súčasť série článkov venovaných zabezpečeniu systémov Windows (v poslednom článku sme diskutovali o bezpečnosti hesiel uložených v GPP), sa oboznámime s pomerne jednoduchou metódou získavania otvorených textových hesiel všetkých používateľov pracujúcich v systéme Windows. Používanie nástroja Open Source Mimikatz Utility.

dementi.  Informácie a technológie opísané v tomto článku by sa mali používať iba na informačné a zoznámovacie účely av žiadnom prípade by sa nemali používať na získanie prístupu k účtom, informáciám a systémom tretích strán..

obsah:

  • Heslá a hash ukladajte do pamäte Windows
  • Používame Mimikatz na extrahovanie užívateľských hesiel z lsass.exe online
  • Získanie hesla používateľa z výpisu pamäte systému Windows
  • Získavanie hesiel používateľov zo súborov virtuálneho počítača a hibernácie
  • Použitie Mimikatz pri útokoch typu pass-the-hash
  • Ako chrániť Windows pred extrahovaním hesiel z pamäte pomocou mimikatz?

Heslá a hash ukladajte do pamäte Windows

Väčšina správcov systému je presvedčená, že systém Windows neukladá heslá používateľov v čistom texte, ale iba vo forme hash. A hoci dnes existuje veľké množstvo obslužných programov, ktoré dokážu extrahovať hashovacie heslo používateľa zo systému, je možné s istotou povedať, že pri použití pomerne zložitého hesla, ktoré nie je „zo slovníka“, nemá útočník prakticky žiadnu šancu si ho vyzdvihnúť pomocou priamej brutálnej sily alebo na základe už vypočítaných hashov..

V zásade je to pravda, ale existujú rôzne nuansy týkajúce sa používateľov prihlásených do konkrétneho systému Windows. Faktom je, že niektoré systémové procesy na ich úradné účely stále používajú heslá používateľov v otvorenej (alebo šifrovanej) podobe, a nie ich hashe.

Napríklad mechanizmus overenie totožnosti (HTTP výťah overenie pravosti), používa sa na podporu SSO (Single Sign On), pre svoju prácu vyžaduje znalosť zadaného hesla používateľa, a nielen jeho hash (môžete len uhádnuť, prečo to vývojári implementovali týmto spôsobom). Heslá (menovite heslá, nie ich heslá) používateľov v šifrovanej podobe sú uložené v pamäti OS a presnejšie v pamäti procesu. LSASS.EXE. Problém je v tom, že šifrovanie hesla je implementované pomocou štandardných funkcií Win32 LsaProtectMemory a LsaUnprotectMemory, ktoré sú určené na šifrovanie / dešifrovanie určitej časti pamäte. Francúzski vývojári mimikatz umožňuje prijímať šifrované údaje z pamäte a dešifrovať ich pomocou funkcie LsaUnprotectMemory, čo vám umožňuje zobraziť všetky používateľské účty autorizované v systéme a ich heslá (v otvorenej, už dešifrovanej forme!). Aby útočník mohol zneužiť túto zraniteľnosť, musí byť schopný pripojiť k procesu lsass.exe špeciálnu knižnicu.

Stiahnite si nástroj mimikatz nájdete tu: http://blog.gentilkiwi.com/mimikatz

info. Pomôcka mimikatz je zistená vo väčšine antivírusov a prehliadačov ako potenciálne nebezpečný softvér (pomôcka hackerov)..

Obslužný program mimikatz umožňuje extrahovať heslá používateľov priamo z pamäte (vstrekovaním knižnice sekurlsa.dll do súboru lsass.exe), z výpisu uloženej pamäte počítača alebo dokonca zo súboru hibernácie..

Používame Mimikatz na extrahovanie užívateľských hesiel z lsass.exe online

  • Stiahnite si a spustite Mimikatz.exe s oprávneniami správcu (pre príslušné systémy existuje verzia programu x86 a x64)
  • V kontexte obslužného programu spustite príkazy

mimikatz # privilege :: debug
mimikatz # sekurlsa :: logonPasswords full

(posledný príkaz pre všetkých aktívnych používateľov v systéme zobrazí názvy účtov a ich heslá).

Ako vidíte, tento nástroj nám ukázal super-zložité heslo používateľa používateľa v čistom texte! Toto všetko je spôsobené skutočnosťou, že v tomto počítači je možné povoliť režim ladenia nastavením príznaku SeDebugPrivilege pre požadovaný proces. V tomto režime môžu programy získať prístup na nízku úroveň k pamäti procesov prebiehajúcich v mene systému.

Predstavte si, že ide o terminálový server, na ktorom pracuje veľa používateľov súčasne a na ktorom okrem iného prebieha relácia správcu podniku. tj Ak máte práva správcu na jednom serveri, môžete dokonca zachytiť heslo správcu domény.

poznámka. V júni 2017 bolo veľa veľkých spoločností v Rusku, na Ukrajine a v ďalších krajinách infikovaných vírusom nepansety ransomware, ktorý integrovaný modul mimikatz použil na zhromažďovanie hesiel správcov domén a domén..poznámka. Táto technika nebude fungovať, ak v systéme existuje moderný antivírus, ktorý blokuje injekciu. V takom prípade musíte najprv vytvoriť výpis pamäte zariadenia a už na druhom počítači z neho vytiahnuť heslá pre relácie všetkých používateľov..

Získanie hesla používateľa z výpisu pamäte systému Windows

Výpis pamäte pre proces LSASS sa dá získať pomocou funkcie PowerShell Out-Minidump.ps1. Naimportujte funkciu Out-Minidump do PoSh a vypíšte procesnú pamäť LSASS:

Get-Process lsass | Out-Minidump

Výsledný výpis pamäte v našom príklade je LSASS_592.dmp (štandardne je uložená v adresári% windir \ system32%), musíte ju skopírovať na iný počítač, ktorý má pomocný program mimikatz a spustiť príkaz:

Mimikatz “sekurlsa :: minidump lsass_592.dmp”

A pomocou nasledujúceho príkazu z výpisu uloženej pamäte získame zoznam používateľov pracujúcich v systéme a ich hesiel:

mimikatz # sekurlsa :: logonPasswords

Ako vidíte, nič komplikované.

Týmto spôsobom môžete získať výpis pamäte zo vzdialeného počítača pomocou psexecu alebo cez WinRM (ak máte administrátorské práva) a extrahovať z neho heslo používateľa..

Získavanie hesiel používateľov zo súborov virtuálneho počítača a hibernácie

Do toho. Pomocou jednoduchých manipulácií môže útočník ľahko extrahovať používateľské heslá zo súborov výpisu z pamäte, zo systému hibernácie systému (hiberfil.sys) a. vmem súbory virtuálnych strojov (odkladacie súbory virtuálnych strojov a ich snímky).

Na to potrebujete balík ladenie náradie pre windows (WinDbg), sám mimikatz a nástroj na konverziu .vmem do súboru výpisu pamäte (pre Hyper-V to môže byť súbor vm2dmp.exe alebo MoonSols Windows Memory pre súbory VMWare vmem).

Napríklad, ak je to potrebné, skonvertujte swapový súbor vmem virtuálneho počítača VMWare na výpis, vykonajte príkaz:

bin2dmp.exe "winsrv2008r2.vmem" vmware.dmp

Výsledný výpis sa načíta do WinDbg (File -> Open Crash Dump), načíta sa knižnica mimikatz s názvom mimilib.dll (vyberte verziu v závislosti od bitovej hĺbky systému):

.načítať mimilib.dll

Hľadáme proces lsass.exe na výpise:

!proces 0 0 lsass.exe

A nakoniec napíšeme:

.proces / r / p fffffa800e0b3b30
!mimikatz

a získať zoznam používateľov systému Windows a ich hesiel v čistom texte.

Získavanie hesiel používateľov Windows v otvorenej podobe pomocou obslužného programu Mimikatz funguje na nasledujúcich systémoch vrátane tých, ktoré sú spustené v rôznych verziách Hyper-V 2008/2012 a VMWare:

  • Windows Server 2008/2008 R2
  • Windows Server 2012 / R2
  • Windows 7
  • Windows 8
poznámka. Mimochodom, funkcia mimikatz je už implementovaná v rámci Metasploit Framework.

Použitie Mimikatz pri útokoch typu pass-the-hash

V prípade, že nie je možné získať heslo používateľa, ale iba jeho hash, môže byť Mimikatz použitý pre tzv. Pass-the-hash útok (opakované použitie hash). V tomto prípade je možné hash použiť na spustenie procesov v mene užívateľa. Napríklad, po prijatí hash NTLM používateľa, nasledujúci príkaz spustí príkazový riadok v mene privilegovaného účtu:
sekurlsa :: pth / user: Administrátor / doména: CORP / ntlm: NTLM hash / run: cmd

Ako chrániť Windows pred extrahovaním hesiel z pamäte pomocou mimikatz?

V systémoch Windows 8.1 a Server 2012 R2 (a novších) je schopnosť extrahovať heslá pomocou LSASS trochu obmedzená. V predvolenom nastavení teda tieto systémy neukladajú hash a heslá LM do čistého textu v pamäti. Rovnaká funkčnosť je backportovaná k starším verziám Windows (7/8 / 2008R2 / 2012), v ktorých je potrebné nainštalovať špeciálnu aktualizáciu KB2871997 (aktualizácia poskytuje ďalšie príležitosti na zvýšenie bezpečnosti systému) a vo vetve HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ WDigest nastavte parameter DWORD registra UseLogonCredential rovný 0 (WDigest je vypnutý).

Ak sa po inštalácii aktualizácie a kľúča UseLogonCredential pokúsite extrahovať heslá z pamäte, uvidíte, že mimikats nemôžu extrahovať heslá a hash pomocou príkazu creds_wdigest..

Ak však máte práva správcu, môžete tento kľúč ľahko zmeniť:

reg add HKLM \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ WDigest / v UseLogonCredential / t REG_DWORD / d 1

Potom môžete znova získať prístup k heslám v pamäti LSA.

Sada nástrojov mimikatz má aj ďalšie nástroje na získavanie hesiel a ich hash z pamäte (WDigest, LM-hash, NTLM-hash, modul Zachytávania lístkov Kerberos), preto sa odporúča implementovať nasledujúce opatrenia ako odporúčania:

  • Odmietnite ukladanie hesiel pomocou reverzibilného šifrovania
  • Zakázať NTLM
  • Odmietnuť použitie uložených hesiel v aplikácii Credential Manager
  • Odmietnuť poverenia používateľa v pamäti cache (kľúč CachedLogonsCount a interaktívne prihlásenie: počet predchádzajúcich prihlásení do politiky vyrovnávacej pamäte)
  • Ak funkčná úroveň domény nie je nižšia ako Windows Server 2012 R2, môžete pridať účty administrátora do špeciálnej skupiny Chránení používatelia
rada. Podrobný článok o spôsoboch ochrany pamäte systémov Windows pred extrahovaním hesiel a hashe - Metódy ochrany proti mimikatz v doméne Windows

Pri testovaní mimkatz na Windows 10 Pro x64 s nastaveniami, mimkatz 2.0 bol schopný získať hash hesla aktívneho používateľa (ale nie heslo v čistom texte).

Na starších systémoch, ako riešenie, musíte obmedziť získanie oprávnenia na ladenie a vypnúť poskytovateľa zabezpečenia wdigest prostredníctvom registra. Za to vo vetve HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa nájsť kľúč Balík zabezpečenias a odstráňte riadok zo zoznamu balíkov wdigest. Musíte však pochopiť, že pre útočník s príslušnými právami do registra nie je ťažké vrátiť nastavenia späť.

zistenie. Opäť si pripomíname bežné pravdy:

  • Nepoužívajte rovnaké heslá pre rôzne služby (najmä pre terminály vo vlastníctve tretích strán).
  • Zamyslite sa nad bezpečnosťou vašich hesiel a údajov, ktoré sa nachádzajú na virtuálnych počítačoch v cloude, pretože si nemôžete byť istí, kto iný má prístup k hypervizorom a úložisku, na ktorom sú umiestnené súbory virtuálneho stroja..
  • Minimalizujte vo svojich systémoch počet účtov, ktoré majú práva miestneho správcu (pozrite si príručku o zabezpečení účtov správcu v systéme Windows)
  • Nikdy sa neprihlasujte pomocou účtu správcu domény na servery a počítače prístupné iným používateľom.