Použití prostředí PowerShell ke zvýšení oprávnění místního účtu

Použití prostředí PowerShell ke zvýšení oprávnění místního účtu

Eskalace privilegií je použití práv k aktuálnímu účtu útočníka k získání další, obvykle vyšší úrovně přístupu do systému. Zatímco eskalace oprávnění může být výsledkem zero-day exploitů, mistrovských hackerů spouštějících cílený útok nebo důmyslně maskovaného malwaru, nejčastěji k němu dochází kvůli špatné konfiguraci počítače nebo účtu. Při dalším vývoji útoku útočníci využívají řadu jednotlivých zranitelností, které mohou společně vést ke katastrofickému úniku dat.

Proč by uživatelé neměli mít práva místního správce?

Pokud jste bezpečnostní profesionál, může se zdát zřejmé, že uživatelé by neměli mít práva místního správce, protože toto:

  • Činí jejich účty zranitelnější vůči různým útokům
  • Dělá tyto stejné útoky mnohem závažnějšími

Bohužel pro mnoho organizací je to stále velmi kontroverzní téma a někdy je provázeno vzrušenými diskusemi (viz např. můj manažer říká, že všichni uživatelé musí být místní správci). Aniž bychom zacházeli do podrobností této diskuse, domníváme se, že útočník získal práva místního správce na vyšetřovaném systému, a to buď zneužitím, nebo proto, že stroje nebyly řádně zabezpečeny.

Krok 1: Reverzní překlad názvů DNS pomocí PowerShellu

Ve výchozím nastavení je PowerShell nainstalován na mnoha místních pracovních stanicích a na většině serverů Windows. A i když není bez nadsázky považován za neuvěřitelně užitečný nástroj pro automatizaci a řízení, stejně tak se dokáže proměnit v téměř neviditelný bezsouborový malware (hackovací program, který nezanechává žádné stopy po útoku).

V našem případě útočník začne provádět průzkum sítě pomocí skriptu PowerShell, postupně iteruje prostorem IP adres sítě a snaží se zjistit, zda se daná adresa IP přenáší na hostitele, a pokud ano, jaký je název sítě tohoto hostitele.
Existuje mnoho způsobů, jak provést tento úkol, ale pomocí rutiny Dostat-ADComputer je spolehlivá možnost, protože vrací opravdu bohatou sadu dat o každém uzlu:

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

Pokud je rychlost ve velkých sítích problémem, lze použít reverzní systémové volání DNS:

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

Použití prostředí PowerShell ke zvýšení oprávnění místního účtu

Tato metoda výčtu hostitelů v síti je velmi populární, protože většina sítí nepoužívá model zabezpečení s nulovou důvěrou a nemonitoruje interní dotazy DNS na podezřelé návaly aktivity.

Krok 2: Vyberte cíl

Konečným výsledkem tohoto kroku je získání seznamu názvů serverů a pracovních stanic, které lze použít k pokračování útoku.

Použití prostředí PowerShell ke zvýšení oprávnění místního účtu

Na základě svého názvu se server 'HUB-FILER' zdá jako vhodný cíl, protože... V průběhu času mají souborové servery tendenci hromadit velké množství síťových složek a nadměrně k nim přistupovat příliš mnoho lidí.

Prohlížení pomocí Průzkumníka Windows nám umožňuje určit, že existuje otevřená sdílená složka, ale náš aktuální účet k ní nemá přístup (pravděpodobně máme pouze práva k zápisu).

Krok 3: Naučte se ACL

Nyní na našem hostiteli a cílové sdílené složce HUB-FILER můžeme spustit skript PowerShell, abychom získali ACL. Můžeme to udělat z místního počítače, protože již máme práva místního správce:

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

Výsledek provedení:

Použití prostředí PowerShell ke zvýšení oprávnění místního účtu

Z něj vidíme, že skupina Domain Users má přístup pouze k výpisu, ale práva na úpravy má i skupina Helpdesk.

Krok 4: Identifikace účtu

Běh Get-ADGroupMember, můžeme získat všechny členy této skupiny:

Get-ADGroupMember -identity Helpdesk

Použití prostředí PowerShell ke zvýšení oprávnění místního účtu

V tomto seznamu vidíme účet počítače, který jsme již identifikovali a ke kterému jsme již přistupovali:

Použití prostředí PowerShell ke zvýšení oprávnění místního účtu

Krok 5: Použijte PSExec k práci pod účtem počítače

PsExec od Microsoft Sysinternals umožňuje spouštět příkazy v kontextu systémového účtu SYSTEM@HUB-SHAREPOINT, o kterém víme, že je členem cílové skupiny Helpdesk. To znamená, že musíme udělat:

PsExec.exe -s -i cmd.exe

Pak máte plný přístup k cílové složce HUB-FILERshareHR, protože pracujete v kontextu účtu počítače HUB-SHAREPOINT. A s tímto přístupem lze data zkopírovat na přenosné úložné zařízení nebo je jinak načíst a přenést po síti.

Krok 6: Detekce tohoto útoku

Tuto konkrétní chybu zabezpečení konfigurace oprávnění účtu (počítačové účty přistupující k síťovým sdíleným položkám namísto uživatelských účtů nebo účtů služeb) lze zjistit. Bez správných nástrojů je to však velmi obtížné.

K detekci a prevenci této kategorie útoků můžeme použít DataAdvantage identifikovat skupiny s počítačovými účty a poté k nim odepřít přístup. DataAlert jde dále a umožňuje vám vytvořit oznámení speciálně pro tento typ scénáře.

Snímek obrazovky níže ukazuje vlastní upozornění, které se spustí, kdykoli počítačový účet přistoupí k datům na monitorovaném serveru.

Použití prostředí PowerShell ke zvýšení oprávnění místního účtu

Další kroky pomocí PowerShellu

Chcete vědět více? Použijte odblokovací kód "blog" pro bezplatný přístup k plnému obsahu Videokurz PowerShell a Základy Active Directory.

Zdroj: www.habr.com

Přidat komentář