Podstawowe zapytania

https://chacker.pl/

Aby pomóc Ci nauczyć się wysyłać zapytania do Kibany (interfejs użytkownika Elasticsearch), dajmy mu coś ciekawego do znalezienia. Otwórz hosta Win10 z poziomu interfejsu internetowego Guacamole, bezpośrednio na maszynie wirtualnej (w przypadku laboratoriów opartych na hoście) lub za pośrednictwem protokołu RDP (jeśli korzystasz z laboratorium w chmurze). Na hoście Win10 otwórz Eksploratora i przejdź do folderu c:\users\vagrant\tools, jak pokazano poniżej:

Kliknij dwukrotnie plik mimikatz.exe. Program ten umożliwia wyświetlanie haseł użytkowników systemu w postaci zwykłego tekstu. Wpisz następujące polecenia w konsoli Mimikatz:

Teraz, wracając na stronę internetową Kibana, powinieneś móc zobaczyć wydarzenie, wpisując mimikatz.exe w górnym panelu wyszukiwania strony Odkryj, z wybranymi ramami czasowymi Ostatnie 15 minut po prawej stronie:

Teraz możemy zrobić coś więcej; możemy użyć pól w dzienniku, aby znaleźć to w ten sposób. W górnym polu wyszukiwania wpisz nazwa procesu:”mimikatz.exe” i identyfikator zdarzenia:1 i naciśnij ENTER. Powinieneś zobaczyć takie same wyniki. Po lewej stronie ekranu wybierz strzałkę w dół obok etykiety dzienników* i wybierz nasz indeks, dzienniki* Gray Hat. Powinieneś nadal zobaczyć ten sam wynik. Teraz jest dużo więcej do nauczenia się o Kibanie i Elasticsearch, ale to są podstawy, które musisz znać na razie.

Podstawy Kibany

https://chacker.pl/

Wzorce indeksów są używane przez Kibanę do uzyskiwania dostępu do danych w Elasticsearch. Określa grupowanie danych (do przeszukiwania) i sposób definiowania pól (poprzez właściwości). Pokażemy, jak tworzyć wzorce indeksów, a następnie jak używać Kibany do podstawowych zapytań.

Wzory indeksów

Często przydatne jest tworzenie własnych wzorców indeksowania w Elasticsearch. Zacznij od wybrania logo Kibana w lewym górnym rogu, aby przejść do strony głównej. Następnie przewiń w dół i wybierz opcję Index Patterns:

Następnie wybierz przycisk Utwórz wzór indeksu po prawej stronie:

Następnie wykonaj krok 1 z 2, filtrując dostępne źródła dzienników. W naszym przykładzie utworzymy po prostu główny indeks wszystkich logów zaczynający się od „log”. Wpisz log* w polu wzorca indeksu, a następnie kliknij Następny krok:

Następnie wykonaj krok 2 z 2, wskazując, na którym polu przeprowadzić filtry czasowe. Wybierz @timestamp, aby było to proste. Wybierz listę rozwijaną Opcje zaawansowane i nadaj nazwę nowemu indeksowi. W tym przypadku nazwaliśmy to dziennikami* Szary Kapelusz. Następnie kliknij opcję Utwórz wzorzec indeksu.

W ten sposób mamy własny indeks. To mogło nie wydawać się imponujące, szczególnie biorąc pod uwagę, że Elasticsearch stworzył już dla nas indeks o nazwie logs-*. Jednak w przyszłości możesz chcieć utworzyć własne indeksy (na przykład dla mniejszego zestawu źródeł logów lub dla logów z konkretnego dnia lub tygodnia), aby przyspieszyć wyszukiwanie, ponieważ masz już podzbiór indeksowane dane.

Zainstaluj Winlogbeata

[wp_ad_camp_1}

https://chacker.pl/

Aby uzyskać logi do Logstash, a ostatecznie do dashboardu Kibana pokazanego na poprzedniej ilustracji, musisz zainstalować beaty (czyli filebeat, packagebeat, winlogbeat i inne). Dla naszych celów interesują nas logi plików systemu Windows, dlatego skorzystamy z winlogbeat. Używając terminala Guacamole (http://192.268.38.105:8080/guacamole) w przypadku laboratorium opartego na hoście lub protokołu RDP w przypadku laboratorium w chmurze, połącz się z serwerem WEF, a następnie pobierz i zainstaluj winlogbeat z https://www.elastic .co/downloads/beats/winlogbeat. Rozpakuj plik winlogbeat.x.zip do c:\program files\ i zmień nazwę rozpakowanego folderu na c:\programfiles\winlogbeat.Następnie na tym serwerze WEF otwórz w przeglądarce następujący plik i zapisz go zamiast domyślnego pliku winlogbeat.yml w folderze c:\programfiles\winlogbeat\:

Następnie zainstaluj i uruchom usługę z poziomu PowerShell, korzystając z uprawnień administratora:

Teraz sprawdź panel Usługi i upewnij się, że usługa działa, jak pokazano poniżej.

Jeśli wrócisz do pulpitu nawigacyjnego Kibana, jeśli klikniesz ikonę Odkryj znajdującą się po lewej stronie (druga ikona od dołu), powinieneś zobaczyć nowe dane z winlogbeat, jak pokazano poniżej.

Zainstaluj HELK

https://chacker.pl/

Możesz zainstalować HELK z terminala Logger (Linux). Jeśli masz laboratorium w chmurze, możesz użyć następującego polecenia:

W przeciwnym razie, jeśli masz lokalną wersję laboratorium, możesz uzyskać dostęp do powłoki SSH za pośrednictwem Vagrant (z poziomu administratora PowerShell):

Następnie, tak czy inaczej, możesz zainstalować HELK w następujący sposób:

W przypadku laboratoriów w chmurze adres IP zostanie ustawiony automatycznie. W przypadku laboratoriów opartych na hoście pamiętaj najpierw o sprawdzeniu adresu IP dla eth1, zanotuj go i użyj go w skrypcie, gdy zostaniesz poproszony o podanie adresu IP:

Teraz zainstaluj HELK:

Jeśli postępowałeś zgodnie z poprzednimi instrukcjami dotyczącymi chmury, wybierz opcję 2, jak pokazano poniżej. Później możesz poeksperymentować z innymi opcjami; są świetne, ale nie potrzebne tutaj.

Teraz uruchom przeglądarkę i uzyskaj dostęp do konsoli HELK (Kibana), albo z adresem IP pokazanym w poprzednim kodzie (jeśli laboratorium zbudowałeś lokalnie), albo z adresem publicznym w chmurze (jeśli korzystasz z chmury). Ponieważ w tej sekcji korzystamy z laboratorium opartego na hoście, użyjemy adresu IP https://192.168.38.105.

Rozglądając się po laboratorium

https://chacker.pl/

Niezależnie od tego, czy skonfigurujesz laboratorium na hoście w ramach 1, czy w chmurze w ramach 2, możesz teraz zacząć otwierać dostępne narzędzia i rozglądać się. Adresy IP i adresy URL są wymienione w Laboratorium 2. Dane uwierzytelniające do narzędzi laboratoryjnych i adresy IP lokalnych laboratoriów opartych na hostach można znaleźć pod adresem https://www.detectionlab.network/images/lab.png. (Ważne jest, aby pamiętać, że w przypadku lokalnych laboratoriów opartych na hoście dostęp do tych narzędzi będzie można uzyskać tylko z samego hosta, ponieważ dostęp tylko do hosta jest zapewniany przez eth1). Inne, już zainstalowane narzędzia znajdziesz na liście https ://www.detectionlab.network/usage/. Poświęć chwilę, żeby się rozejrzeć.

NOTATKA . Jeśli jedno z laboratoriów na hoście zawiesza się, co jest częste w przypadku VirtualBox, możesz po prostu je zamknąć, wybierając Wyłącz, a następnie uruchamiając vagrant reload [dc|wef|win10|logger] (wybierając zawieszoną maszynę wirtualną) z wiersza poleceń. Podczas moich testów zauważyłem, że nawet jeśli na siłę wyłączę hosta, początkowo polecenie przeładowania będzie narzekać na zablokowaną maszynę wirtualną, ale po kilku chwilach skrypt Vagrant ponownie się połączy i uruchomi ją ponownie.

Rozszerzanie swojego laboratorium

DetectionLab zawiera już większość narzędzi, których będziesz potrzebować, ale dodamy kilka, jak opisano w poniższych sekcjach.

HELK

Wersja myśliwska ELK, HELK, została opracowana przez Roberto Rodrigueza. Roberto i jego brat Jose poświęcili swoje życie badaniom nad bezpieczeństwem i naprawdę zmienili naszą dziedzinę. Autor jest wdzięczny za ich wkład i ma nadzieję podzielić się z Tobą odrobiną tej dobroci. Główną witryną HELK jest https://github.com/Cyb3rWard0g/HELK.

Zainstaluj laboratorium w chmurze

https://chacker.pl/

Jeśli nie masz dostępnych 16 GB pamięci RAM, będziesz chciał skorzystać z chmury. W tym laboratorium będziemy używać platformy Azure. Jako bonus za rejestrację otrzymasz środki w wysokości 200 USD, które należy wykorzystać w ciągu pierwszych 30 dni, czyli wystarczająco dużo czasu, aby kopnąć opony i sprawdzić, czy chcesz korzystać z laboratorium przez dłuższy czas. Jeśli jednak wolisz korzystać z AWS, repozytorium DetectionLab GitHub zawiera również łatwe instrukcje instalacji.

PRZESTROGA: Nie trzeba dodawać, że chmura nie jest bezpłatna i jeśli będziesz z niej korzystać poza posiadanymi środkami, poniesiesz znaczne opłaty. Dobra wiadomość jest taka, że ​​możesz wyłączyć obrazy, gdy ich nie potrzebujesz, aby zaoszczędzić koszty. Zostałeś ostrzeżony. Aby to zmienić, tym razem uruchomimy nasze instancje w chmurze z hosta Mac. Ponownie obsługiwany jest każdy host; wystarczy odwiedzić witrynę DetectionLab, aby zapoznać się z innymi systemami operacyjnymi. Aby uruchomić to laboratorium w chmurze (Azure), najpierw zainstaluj Brew, Terraform, Ansible, i narzędzia interfejsu wiersza polecenia platformy Azure

Pobierz kod źródłowy z repozytorium DetectionLab GitHub:

Skopiuj przykładowy plik tfvars i edytuj go, aby uwzględnić Twój adres IP (whatismyip.com) i informacje o lokalizacji pliku użytkownika:

Edytuj plik za pomocą swojego ulubionego edytora. Ponownie pamiętaj o zaktualizowaniu zmiennej ip_whitelist, a także lokalizacji kluczy publicznych i prywatnych, zmieniając „/home/user” na lokalizację pokazanego wyjścia generatora kluczy. Jeśli pominiesz ten krok, dostęp do laboratoriów zostanie zablokowany, ponieważ dostęp do laboratoriów będą miały tylko adresy IP z białej listy.

NOTATKA. Jeśli w przyszłości zmienisz swój adres IP, koniecznie przejdź do Azure Portal, wyszukaj „Sieciowe grupy zabezpieczeń” u góry, znajdź swoją grupę zabezpieczeń i tam zmień swój adres IP na regułach przychodzących. Następnie edytuj plik main.tf, aby zmienić rozmiar systemu Linux (aby uwzględnić późniejsze kroki). Wyszukaj w pliku main.tf następującą sekcję i upewnij się, że ostatnia linia została zmieniona z D1 na D2, jak pokazano:

Teraz skonfiguruj swoje konto Azure, jeśli jeszcze tego nie zrobiłeś. Jeśli masz już tam darmowe konto lub zostaniesz o to zapytany podczas rejestracji, będziesz musiał wybrać opcję Pay As You Go, ponieważ ta opcja jest wymagana do zwiększenia limitu procesora i pozwala na uruchomienie wymaganego rozmiaru i liczby maszyn laboratorium. W chwili pisania tego tekstu nadal będziesz otrzymywać kredyt w wysokości 200 USD do wykorzystania w pierwszym miesiącu (na przykład moje testy wykazały około 12,16 USD dziennie podczas opracowywania tego laboratorium). Tak długo, jak zamkniesz laboratoria, kiedy z nich nie korzystasz, powinieneś mieć mnóstwo korzyści z tego kredytu w wysokości 200 USD. Pamiętaj, jak wspomniano wcześniej, musisz zdawać sobie sprawę z kosztów przekraczających kwotę kredytu w wysokości 200 USD i odpowiednio je monitorować.

NOTATKA. Jeśli zapomnisz wybrać płatność zgodnie z rzeczywistym użyciem lub później pojawi się następujący błąd, konieczne będzie przejście do rozliczeń i przejście na opcję płatności zgodnie z rzeczywistym użyciem:

I Error: compute.VirtualMachinesClient#CreateOrUpdate: Failure  sending request: StatusCode=0 – Original Error: autorest/azure: Service returned an error. Status=<nil> Code=“OperationNotAllowed” Message=“Operation could not be completed as it results in exceeding approved Total Regional Cores quota. Additional details …

Więcej informacji na temat limitów przydziałów można znaleźć na stronie https://docs.microsoft.com/en-us/azure/azure-supportability/regional-quotarequests.” Następnie, aby uwierzytelnić się przy użyciu nowego konta Azure, uruchom następujące polecenie, które uruchomi witrynę internetową umożliwiającą uwierzytelnienie na platformie Azure:

% az login

Następnie utwórz klucz SSH, którego Terraform może używać do zarządzania systemem Logger (Linux), jak pokazano poniżej. Pamiętaj, aby nadać nowemu kluczowi hasło.

Następnie przechowuj klucz w ssh-agent (pamiętaj, że Terraform musi uzyskać dostęp do klucza bez hasła, a ssh-agent to umożliwia):

Na koniec możesz uruchomić laboratoria z wiersza poleceń, używając następującego kodu.

Teraz możesz wyświetlić dane wyjściowe skryptów, aby zobaczyć swoje adresy IP:

Jesteś prawie gotowy! Należy dokończyć aprowizację WEF, Win10 i DC. Aby to zrobić, najpierw przejdź do katalogu Ansible:

Teraz edytuj plik Inventory.yml za pomocą swojego ulubionego edytora, aby zaktualizować wartości IP x.x.x.x każdego hosta, używając wartości public_ip z polecenia wyjściowego Terraform. Pamiętaj, aby nie usuwać wcięć, ponieważ są one ważne. Następnie uruchom podręcznik Ansible, ustawiając najpierw zmienną środowiskową, aby obejść błąd w systemie macOS za pomocą Ansible:

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.