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:
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:
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:
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:
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:
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ń.
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.