Použití PowerShellu pro zvýšení oprávnění místních účtů

Použití PowerShellu pro zvýšení oprávnění místních účtů

Zvýšení oprávnění je využití současných práv účtu útočníkem k získání dodatečného, obvykle vyššího levelu přístupu v systému. I když k zvýšení oprávnění může dojít v důsledku zneužití zero-day zranitelností, nebo pokud profesionální hackeři provádějí cílený útok, nebo pomocí dobře maskovaného malwaru, častěji to však bývá způsobeno nesprávným nastavením počítače nebo účtu. Při dalším pokračování útoku útočníci využívají řadu jednotlivých zranitelností, což může souhrnně vést k katastrofickému úniku dat.

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

Pokud jste bezpečnostní odborník, může se to zdát zřejmé, že uživatelé by neměli mít práva místního administrátora, protože to:

  • Způsobuje, že jejich účty jsou více zranitelné vůči různým útokům
  • Dělá tyto útoky mnohem vážnějšími

Bohužel pro mnoho organizací je to stále velmi kontroverzní otázka a často je provázena bouřlivými diskusemi (viz například, můj šéf říká, že všichni uživatelé by měli být místními administrátory). Aniž bychom se zabývali detaily této diskuse, domníváme se, že útočník získal práva místního administrátora na zkoumaném systému: buď prostřednictvím exploitů, nebo protože stroje nebyly správně zabezpečeny.

Krok 1. Reverzní DNS rozlišení prostřednictvím PowerShellu

PowerShell je ve výchozím nastavení nainstalován na mnoha místních pracovních stanicích a na většině serverů Windows. Ačkoliv je bez nadsázky považován za neuvěřitelně užitečný nástroj pro automatizaci a správu, stejně tak je schopen proměnit se v téměř neviditelný fileless malware (program pro hacking, který nezanechává stopy útoku).

V našem případě začíná útočník provádět síťovou rekognoskaci pomocí skriptu PowerShell, postupně prochází prostor IP adres v síti a snaží se určit, jestli daná IP adresa je rozlišována k uzlu, a pokud ano, jaký je síťový název tohoto uzlu.
Existuje mnoho způsobů, jak tuto úlohu vykonat, ale použití příkazu Get-ADComputer je spolehlivá volba, protože poskytuje skutečně bohatou sadu dat o každém uzlu:

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

Pokud rychlost provozu ve velkých sítích způsobuje problémy, může se použít reverzní systémový dotaz DNS:

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

Použití PowerShellu pro zvýšení oprávnění místních účtů

Tato metoda výpisu uzlů 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 nesleduje vnitřní DNS dotazy na podezřelé výskyty aktivit.

Krok 2: Výběr cíle

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

Použití PowerShellu pro zvýšení oprávnění místních účtů

Soudě podle názvu, server ‘HUB-FILER’ se zdá být zajímavým cílem, protože souborové servery obvykle časem akumulují velké množství síťových složek a nadměrného přístupu k nim příliš širokého spektra uživatelů.

Prohlížením pomocí Průzkumníka Windows můžeme zjistit, zda existuje otevřená sdílená složka, ale naše aktuální účet nemá přístup k ní (pravděpodobně máme práva pouze na výpis).

Krok 3: Zkoumáme ACL

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

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

Výsledek provedení:

Použití PowerShellu pro zvýšení oprávnění místních účtů

Z toho vidíme, že skupina Uživatelé Domény má přístup pouze na výpis, ale skupina Helpdesk má také práva na změnu.

Krok 4: Identifikace Účetních Záznamů

Spuštěním Get-ADGroupMember, získáme všechny členy této skupiny:

Get-ADGroupMember -identity Helpdesk

Použití PowerShellu pro zvýšení oprávnění místních účtů

V tomto seznamu vidíme účet počítače, který jsme již identifikovali a k němuž jsme již získali přístup:

Použití PowerShellu pro zvýšení oprávnění místních účtů

Krok 5: Používáme PSExec k práci z účtu počítače

PsExec od Microsoft Sysinternals umožňuje vykonávat příkazy v kontextu systémového uživatelského účtu SYSTEM@HUB-SHAREPOINT, který, jak víme, je členem cílové skupiny Helpdesk. To znamená, že stačí vykonat:

PsExec.exe -s -i cmd.exe

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

Krok 6: Odhalení tohoto útoku

Tato konkrétní zranitelnost nastavení práv účtů (účty počítačů, které přistupují ke sdíleným síťovým složkám místo uživatelských nebo služebních účtů) může být odhalena. Nicméně bez správných nástrojů to může být velmi obtížné.

K odhalení a prevenci této kategorie útoků můžeme použít DatAdvantage k identifikaci skupin s počítačovými účty v nich a poté omezit k nim přístup. DatAlert pokračuje a umožňuje vytvořit upozornění specificky pro tento scénář.

Na níže uvedeném snímku obrazovky je vidět uživatelské upozornění, které se aktivuje při každém přístupu počítačového účtu k datům na sledovaném serveru.

Použití PowerShellu pro zvýšení oprávnění místních účtů

Následující kroky pomocí PowerShellu

Chcete se dozvědět více? Použijte kód na odemčení „blog“ pro bezplatný přístup k celému video kurzu PowerShell a Základy Active Directory.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster