Používanie prostredia PowerShell na zvýšenie oprávnení miestneho účtu

Používanie prostredia PowerShell na zvýšenie oprávnení miestneho účtu

Eskalácia privilégií je použitie práv aktuálneho účtu útočníka na získanie dodatočnej, zvyčajne vyššej úrovne prístupu do systému. Zatiaľ čo eskalácia privilégií môže byť výsledkom zero-day exploitov, majstrovských hackerov spúšťajúcich cielený útok alebo dômyselne zamaskovaného malvéru, najčastejšie k nemu dochádza v dôsledku zlej konfigurácie počítača alebo účtu. Pri ďalšom vývoji útoku útočníci využívajú množstvo individuálnych zraniteľností, ktoré spolu môžu viesť ku katastrofálnemu úniku dát.

Prečo by používatelia nemali mať práva lokálneho správcu?

Ak ste odborník na bezpečnosť, môže sa zdať zrejmé, že používatelia by nemali mať práva lokálneho správcu, pretože:

  • Robí ich účty zraniteľnejšími voči rôznym útokom
  • Robí tieto rovnaké útoky oveľa závažnejšími

Žiaľ, pre mnohé organizácie je to stále veľmi kontroverzná otázka a niekedy ju sprevádzajú búrlivé diskusie (pozri napr. môj manažér hovorí, že všetci používatelia musia byť lokálni správcovia). Bez toho, aby sme zachádzali do podrobností tejto diskusie, sa domnievame, že útočník získal práva lokálneho správcu na vyšetrovaný systém, a to buď zneužitím, alebo preto, že počítače neboli riadne zabezpečené.

Krok 1: Reverzné rozlíšenie názvov DNS pomocou prostredia PowerShell

V predvolenom nastavení je PowerShell nainštalovaný na mnohých lokálnych pracovných staniciach a na väčšine serverov Windows. A hoci nie je bez preháňania považované za neuveriteľne užitočný automatizačný a riadiaci nástroj, je rovnako schopný premeniť sa na takmer neviditeľný bezsúborový malvér (hackingový program, ktorý nezanecháva žiadne stopy po útoku).

V našom prípade útočník začne vykonávať prieskum siete pomocou skriptu PowerShell, sekvenčne iteruje priestorom adries IP siete a snaží sa určiť, či sa daná adresa IP rozdelí na hostiteľa, a ak áno, aký je názov siete tohto hostiteľa.
Existuje mnoho spôsobov, ako vykonať túto úlohu, ale pomocou cmdlet Dostať-ADComputer je spoľahlivá možnosť, pretože vracia skutočne bohatý súbor údajov o každom uzle:

 import-module activedirectory Get-ADComputer -property * -filter { ipv4address -eq ‘10.10.10.10’}

Ak je rýchlosť vo veľkých sieťach problémom, možno použiť reverzné systémové volanie DNS:

[System.Net.Dns]::GetHostEntry(‘10.10.10.10’).HostName

Používanie prostredia PowerShell na zvýšenie oprávnení miestneho účtu

Táto metóda enumerácie hostiteľov v sieti je veľmi populárna, pretože väčšina sietí nepoužíva bezpečnostný model s nulovou dôverou a nemonitoruje interné DNS dotazy na podozrivé výbuchy aktivity.

Krok 2: Vyberte cieľ

Konečným výsledkom tohto kroku je získanie zoznamu názvov serverov a pracovných staníc, ktoré možno použiť na pokračovanie v útoku.

Používanie prostredia PowerShell na zvýšenie oprávnení miestneho účtu

Na základe svojho názvu sa server 'HUB-FILER' javí ako dôstojný cieľ, pretože... V priebehu času majú súborové servery tendenciu hromadiť veľké množstvo sieťových priečinkov a nadmerný prístup k nim príliš veľa ľudí.

Prehliadanie pomocou Prieskumníka systému Windows nám umožňuje určiť, že existuje otvorený zdieľaný priečinok, ale náš aktuálny účet k nemu nemá prístup (pravdepodobne máme iba práva na zápis).

Krok 3: Naučte sa ACL

Teraz na našom hostiteľovi a cieľovom zdieľaní HUB-FILER môžeme spustiť skript PowerShell na získanie ACL. Môžeme to urobiť z lokálneho počítača, pretože už máme práva lokálneho správcu:

(get-acl hub-filershare).access | ft IdentityReference,FileSystemRights,AccessControlType,IsInherited,InheritanceFlags –auto

Výsledok vykonania:

Používanie prostredia PowerShell na zvýšenie oprávnení miestneho účtu

Z neho vidíme, že skupina Domain Users má prístup len k výpisu, ale práva na úpravu má aj skupina Helpdesk.

Krok 4: Identifikácia účtu

Beh Get-ADGroupMember, môžeme získať všetkých členov tejto skupiny:

Get-ADGroupMember -identity Helpdesk

Používanie prostredia PowerShell na zvýšenie oprávnení miestneho účtu

V tomto zozname vidíme počítačový účet, ktorý sme už identifikovali a ku ktorému sme už pristupovali:

Používanie prostredia PowerShell na zvýšenie oprávnení miestneho účtu

Krok 5: Použite PSExec na prácu pod počítačovým účtom

PsExec od Microsoft Sysinternals umožňuje vykonávať príkazy v kontexte systémového účtu SYSTEM@HUB-SHAREPOINT, o ktorom vieme, že je členom cieľovej skupiny Helpdesk. To znamená, že musíme urobiť:

PsExec.exe -s -i cmd.exe

Potom máte úplný prístup k cieľovému priečinku HUB-FILERshareHR, keďže pracujete v kontexte počítačového účtu HUB-SHAREPOINT. A s týmto prístupom je možné dáta skopírovať na prenosné úložné zariadenie alebo inak získať a preniesť cez sieť.

Krok 6: Detekcia tohto útoku

Túto konkrétnu zraniteľnosť konfigurácie oprávnení účtu (počítačové účty pristupujúce k sieťovým zdieľaniam namiesto používateľských účtov alebo účtov služieb) možno odhaliť. Bez správnych nástrojov je to však veľmi ťažké.

Na detekciu a prevenciu tejto kategórie útokov môžeme použiť DataAdvantage identifikovať skupiny s počítačovými účtami v nich a potom k nim zakázať prístup. DataAlert ide ďalej a umožňuje vám vytvoriť upozornenie špeciálne pre tento typ scenára.

Snímka obrazovky nižšie zobrazuje vlastné upozornenie, ktoré sa spustí vždy, keď počítačový účet pristúpi k údajom na monitorovanom serveri.

Používanie prostredia PowerShell na zvýšenie oprávnení miestneho účtu

Ďalšie kroky pomocou PowerShell

Chcete vedieť viac? Použite odblokovací kód "blog" pre bezplatný prístup k plnému obsahu Video kurz Základy prostredia PowerShell a Active Directory.

Zdroj: hab.com

Pridať komentár