Zainstaluj laboratorium na swoim hoście

https://chacker.pl/

W tym pierwszym laboratorium zainstalujemy laboratorium do wyszukiwania zagrożeń na naszym hoście.

W tym przypadku użyjemy systemu Windows, ale jak widać z wymagań wstępnych, obsługiwane są wszystkie systemy operacyjne. Jeśli nie masz dostępnych niezbędnych zasobów lub nie chcesz instalować laboratorium na swoim hoście, ale zamiast tego w chmurze, pomiń resztę tego laboratorium. Najpierw pobierz ze swojego hosta i zainstaluj VirtualBox,8, który jest używany z Vagrantem do uruchamiania obrazów.

UWAGA : Wyłącz Hypervisor, jeśli używasz VirtualBox na hoście z systemem Windows 10. Jest domyślnie włączona i uniemożliwia prawidłowe działanie VirtualBox.

Wystarczą domyślne ustawienia w VirtualBox. Nie ma potrzeby uruchamiania VirtualBoxa po instalacji, zrobią to za nas skrypty Vagrant. Następnie, jeśli korzystasz z systemu Windows (tak jak ja) i nie zainstalowałeś jeszcze gita, pobierz go i zainstaluj teraz.9 Następnie uruchom git bash, aby pracować z git i przejdź do katalogu głównego c:/:

$cd /c/

Odwiedź witrynę GitHub dla DetectionLab (https://github.com/clong/DetectionLab). Przeprowadzimy instalację, ale poświęć chwilę na przeczytanie zawartych tam wskazówek i pobranie plików (z naszego polecenia git bash):

Teraz pobierz i zainstaluj Vagrant dla swojego hosta.10 Twój host będzie musiał zostać ponownie uruchomiony po instalacji. To dobrze, ponieważ nie będziesz chciał, aby po uruchomieniu laboratoriów działały żadne inne aplikacje, ponieważ będziesz potrzebować całego 16 GB pamięci RAM.

UWAGA: jeśli nie masz 16 GB pamięci RAM lub jeśli masz już uruchomione duże aplikacje, te laboratoria nie będą działać. VirtualBox jest niestabilny, gdy w pełni wykorzystujesz pamięć RAM systemu. Jeśli tak się stanie, będziesz musiał zbudować swoje laboratoria w chmurze

Albo w git bash, albo w PowerShell, przejdź do folderu DetectionLab/Vagrant, a następnie edytuj plik Vagrantfile (aby dodać więcej pamięci RAM do rejestratora dla HELK) w następujący sposób. Pogrubione linie w kodzie pokazują, gdzie szukać w pliku konfiguracyjnym; inne pogrubione linie pokazują, co należy zmienić.

Następnie przygotuj skrypty Vagrant w następujący sposób, używając PowerShell, klikając prawym przyciskiem myszy PowerShell i wybierając Uruchom jako administrator:

UWAGA: Jeśli otrzymasz uprawnienia do skryptu lub błąd wykonania tego polecenia, będziesz musiał uruchomić „set-executionpolicy unrestricted”, a następnie wybrać opcję „A” z administratora PowerShell. Kiedy już skończysz, będziesz chciał ponownie włączyć tę politykę (ograniczona polityka set-execution).

Teraz, aby rozpocząć budowanie DetectionLab, po prostu przejdź do

c:\DetectionLab\Vagrant i uruchom vagrant w górę, jak pokazano poniżej. Załadowanie wszystkich maszyn wirtualnych zajmie około dwóch godzin, ale wystarczy to zrobić tylko raz.

Po zakończeniu działania skryptu PowerShell sprawdź, czy wszystkie systemy działają zgodnie z oczekiwaniami:

Jeśli po drodze napotkasz jakiekolwiek problemy, sprawdź stronę dotyczącą rozwiązywania problemów i znanych problemów

Podstawowe laboratorium wykrywania zagrożeń: DetectionLab

https://chacker.pl/

Najpierw zbudujemy podstawowe laboratorium do wyszukiwania zagrożeń na Twoim hoście lokalnym lub w chmurze.

Warunki wstępne

Ponownie  użyjemy czcigodnego DetectionLab autorstwa Chrisa Longa (clong), rozszerzonego o HELK i Mordor autorstwa Roberto Rodrigueza (Cyb3rWard0g). Warunki wstępne są następujące:

  • Obsługiwane są systemy Windows, Linux, macOS, Azure i AWS.
  • Ponad 55 GB wolnego miejsca na dysku.
  • Zdecydowanie zalecane jest co najmniej 16 GB pamięci RAM.
  • Włóczęga 2.2.9+.
  • Packer 1.6.0+ (wymagany tylko w przypadku budowania własnych pudełek).
  • VirtualBox 6.0+ (starsze wersje mogą działać, ale nie są testowane).
  • Zarejestrowana wersja VMware (działają tylko zarejestrowane wersje).

Wymagane jest dodatkowe oprogramowanie; Więcej informacji można znaleźć na stronie DetectionLab.

Opcje laboratoriów wykrywania zagrożeń

https://chacker.pl/

Dostępnych jest kilka metod tworzenia własnego laboratorium wykrywania zagrożeń. Można na przykład ręcznie skonfigurować wszystko, czego potrzebujesz do wyszukiwania zagrożeń, w tym serwery domen, stacje robocze i narzędzia bezpieczeństwa. Temu tematowi można by poświęcić całą książkę, zatem aby dyskusja była krótka, skupimy się na zastosowaniu metod zautomatyzowanych. Mimo to, jak zobaczysz, wciąż musimy zakasać rękawy i dostosować zautomatyzowane laboratoria. Jeśli chodzi o laboratoria automatycznego wyszukiwania zagrożeń, dwa projekty są mocno wspierane i warte uwagi: DetectionLab i HELK. Po pierwsze, DetectionLab1, stworzony przez Chrisa Longa (clong), jest dobrze wspierany przez kilku programistów i oferuje najszerszy wybór narzędzi i zautomatyzowane opcje instalacji na hoście lokalnym, za pośrednictwem kilku systemów operacyjnych i w chmurze. Po drugie, projekt HELK2 wraz z powiązanymi projektami, takimi jak Mordor, OSSEM i The ThreatHunter-Playbook, cieszy się dużym poparciem braci Rodriguez (Roberto i Jose) oraz wielu innych twórców (Open Threat Research Forge) i jest warte rozważenia i wykorzystania. Główna różnica między tymi dwoma projektami polega na tym, że DetectionLab to kompletne środowisko laboratoryjne ze wszystkimi wymaganymi narzędziami, ale koncentruje się na Splunk. Z drugiej strony HELK nie jest kompletnym środowiskiem laboratoryjnym. Zamiast tego jest to platforma analityczna (oparta na Elasticsearch7 i narzędziach), która może rozszerzyć istniejące środowisko laboratoryjne. Jeśli jednak szukasz największej elastyczności i możliwości instalacji lokalnej, powinieneś skorzystać z DetectionLab. Na koniec warto wspomnieć o wielu innych zautomatyzowanych laboratoriach, ale są one mniej obsługiwane, więc mogą występować problemy, które nie zostaną rozwiązane.

Budowa laboratorium wykrywania zagrożeń

https://chacker.pl/

Co to jest laboratorium polowania na zagrożenia? Polowanie na zagrożenia zostanie omówione w następnym rozdziale, ale zasadniczo jest to systematyczne polowanie na zagrożenia, które w innym przypadku nie byłyby widoczne w sieci, za pomocą technologii takich jak SIEM, IDS, IPS i tak dalej. Aby nauczyć się tego niezbędnego zestawu umiejętności, będziesz potrzebować bezpiecznego środowiska do gry — środowiska laboratoryjnego z zainstalowanymi wszystkimi wymaganymi narzędziami, w ramach zautomatyzowanego wdrożenia, które można szybko skonfigurować i zdemontować. W tym celu przeanalizujemy najnowsze i najlepsze opcje laboratorium wykrywania zagrożeń.

Streszczenie

https://chacker.pl/

Programy dowodzenia i kontroli oraz programy uruchamiające kod powłoki to dwa kluczowe narzędzia, z którymi muszą się zapoznać zespoły czerwone i etyczni hakerzy. Produkty C2 pozwalają na zdalną kontrolę hosta, a także łatwiejsze wykonywanie zadań poeksploatacyjnych. Programy uruchamiające pomagają nam wprowadzić naszych agentów C2 do systemów. Zrozumienie tego, a także tego, jak zbudować silne profile unikania sieci i ominąć EDR i AV w systemie, może pomóc nam zainstalować nasze narzędzia w systemach i zapobiec ich wykryciu i złagodzeniu. Im dłużej przebywamy w systemie bez wykrycia, tym większa szansa, że ​​nasze zadania zakończą się sukcesem.

Zabijanie produktów EDR

https://chacker.pl/

Niektóre rozwiązania EDR można wyłączyć lub wyłączyć. Inne mają funkcję zapobiegania manipulacji, która uniemożliwia zatrzymanie usług i odmowę pozwolenia na odinstalowanie lub zamknięcie usług. Jest to zazwyczaj część konfiguracji, dlatego każdy profil używany w produkcie może mieć inne ustawienia ochrony przed manipulacją. Testowanie, czy można wyłączyć te usługi, może wywołać alerty, ale może również zakończyć się sukcesem. Ponadto wiele nowszych technologii wymaga raportowania do chmury w celu monitorowania i uruchamiania alertów. Konfigurując reguły zapory sieciowej oparte na hoście, dodając wpisy do pliku hosts, modyfikując lokalne wpisy DNS i nie tylko, możesz zakłócić tę komunikację. To zakłócenie umożliwi Ci znalezienie sposobów na wyłączenie narzędzia bez konieczności raportowania Twoich działań do usługi monitorującej. Ponadto niektóre produkty mogą mieć usunięte sterowniki ze środowiska Windows, co jeszcze bardziej ogranicza widoczność. Niezależnie od tego, z jakim rozwiązaniem EDR masz do czynienia, najlepiej sprofiluj maszynę, na której się znajdujesz, zanim podejmiesz ryzykowne zachowanie. Ponieważ te produkty cały czas się zmieniają, jeśli nie jesteś zaznajomiony z systemem, przeprowadź badania na temat tego systemu, aby określić obejście rejestrowania, metody wyłączania i opcje dezinstalacji przed rozpoczęciem działań po eksploitacji w systemie.

Unikanie EDR

https://chacker.pl/

Wykrywanie i reagowanie na punkty końcowe (EDR) staje się coraz bardziej powszechne w środowiskach korporacyjnych. EDR zazwyczaj przygląda się zachowaniu plików binarnych w systemie, oprzyrządowując procesy za pomocą podłączonych interfejsów API, dzięki czemu może obserwować różne zachowania i oceniać, czy są one ryzykowne. Różne produkty łączą interfejsy API na różne sposoby, ale różnią się one również w każdym wdrożeniu. Ustawienia i wyjątki stosowane w każdej organizacji mogą się różnić. Dodatkowo zabezpieczenia samego rozwiązania EDR mogą być inne. Większość rozwiązań EDR posiada zarówno tryb detekcji, jak i blokowania. W zależności od stanu EDR Twoje testy mogą zostać zablokowane lub nie, nawet jeśli mają charakter ostrzegawczy.

Szablony C2

https://chacker.pl/

Systemy C2 często umożliwiają szablony komunikacji. Ponieważ HTTP jest najpopularniejszym protokołem komunikacji C2, ważne jest, aby podczas tworzenia szablonów komunikacji wiedzieć, gdzie najlepiej umieścić dane. Szablony określają lokalizacje, w których dane będą umieszczane podczas wysyłania i odbierania danych za pomocą systemu C2. Na przykład wiele systemów C2 umożliwia uruchomienie żądania GET dotyczącego meldowania się i pobierania poleceń, a także żądania POST w celu odesłania danych z powrotem. Przykładowe żądanie GET może wyglądać następująco:

Widzimy tutaj, że identyfikator serwera C2 może być zawarty w linii URI. Byłoby to łatwe do zobaczenia i dopasowania różnych zaangażowanych gospodarzy. Chociaż ta prosta formuła jest powszechna, lepiej byłoby umieścić wartości w pliku cookie. Pliki cookie nie są rejestrowane na wszystkich serwerach proxy i nie są pierwszą rzeczą, na którą ludzie patrzą w raportach, dlatego też wymagają dodatkowego kopania, aby je zobaczyć. Do wysyłania danych wiele osób korzysta z żądań POST, ponieważ dane znajdują się w ładunku. Sposób przedstawienia tych danych może wymagać przemyślenia. Bardzo prosty profil może wyglądać następująco:

Chociaż jest to podstawowa kwestia, większość krytycznych danych znajduje się w treści żądania POST, co oznacza, że ​​prawdopodobnie nie zostaną one nigdzie zarejestrowane. Ponieważ to jest zakodowane w standardzie base64, można go łatwo zdekodować za pomocą automatycznych narzędzi. Wybór lepszego schematu kodowania i szyfrowanie danych może utrudnić dekodowanie. Ponadto dopasowanie klienta użytkownika do domyślnej przeglądarki użytkownika, a następnie użycie podobnych nagłówków sprawi, że będzie wyglądać bardziej normalnie. Ponieważ ten szablon jest tak prosty, oczywiste jest, że jest to ruch C2. Jeśli jednak sprawisz, że żądania GET i POST będą wyglądać tak, jakby korzystały z interfejsu API REST lub innego rodzaju rzeczywistego ruchu HTTP, oprócz wybrania lepszych nagłówków i klienta użytkownika, możesz jeszcze lepiej to połączyć. Ogólnie rzecz biorąc, wybranie realistycznie wyglądającego profilu, a następnie użycie tych samych nagłówków, których używa zwykły użytkownik systemu, zwiększy szansę na uniknięcie wykrycia.

Protokoły alternatywne

https://chacker.pl/

Oprócz szyfrowania niektóre protokoły zapewniają lepszą analizę niż inne. Protokoły takie jak HTTP są dobrze rozumiane i mają wiele procedur obsługi, które je rozumieją. Inne protokoły mogą mieć inne kryteria inspekcji, a mieszanie protokołów dla pojedynczego systemu C2 może pomóc w dalszym dezorientowaniu obrońców. Na przykład DNS to kolejny powszechny protokół, ponieważ wiele organizacji nie ma dobrego monitorowania ani analiz DNS. Jednak DNS jest niezwykle zaszumiony, więc może być lepiej stosowany do sprawdzania i sygnalizowania niż do wysyłania dużych ilości danych. Połączenie DNS z innym protokołem, takim jak protokół strumieniowania w czasie rzeczywistym (RTSP) lub WebSockets, będzie oznaczać, że trzeba będzie przeanalizować wiele punktów danych, aby uzyskać pełny obraz tego, co robi Twój system C2. Używając profili wykorzystujących metodę okrężną dla nazw hostów, możemy spowodować, że obrońcy będą musieli również znaleźć wszystkie nazwy hostów używane przez zaatakowany system, aby poznać częstotliwość i wielkość ruchu opuszczającego organizację. Wybór dobrze udokumentowanych protokołów, dla których urządzenia sieciowe mogą mieć procedury obsługi, jeszcze bardziej zwiększy Twoje szanse na sukces. Kontrole obwodowe mogą przepuszczać tylko ruch, który rozumieją, więc użycie całkowicie niestandardowego protokołu C2 może zostać zablokowane, ponieważ w urządzeniach sieciowych nie ma programów obsługi, które poradziłyby sobie z tym konkretnym typem ruchu.