Użycie PowerShell do podnoszenia uprawnień lokalnych kont użytkowników

Użycie PowerShell do podnoszenia uprawnień lokalnych kont użytkowników

Podniesienie uprawnień to użycie bieżących uprawnień konta przez cyberprzestępcę w celu uzyskania dodatkowego, zazwyczaj wyższego poziomu dostępu w systemie. Choć podniesienie uprawnień może wynikać z wykorzystania luk w zabezpieczeniach typu zero-day, działań wysoko wykwalifikowanych hakerów prowadzących ukierunkowane ataki, lub dobrze ukrytego złośliwego oprogramowania, najczęściej jednak jest to efektem niewłaściwej konfiguracji komputera lub konta. Kontynuując atak, cyberprzestępcy wykorzystują szereg oddzielnych luk, co w połączeniu może prowadzić do katastrofalnego wycieku danych.

Dlaczego użytkownicy nie powinni mieć praw lokalnego administratora?

Jeśli jesteś specjalistą ds. bezpieczeństwa, to może się wydawać oczywiste, że użytkownicy nie powinni mieć praw lokalnego administratora, ponieważ:

  • Sprawia, że ich konta są bardziej podatne na różne ataki.
  • Sprawia, że te ataki są znacznie poważniejsze.

Niestety, w wielu organizacjach to wciąż bardzo kontrowersyjna kwestia, często towarzysząca burzliwym dyskusjom (patrz na przykład, mój przełożony mówi, że wszyscy użytkownicy powinni być lokalnymi administratorami). Nie wdając się w szczegóły tej dyskusji, uważamy, że cyberprzestępca uzyskał prawa lokalnego administratora w badanym systemie: albo przez exploit, albo dlatego, że maszyny nie były odpowiednio zabezpieczone.

Krok 1. Odwrotne rozwiązywanie nazw DNS za pomocą PowerShell.

Domyślnie PowerShell jest zainstalowany na wielu lokalnych stacjach roboczych i na większości serwerów Windows. I choć nie bez przesady uważany jest za niezwykle przydatne narzędzie do automatyzacji i zarządzania, równie dobrze może stać się niemal niewidoczną złośliwą małwarem bez plików, (programem do włamań, który nie pozostawia śladów ataku).

W naszym przypadku cyberprzestępca zaczyna wykonywać rekonesans sieciowy za pomocą skryptu PowerShell, kolejno przeszukując przestrzeń adresów IP w sieci, próbując ustalić, czy dany adres IP jest rozwiązany na węzeł, a jeśli tak, to jakie jest jego nazwa sieciowa.
Istnieje wiele sposobów realizacji tego zadania, ale użycie polecenia Get-ADComputer to niezawodna opcja, ponieważ zwraca naprawdę bogaty zestaw danych o każdym węźle:

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

Jeśli szybkość działania w dużych sieciach sprawia problemy, można użyć odwrotnego wywołania systemowego DNS:

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

Użycie PowerShell do podnoszenia uprawnień lokalnych kont użytkowników

Ta metoda enumeracji węzłów w sieci jest bardzo popularna, ponieważ większość sieci nie stosuje modelu bezpieczeństwa z zaufaniem zerowym i nie śledzi wewnętrznych zapytań DNS pod kątem podejrzanych wzrostów aktywności.

Krok 2: Wybór celu

Końcowym rezultatem tego kroku jest uzyskanie listy nazw hostów serwerów i stacji roboczych, które mogą zostać wykorzystane do kontynuowania ataku.

Użycie PowerShell do podnoszenia uprawnień lokalnych kont użytkowników

Sądząc po nazwie, serwer 'HUB-FILER' wydaje się być odpowiednim celem, ponieważ z upływem czasu serwery plików zazwyczaj akumulują dużą liczbę folderów sieciowych i nadmiarowy dostęp do nich zbyt szerokiego kręgu osób.

Przeglądając za pomocą Eksploratora Windows, możemy określić, czy istnieje otwarty folder udostępniony, ale nasze obecne konto nie ma do niego dostępu (prawdopodobnie mamy tylko prawa do listowania).

Krok 3: Badamy ACL

Teraz na naszym hoście HUB-FILER i docelowym folderze udostępnionym share możemy uruchomić skrypt PowerShell, aby uzyskać listę ACL. Możemy to zrobić z lokalnej maszyny, ponieważ mamy już uprawnienia lokalnego administratora:

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

Wynik realizacji:

Użycie PowerShell do podnoszenia uprawnień lokalnych kont użytkowników

Z tego widzimy, że grupa Użytkownicy Domeny ma dostęp tylko do listowania, ale grupa Helpdesk ma również prawa do modyfikacji.

Krok 4: Identyfikacja Kont Użytkowników

Uruchamiając Get-ADGroupMember, będziemy mogli uzyskać wszystkich członków tej grupy:

Get-ADGroupMember -identity Helpdesk

Użycie PowerShell do podnoszenia uprawnień lokalnych kont użytkowników

Na tej liście widzimy konto komputera, które już zidentyfikowaliśmy i do którego już uzyskaliśmy dostęp:

Użycie PowerShell do podnoszenia uprawnień lokalnych kont użytkowników

Krok 5: Używamy PSExec do pracy w kontekście konta komputera

PsExec od Microsoft Sysinternals pozwala na wykonywanie poleceń w kontekście konta systemowego SYSTEM@HUB-SHAREPOINT, które, jak wiemy, jest członkiem docelowej grupy Helpdesk. Wystarczy wykonać:

PsExec.exe -s -i cmd.exe

Teraz macie pełny dostęp do docelowego folderu HUB-FILERshareHR, ponieważ pracujecie w kontekście konta komputera HUB-SHAREPOINT. Z tym dostępem dane mogą być skopiowane na przenośne urządzenie pamięci lub w inny sposób wydobyte i przesyłane przez sieć.

Krok 6: Wykrywanie tej ataku

Ta konkretna luka w konfiguracji uprawnień kont użytkowników (konta komputerów, które uzyskują dostęp do wspólnych folderów sieciowych zamiast kont użytkowników lub kont usługi) może być wykryta. Jednak bez odpowiednich narzędzi jest to bardzo trudne do zrealizowania.

Aby wykryć i zapobiec tej kategorii ataków, możemy użyć DatAdvantage do identyfikacji grup z kontami komputerów w nich, a następnie zablokować do nich dostęp. DatAlert idzie dalej i pozwala na utworzenie powiadomienia specjalnie dla podobnego scenariusza.

Na zrzucie ekranu poniżej widać powiadomienie użytkownika, które uruchomi się przy każdym dostępie konta komputera do danych na monitorowanym serwerze.

Użycie PowerShell do podnoszenia uprawnień lokalnych kont użytkowników

Następne kroki z użyciem PowerShell

Chcesz się dowiedzieć więcej? Użyj kodu odblokowującego „blog”, aby uzyskać darmowy dostęp do pełnego kursu wideo PowerShell i Podstaw Active Directory.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster