Korzystanie z programu PowerShell w celu podniesienia uprawnień kont lokalnych

Korzystanie z programu PowerShell w celu podniesienia uprawnień kont lokalnych

Eskalacja uprawnień to wykorzystanie przez atakującego dotychczasowych uprawnień konta w celu uzyskania dodatkowego, zwykle wyższego poziomu dostępu do systemu. Podczas gdy eskalacja uprawnień może być wynikiem wykorzystania luk dnia zerowego lub pracy pierwszorzędnych hakerów przeprowadzających ukierunkowany atak lub dobrze zamaskowanego złośliwego oprogramowania, najczęściej jest to spowodowane błędną konfiguracją komputera lub konta. Rozwijając atak dalej, napastnicy wykorzystują szereg pojedynczych luk, które łącznie mogą doprowadzić do katastrofalnego w skutkach wycieku danych.

Dlaczego użytkownicy nie powinni mieć uprawnień administratora lokalnego?

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

  • Sprawia, że ​​ich konta są bardziej podatne na różne ataki
  • Sprawia, że ​​te same ataki są znacznie ostrzejsze

Niestety dla wielu organizacji wciąż jest to kwestia bardzo kontrowersyjna i czasami towarzyszą jej gorące dyskusje (patrz np. mój przełożony mówi, że wszyscy użytkownicy muszą być lokalnymi administratorami). Nie wchodząc w szczegóły tej dyskusji, uważamy, że osoba atakująca uzyskała uprawnienia lokalnego administratora w badanym systemie, albo w wyniku wykorzystania luki w zabezpieczeniach, albo dlatego, że komputery nie były odpowiednio chronione.

Krok 1Odwróć rozpoznawanie DNS za pomocą PowerShell

Domyślnie PowerShell jest instalowany na wielu lokalnych stacjach roboczych i na większości serwerów Windows. I choć nie bez przesady uważa się go za niezwykle przydatne narzędzie do automatyzacji i kontroli, równie dobrze potrafi przekształcić się w prawie niewidoczny bezplikowe złośliwe oprogramowanie (program hakerski, który nie pozostawia śladów po ataku).

W naszym przypadku atakujący rozpoczyna rekonesans sieci za pomocą skryptu PowerShell, kolejno iterując po sieciowej przestrzeni adresowej IP, próbując ustalić, czy dany adres IP odpowiada hostowi, a jeśli tak, to jaka jest nazwa sieciowa tego hosta.
Istnieje wiele sposobów wykonania tego zadania, ale przy użyciu polecenia cmdlet Otrzymać-ADComputer to solidna 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 prędkość w dużych sieciach stanowi problem, można użyć wywołania zwrotnego DNS:

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

Korzystanie z programu PowerShell w celu podniesienia uprawnień kont lokalnych

Ta metoda wyświetlania hostów w sieci jest bardzo popularna, ponieważ większość sieci nie stosuje modelu bezpieczeństwa o zerowym zaufaniu i nie monitoruje wewnętrznych zapytań DNS pod kątem podejrzanych impulsów aktywności.

Krok 2: Wybierz cel

Końcowym rezultatem tego kroku jest uzyskanie listy nazw hostów serwerów i stacji roboczych, których można użyć do kontynuowania ataku.

Korzystanie z programu PowerShell w celu podniesienia uprawnień kont lokalnych

Od tego czasu serwer „HUB-FILER” wydaje się godnym celem z biegiem czasu serwery plików z reguły gromadzą dużą liczbę folderów sieciowych i nadmierny dostęp do nich przez zbyt wiele osób.

Przeglądanie za pomocą Eksploratora Windows pozwala nam wykryć obecność otwartego folderu współdzielonego, ale nasze obecne konto nie może uzyskać do niego dostępu (prawdopodobnie mamy tylko uprawnienia do wyświetlania).

Krok 3: Naucz się list ACL

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

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

Wynik wykonania:

Korzystanie z programu PowerShell w celu podniesienia uprawnień kont lokalnych

Z niego widzimy, że grupa Użytkownicy domeny ma dostęp tylko do wpisu, ale grupa Helpdesk ma również prawo do zmiany.

Krok 4: Identyfikacja konta

Działanie Pobierz element ADGroupMember, możemy uzyskać wszystkich członków tej grupy:

Get-ADGroupMember -identity Helpdesk

Korzystanie z programu PowerShell w celu podniesienia uprawnień kont lokalnych

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

Korzystanie z programu PowerShell w celu podniesienia uprawnień kont lokalnych

Krok 5: Użyj PSExec, aby uruchomić jako konto komputera

PsExec od Microsoft Sysinternals pozwala na uruchamianie poleceń w kontekście konta systemowego SYSTEM@HUB-SHAREPOINT, o którym wiemy, że należy do grupy docelowej Helpdesk. Oznacza to, że musimy po prostu zrobić:

PsExec.exe -s -i cmd.exe

Cóż, wtedy masz pełny dostęp do folderu docelowego HUB-FILERshareHR, ponieważ pracujesz w kontekście konta komputera HUB-SHAREPOINT. Dzięki temu dostępowi dane można kopiować na przenośne urządzenie pamięci masowej lub w inny sposób pobierać i przesyłać przez sieć.

Krok 6: Wykrywanie tego ataku

Można wykryć tę konkretną lukę w zabezpieczeniach związaną z dostrajaniem uprawnień konta (konta komputerów uzyskujące dostęp do udziałów sieciowych zamiast kont użytkowników lub kont usług). Jednak bez odpowiednich narzędzi jest to bardzo trudne.

Aby wykryć i zapobiec tej kategorii ataków, możemy użyć Przewaga danych identyfikować grupy, w których znajdują się konta komputerów, a następnie odmawiać dostępu do nich. Alert danych idzie dalej i umożliwia utworzenie powiadomienia specjalnie dla tego rodzaju scenariusza.

Poniższy zrzut ekranu pokazuje niestandardowe powiadomienie, które będzie uruchamiane za każdym razem, gdy konto komputera uzyska dostęp do danych na monitorowanym serwerze.

Korzystanie z programu PowerShell w celu podniesienia uprawnień kont lokalnych

Kolejne kroki z PowerShell

Chcieć wiedzieć więcej? Użyj kodu odblokowującego „blog”, aby uzyskać bezpłatny dostęp do całości Kurs wideo Podstawy PowerShell i Active Directory.

Źródło: www.habr.com

Dodaj komentarz