O narzędziu


CrackMapExec to narzędzie wykorzystywane przez hackerów i testerów penetracyjnych w organizacjach na całym świecie. W środowisku cybersecurity uznawane jest za kompletny program, dzięki któremu można z powodzeniem dostać się do organizacji i uzyskać dostęp do najbardziej chronionych zasobów. Projekt narzędzia został stworzony w oparciu o kilka istniejących exploitów i skryptów służących do poruszania się po Active Directory. Wyposażony jest m.in. w moduł Mimikatz, co ułatwia kradzież i używanie zdobytych poświadczeń. Oparte na języku Python oprogramowanie open-source można pobrać tutaj. Istnieje również przekompilowana wersja specjalnie pod systemy Windows, mieszcząca się w jednym pliku binarnym. Po jej uruchomieniu witają nas następujące informacje o autorach.


Jedną z największych zalet CrackMapExec (CME) jest rozbudowana możliwość przeprowadzenia rozpoznania w środowisku. Ponadto możliwa jest integracja z modułami Empire i DeathStar, o których więcej w oddzielnym artykule. CME może więc służyć jako idealne narzędzie do ataku post-exploitation. Daje możliwości przejścia całej ścieżki Killchain od fazy rozpoznania, aż do przejęcia kontroli nad domeną. Aby lepiej poznać i zrozumieć możliwości tego narzędzia przyjrzyjmy się bliżej konkretnym przykładom.


Możliwości narzędzia


W naszym scenariuszu zakładamy oczywiście, że udało nam się dostać już do organizacji, poprzez na przykład kampanie phishingowe i uzyskać poświadczenia jednego ze zwykłych użytkowników. Na stacji roboczej podłączonej do domeny uruchamiamy nasze oprogramowanie.

Narzędzie daje nam bardzo duże możliwości „zwiadowcze”. Możemy na przykład wskazać podsieć, którą chcemy sprawdzić po kątem możliwości zalogowania się na znajdujące się w niej stacje robocze i serwery. Podajemy w tym celu: adres podsieci, nazwę konta użytkownika oraz jego hasło:

Próby logowania się na wszystkie komputery w danej podsieci

Przy okazji dowiedzieliśmy się o nazwach serwerów w podsieci/domenie oraz o systemach operacyjnych na nich działających. CME odpytuje serwery protokołem SMB po porcie 445. Oczywiście zobaczymy tylko hosty, które będą w danej chwili online.

Kolejną rzeczą niewymagającą żadnych uprawnień czy specyficznej wiedzy o środowisku jest wylistowanie wszystkich udostępnionych zasobów na hostach we wskazanej podsieci:

Listowanie wszystkich udostępnionych zasobów w danej podsieci i uprawnień do nich

Dodatkowo dostajemy informację o naszych uprawnieniach do tych zasobów.

Następną ciekawą komendą jest użycie parametru —spider. Pozwala to na skanowanie zasobów plikowych pod kątem występowania podanego słowa kluczowego. Wskazujemy listę hostów oraz konto z uprawnieniami. Do wyboru mamy sprecyzowanie takich opcji jak: katalog który ma być przeskanowany, poziom głębokości skanowania, słowo kluczowe które ma być wyszukiwane. Dodatkowo możemy określić czy skanować tylko nazwy plików i folderów, czy przeszukiwać zawartości plików po słowie kluczowym, co znacznie wydłuży czas skanowania. Wyniki wyszukiwania plików ze słowem „password” przedstawiono poniżej:

Skanowanie systemu plików pod kątem zawartości słowa kluczowego

Robi się dużo ciekawiej w przypadku przechwycenia konta mogącego logować się do kontrolera domeny. Wtedy możemy bezpośrednio odpytywać kontroler o informacje potrzebne do przeprowadzenia znanych ataków w Active Directory.

Poniżej dwa takie przykłady. Pierwsza komenda wypisuje wszystkie konta użytkowników podając przy okazji ich identyfikator w domenie, ilość logowań oraz nieudanych prób wpisania hasła. Drugie polecenie listuje wszystkie grupy w domenie wraz z ich numerem RID:

Listowanie wszystkich kont użytkowników w domenie ze szczegółami odnośnie logowań
Listowanie wszystkich grup w domenie wraz z identyfikatorem RID

Narzędzie pozwala na wiele więcej. Możemy na przykład wykonywać ataki brute-force oraz password spraying, podając tylko listę loginów oraz listę haseł ze słownika pobranego z sieci. Program sam wykona próby logowania na określony system za pomocą podanych nazw użytkowników i haseł, oraz ze wskazaną ilością prób.

W celu dowiedzenia się o polityce haseł w organizacji również możemy posłużyć się tym wszechstronnym narzędziem i pobrać te informacje z kontrolera domeny:

Informacje o polityce haseł

Widzimy tutaj, że po 5 nieudanych logowaniach nastąpi zablokowanie konta oraz że minimalna długość hasła to 3 znaki. Takie informacje pomagają w atakach słownikowych.

Bardzo fajnym udogodnieniem w pracy z CME jest zapisywanie naszych działań do logów. Wszystkie wyniki komend są przechowywane w plikach testowych, tak aby można było łatwo przetwarzać zdobyte informacje. Co więcej, w logach przedstawione są szczegóły, np. z wywołań Mimikatza na targetowanych hostach. Możemy prześledzić jakie działania są wykonywane w celu wydobycia poświadczeń.

Logi zapisywane przez CME – tutaj widzimy wywołanie Mimikatz na hoście

Podsumowanie


CrackMapExec to zdecydowanie pozycja obowiązkowa dla osób zajmujących się testowaniem i łamaniem zabezpieczeń. Równie dobrze, aby pracownicy Bezpieczeństwa IT znali jego możliwości i wiedzieli jak wykryć takie niepożądane działanie w swoim środowisku. Rozpoznanie czy ataki za pomocą CME zostaną szybko wykryte poprzez narzędzia sieciowe stosujące Machine Learning, ale także przez narzędzia monitorujące aktywność procesu LSASS czy ruch Kerberos.