Hipoteza, że ktoś inny niż administrator uruchomił PowerShell

https://chacker.pl/

W tym laboratorium postaramy się udowodnić hipotezę, że ktoś inny niż administrator uruchomił PowerShell. Pamiętaj, że może to być złośliwe lub nie, ale jest to dobry punkt wyjścia. W zależności od rozmiaru sieci możesz używać dużo programu PowerShell, ale powinieneś być w stanie odizolować użytkowników administratorów, a następnie wykryć innych użytkowników programu PowerShell. Nawiasem mówiąc, jest to dobry pierwszy krok, ale ostatecznie będziesz chciał monitorować i badać także wszystkie swoje działania administracyjne. W końcu, jeśli jedno z nich zostanie naruszone, osoba atakująca chciałaby wykorzystać swoje uprawnienia w sieci. Aby zapoznać się ze wszystkimi sposobami uruchomienia programu PowerShell, wracamy do naszego notatnika OSSEM Jupyter z laboratorium 9-1. Jeśli upłynął limit czasu, może być konieczne ponowne uruchomienie — w końcu jest darmowy! Sprawdzając framework MITRE ATT&CK, widzimy, że T1059.001 to technika lokalnego uruchamiania PowerShell:

Spójrzmy na diagram OSSEM tej techniki, jak pokazano poniżej. Wyrób sobie w tym nawyk.

Widzimy tutaj kilka ścieżek wykrywania wykonania programu PowerShell za pośrednictwem skryptów, wiersza poleceń i tworzenia procesów. Ponieważ w poprzednim rozdziale załadowaliśmy dane Mordoru, utwórzmy indeks. Kliknij ikonę K w lewym górnym rogu portalu Kibana, aby przejść do strony głównej; następnie przewiń w dół i kliknij opcję Wzorce indeksowania w obszarze Zarządzaj i administruj stosem elastycznym:

Następnie kliknij niebieski przycisk Utwórz wzór indeksu u góry ekranu:

Wpisz logs-indexme-2020.05.02* w polu Wzorzec indeksu, a następnie kliknij przycisk Następny krok:

W polu Nazwa pola filtru czasu wybierz @timestamp i kliknij przycisk Utwórz wzorzec indeksu:

Po utworzeniu indeksu możesz go wybrać po lewej stronie Panel Kibany. Następnie wyszukaj „powershell.exe” z filtrem EventID: 1 i zakresem dat, jak pokazano poniżej:

Teraz, gdy mamy już wszystkie dzienniki programu PowerShell.exe w naszym środowisku, możemy filtrować pod kątem określonej wartości pola indeksowanego; na przykład moglibyśmy otworzyć (rozwinąć) dziennik i przewinąć w dół do LogonID (0x3731f3). LogonID pozostaje stały przez całą sesję użytkownika i jest przydatny do śledzenia jego innych działań. Zatem najedźmy kursorem na lupę (ze znakiem plus), jak pokazano poniżej, a następnie wybierz opcję Filtruj według wartości.

Spowoduje to dodanie filtra dla LogonId: 0x3731f3, pokazując nam resztę logów. Następnie wyszukaj „cmd.exe”, jak pokazano poniżej, aby wyszukać aktywność wiersza poleceń:

Widzimy siedem trafień. Przewijając logi w dół, widzimy wskazówkę: pole ParentImage (plik, który został użyty do utworzenia bieżącego procesu) ma dziwną nazwę. Wygląda jak plik wygaszacza ekranu.

Teraz, szukając tej nazwy pliku, widzimy, że mamy pięć trafień. Przewijając te logi, widzimy naszego użytkownika: DMEVALS\pbeesly.

Teraz znamy tę użytkownika i nie jest ona administratorem. Nie powinna używać programu PowerShell, więc szukajmy dalej. Dodając jej nazwę użytkownika do zapytania w następujący sposób, w logach znajdujemy połączenia sieciowe:

Czego się nauczyliśmy? Dzięki inżynierii wstecznej dotychczasowego ataku dowiedzieliśmy się, że osoba atakująca wykonała następujące czynności:

  1. Użytkownik DMEVALS\pbeees został wykonany

„C:\ProgramData\victim\‮cod.3aka3.scr”.

  1. Ten plik otworzył połączenie sieciowe.
  2. Następnie ten plik otworzył cmd.exe.
  3. Cmd.exe otworzył PowerShell.

Jak widzieliście, zaczęliśmy od hipotezy, ale w trakcie tego procesu znaleźliśmy się w środku frameworka MITRE ATT&CK, w fazie wykonania. Następnie pracowaliśmy wstecz, aby znaleźć źródło działania oraz użytkownika i maszynę. Teraz prawdopodobnie nadszedł czas, aby skontaktować się z zespołem reagowania na incydenty i współpracować z nim w celu ustalenia zasięgu ataku, ponieważ na tym etapie mamy dopiero początek — przynajmniej do następnego laboratorium!

Wejdź do Mordoru

https://chacker.pl/

W tej sekcji użyjemy zestawów danych Mordoru8, które zainstalowaliśmy w poprzednim rozdziale i zaczniemy biegać jako łowcy zagrożeń. Aby przyspieszyć, wykorzystamy wcześniej zarejestrowane dane atakującego, zebrane latem 2020 r. przez Roberto Rodrigueza w oparciu o wcześniejsze prace z raportu MITRE Engenuity ATT&CK Evaluations. Załadujemy wcześniej nagrane dane dotyczące ataków APT. autorstwa Rodrigueza, aby symulować grupę APT w naszej sieci z perspektywy danych. Jest to potężne, ponieważ możemy zaoszczędzić czas na skonfigurowanie i wykonanie wszystkich tych poleceń.

Czołgaj się, chodź, biegaj

https://chacker.pl/

Do tej pory nauczyłeś się czołgać (ręcznie) i chodzić (za pomocą automatycznych skryptów autorstwa AtomicRedTeam). Znasz podstawy polowania na zagrożenia, ale tylko w przypadku jednej podtechniki MITER ATT&CK. Aby chodzić szybciej, musisz teraz poćwiczyć z innymi technikami, przepracowując środowisko MITRE ATT&CK, upewniając się, że masz właściwe źródła danych, emulując atak, a następnie ucząc się, jak identyfikować go w logach. Z biegiem czasu będziesz zdobywać coraz więcej doświadczenia, a co najważniejsze, dowiesz się więcej o tym, jak działają dzienniki systemu Windows.Aby uzyskać dodatkowe punkty, uzyskaj dostęp do plików i rejestru dla T1003.002. Poświęć chwilę na przepracowanie kilku kolejnych przykładów przy użyciu skryptów AtomicRedTeam.

Hipoteza, że ktoś skopiował plik SAM

https://chacker.pl/

W tym laboratorium będziemy szukać (polować) w oparciu o hipotezę, że ktoś skopiował plik SAM w naszej domenie. Aby przyspieszyć cykl uczenia się, użyjemy funkcji automatycznego testowania narzędzi AtomicRedTeam, zwanej Invoke-AtomicTest, aby przeprowadzić test w spójny sposób i oszczędzić nam pisania związanego z atakami. W administracyjnym oknie programu PowerShell na hoście z systemem Windows 10 skonfiguruj środowisko za pomocą następującego polecenia (skopiuj/wklej z https://detectionlab.network/usage/atomicredteam/).

Następnie wywołaj test, używając pojedynczego testu, wielu testów lub pełnej sekwencji testowej dla T1003.002, jak pokazano w poniższym kodzie. Argument – ShowDetailsBrief pokaże akcje testowe, ale ich nie wykona, więc warto to zrobić w pierwszej kolejności.

Poniższy obraz przedstawia całą sekwencję testową dla ostatniego polecenia:

Świetnie! Teraz uruchom pierwsze polecenie (test 1), bez – ShowDetailsBrief, aby wykonać atak, jak pokazano poniżej:

Ponieważ już wiemy, że istnieją trzy sposoby kopiowania pliku SAM – polecenie, plik i rejestr -— możemy wykorzystać te informacje, aby rozpocząć polowanie. Przypominamy, że identyfikatory zdarzeń 4688 i 4103 są wskaźnikami wykonania polecenia. Ponieważ już sprawdziliśmy 4688, wyszukajmy tym razem 4103. Otwórz konsolę Kibana i wyszukaj „HKLM\sam” i event_id:4103, a powinieneś zobaczyć kilka trafień, jak pokazano poniżej:

Poświęć chwilę na zapoznanie się z wynikami dziennika; w szczególności spójrz na pole Ładunek. Rozwiń dziennik i przewiń w dół, aby zobaczyć szczegóły, jak pokazano tutaj:

Teraz wiesz, jak wygląda ładunek programu PowerShell w formacie dziennika. Jeśli spróbujesz tego w swojej sieci produkcyjnej, wyszukasz te same dzienniki, ale bez ograniczeń dat.

Emulacja atakującego AtomicRedTeam

https://chacker.pl/

Skupmy się na skryptach AtomicRedTeam emulujących ataki MITRE ATT&CK T1003.002 (SAM). Korzystając z tej samej konfiguracji laboratoryjnej, co w rozdziale 8, wpisz „cd” do folderu c\Tools\AtomicRedTeam\atomics\T1003.002 na hoście z systemem Windows 10.

UWAGA Jeśli nie widzisz folderu c:\Tools, prawdopodobnie wystąpił problem podczas instalacji; w takim przypadku przejdź do systemu hosta i w oknie PowerShell administratora uruchom vagrant require win10. To samo dotyczy serwerów DC i WEF. Co więcej, jeśli laboratorium opisane w tym rozdziale zawiesza się, może być konieczne ponowne uruchomienie poprzez vagrant halt system name, a następnie vagrant up system name. Jeśli zdarza się to często, rozważ dodanie większej ilości pamięci RAM lub uruchomienie z chmury (z większą ilością pamięci RAM). Laboratoria działały zgodnie z oczekiwaniami na hostach z systemem Windows 10, ale przebieg może się różnić w przypadku innych systemów operacyjnych. W przeglądarce internetowej otwórz także następujący adres URL:

https://github.com/redcanaryco/atomic-redteam/blob/master/atomics/T1003.002/T1003.002.md

Przewiń w dół, aby zobaczyć, jak narzędzie AtomicRedTeam będzie emulować atak, lub możesz wpisać te polecenia ręcznie. Czy wyglądają znajomo? Powinny, ponieważ są to te same polecenia, które widzieliśmy na stronie frameworka MITRE ATT&CK.

Teraz w wierszu poleceń administratora (na hoście z systemem Windows 10) wpisz polecenia pokazane na poprzedniej ilustracji, aby ręcznie zasymulować osobę atakującą.

Teraz otwórz pulpit Kibana (z poprzedniego rozdziału). Następnie dodajmy kolumnę do naszej listy wyników Kibana, znajdując #event_id w polu wyszukiwania w panelu po lewej stronie i klikając przycisk Dodaj.

Odtąd na górze listy wyników wyszukiwania będziesz mieć event_id jako nagłówek. Odśwież stronę, aby ją zobaczyć.

Następnie wyszukaj polecenie „reg save HKLM\sam”. Pamiętaj, że aby uniknąć ukośnika odwrotnego, musisz użyć cudzysłowów. Upewnij się, że kliknąłeś kalendarz, a następnie wybrałeś Dzisiaj:

Powinieneś zobaczyć następujące wyniki wyszukiwania:

W wynikach wyszukiwania widzimy identyfikator zdarzenia jako 4688 (pomiń przecinek). Przypomnijmy sobie z pokazanego wcześniej diagramu OSSEM, że jest to jeden z oczekiwanych identyfikatorów zdarzeń dla wykonania polecenia. To kluczowa lekcja: tym razem znaleźliśmy „event_id”, szukając bardzo specyficznej techniki atakującego. Idąc dalej, będziemy pracować w innym kierunku. Rozwijając ten dziennik i przewijając nieco wyniki dziennika, widzimy rzeczywistą linię poleceń wpisaną przez osobę atakującą, zgodnie z oczekiwaniami:

Oczywiście jest to podstawowy przykład w czystym środowisku testowym, ale nie martw się. Następnie będziemy to zwiększać.

Wizualizacja źródeł danych za pomocą OSSEM

https://chacker.pl/

Zacznij od odwiedzenia :

https://ossemproject.com/dm/mitre_attack/attack_techniques_to_events.html.

Następnie najedź kursorem na ikonę statku rakietowego (wystrzelenia) w prawym górnym rogu strony i kliknij Binder, aby bezpłatnie uruchomić notatnik Jupyter na stronie Binder.

Ten notatnik Jupyter umożliwia interaktywne przetwarzanie języka Python i wszystkich powiązanych bibliotek na żywo, wygodnie i bezpiecznie w przeglądarce. Załadowanie zajmie chwilę (w końcu jest bezpłatne dzięki hojnym darowiznom osób wymienionych na górze strony witryny). Po załadowaniu zobaczysz następujący ekran. Kliknij szary blok kodu, a następnie kliknij przycisk Uruchom u góry lub naciśnij SHIFT-ENTER, aby przetworzyć ten blok kodu.

Ten notatnik Jupyter umożliwia interaktywne przetwarzanie języka Python i wszystkich powiązanych bibliotek na żywo, wygodnie i bezpiecznie w przeglądarce. Załadowanie zajmie chwilę (w końcu jest bezpłatne dzięki hojnym darowiznom osób wymienionych na górze strony witryny). Po załadowaniu zobaczysz następujący ekran. Kliknij szary blok kodu, a następnie kliknij przycisk Uruchom u góry lub naciśnij SHIFT-ENTER, aby przetworzyć ten blok kodu.

Po krótkim oczekiwaniu możesz kontynuować wykonywanie kolejnych bloków kodu (każdy wyjaśniony nagłówkiem i tekstem poprzedzającym blok), który wykorzystuje OSSEM do pokazania źródeł danych i komponentów podtechniki T1003.002. Dostosuj kod, aby przetestować T1003.002, jak pokazano poniżej. Na tym polega piękno notatników Jupyter: są dynamiczne i można z nimi eksperymentować, aby się uczyć.

Tutaj widzimy, że źródła danych poleceń, rejestru i plików są przydatne odpowiednio do wykrywania wykonania poleceń, dostępu do klucza rejestru systemu Windows i dostępu do plików. Teraz zmodyfikuj następny blok kodu, aby ponownie reprezentował podtechnikę T1003.002.

Teraz widzimy identyfikatory zdarzeń użyte do znalezienia aktywności powiązanej z podtechniką T1003.002. Jest to przydatne, ponieważ możesz teraz rozpocząć polowanie z tymi danymi, nie martwiąc się o inne identyfikatory zdarzeń. Istnieją trzy ścieżki wyszukiwania tego działania: pliki, rejestr systemu Windows i dzienniki wiersza poleceń. Wykonaj następne polecenie i przewiń w prawo okna danych, aby zobaczyć szczegóły danych graficznych. Będziesz musiał zmodyfikować kod w bloku, jak pokazano poniżej, dla T1003.002:

Po prawej stronie tej listy znajdują się kanały dziennika i powiązani z nimi dostawcy dzienników (źródła). Widzimy więc na przykład, że szukając trasy wykonania polecenia tego ataku, możemy wyszukać identyfikatory zdarzeń 4688 i 4103, odpowiednio dla wykonania wiersza poleceń i wykonania programu PowerShell. Te identyfikatory zdarzeń są uruchamiane, gdy użytkownik lub proces wykonuje polecenie, więc jesteśmy zabezpieczeni, gdy osoba atakująca pisze w wierszu poleceń lub wykonuje skrypty uruchamiające procesy w celu wykonania poleceń – co jest dobre. Zauważamy również, że dzienniki Sysmon zawierają identyfikator zdarzenia równy 1 dla tego działania. Okazuje się, że identyfikator zdarzenia 1 jest powiązany z całym tworzeniem procesów i jest w tym przypadku mniej szczegółowy, dlatego pozostaniemy przy dwóch pozostałych identyfikatorach zdarzeń. Przewijając nieco w dół, widzimy podobne dane dla technik, które uzyskują bezpośredni dostęp do SAM z rejestru:

Jeszcze niżej widzimy dane z technik związanych z bezpośrednim dostępem do pliku obiektu SAM:

Teraz nauczmy się innej techniki emulacji zachowania atakującego, aby poćwiczyć odnajdywanie go w dziennikach. Emulacja zagrożeń cybernetycznych (CTE) zwiększa siłę i naprawdę przyspiesza naukę.

Odświeżacz ramowy MITER ATT&CK: T1003.002

https://chacker.pl/

Przypomnisz sobie framework MITRE ATT&CK. Tutaj zastosujemy go do polowania na zachowania wrogie. Na początek przyjrzymy się podtechnice T1003.002, Zrzucanie poświadczeń systemu operacyjnego. Ta podtechnika opisuje, w jaki sposób przeciwnik może wyodrębnić informacje poświadczeń z Menedżera konta zabezpieczeń systemu Windows (SAM), albo z pamięci, albo z Rejestr systemu Windows, w którym jest przechowywany. SAM jest dużym celem dla atakujących z oczywistych powodów: zawiera lokalne dane uwierzytelniające hosta. Jak wyjaśniono w ramach, do pobrania SAM można użyć wielu zautomatyzowanych narzędzi lub wystarczy proste polecenie z okna wiersza poleceń administratora:

reg save HKLM\sam sam

reg save HKLM\system system

Przyjrzyjmy się, co OSSEM mówi nam o tej podtechnice.

OSSEM na ratunek

https://chacker.pl/

Z pomocą przychodzi projekt Open Source Security Event Metadata (OSSEM). Bracia Roberto i Jose Rodriguez stworzyli projekt OSSEM, aby pomóc naukowcom w udostępnianiu danych i analiz w standardowym formacie, dzięki czemu dziedzina mogła rozwijać się szybciej, bez straty czasu na tłumaczenie formatów dzienników istotnych dla bezpieczeństwa. Jak kilkakrotnie wspominaliśmy w tym rozdziale, jesteśmy winni braciom Rodriguez dług wdzięczności za wszystko, czego udzielili nam na tym polu. Projekt OSSEM jest podzielony na trzy części:

  • Common Data Model (CDM) Zapewnia wspólny schemat danych, wykorzystując encje schematu i tabele schematu, aby umożliwić abstrakcję logów (na przykład podczas omawiania dzienników sieciowych zdefiniowano encje HTTP, Port i User-Agent ).
  • Słowniki danych (DD) Kolekcje jednostek CDM i tabel, które definiują konkretny dziennik zdarzeń. Zdefiniowano wiele popularnych formatów dzienników, a Ty możesz dowolnie definiować własne.
  • Model danych wykrywania (DDM) Zbiór obiektów danych i relacji wymaganych do zdefiniowania zachowania atakującego, np. mapowania struktury MITRE ATT&CK na dzienniki. Włożono tutaj wiele pracy, aby ukończyć znaczną część ram (pamiętaj, że Twój udział i wkład są mile widziane).

Razem komponenty OSSEM umożliwiają nasze oparte na danych i polowanie na zagrożenia w oparciu o hipotezy. Jak zobaczysz za chwilę, możemy polegać na tym narzędziu, aby przyspieszyć naszą analizę i nie grzęznąć w formatach dzienników, nazwach pól i tak dalej. Korzystanie z OSSEM to prawdziwa oszczędność czasu.