Dla pewności: czy masz tytuł prawny do używania Funkcjonariusza? Zerknij na tą stronę, zanim przejdziesz dalej.
Eksfiltracja danych z ~5000 komputerów jest wyzwaniem. Aby podejść do tego wyzwania z sensem, potrzebujesz nie tylko szczegółowego planu działania, ale również odpowiedniej ilości sprzętu. Na tej stronie znajdziesz szczegółową instrukcję, dzięki której wyliczysz ilość potrzebnych nośników na eksfiltrowane dane (z kolei tutaj znajdziesz nasze rekomendacje co do wyboru modeli dysków SSD najbardziej właściwych w danej sytuacji).
Szyfrowanie dysków twardych staje się z roku na rok coraz bardziej popularne. Szczególnie od roku 2018, gdy zaczęło obowiązywać RODO, szyfrowanie dysków w większych firmach stało się de facto standardem dla laptopów i innych urządzeń mobilnych, zabezpieczanych w ten sposób na wypadek kradzieży urządzenia.
Funkcjonariusz wspiera 4 najbardziej istotne metody szyfrowania. Oczywiście samo "wsparcie" nie wystarczy - aby możliwa była eksfiltracja danych z zaszyfrowanego dysku, potrzebujesz kluczy szyfrujących (najczęściej w postaci hasła, lub tzw. klucza odzyskiwania). Funkcjonariusz zapewnia pełną automatyzację obsługi takich kluczy (np. automatyczne wyszukanie klucza pasującego do danego dysku), ale Twoją rolą jest dostarczenie kluczy.
W firmach operujących setkami lub tysiącami komputerów, standardem jest zarządzanie użytkownikami i samymi komputerami za pomocą Microsoft Active Directory (czyli za pomocą tzw. domeny), bardzo często obudowanego narzędziami wspomagającymi zarządzanie grupowe typu ManageEngine, wzmacniającymi bezpieczeństwo typu CyberArk, i innymi.
Środowisko Active Directory jest najbardziej oczywistym miejscem składowania kluczy odzyskiwania do dysków zaszyfrowanych Bitlockerem (klucze te są standardowo replikowane do AD DS podczas instalacji nowych komputerów). Klucze te można potem znaleźć w pliku ntds.dit
, który znajduje się na każdym tzw. kontrolerze domeny (DC, Domain Controller) - a serwery z tą rolą, z uwagi na swoją krytyczność najczęściej nie mają zaszyfrowanych dysków.
Plik ntds.dit
jest główną bazą danych całego środowiska AD i jako taki, jest chroniony przed bezpośrednim dostępem, a w konsekwencji kradzieżą. Nie oznaczy to jednak, że nie da się dostać do jego zawartości. Można np. odzyskać jego kopię z Volume Shadow Copy, albo wykonać jego zrzut poleceniem ntdsutil
. A mając już kopię tego pliku, można wyciągnąć z niego hasła FVE Bitlockera tym skryptem.
Czasami zamiast Active Directory, używane są inne systemy tzw. usług katalogowych. Jednak niezależnie od używanego w danej firmie systemu, możesz się spodziewać, że proces zarządzania kluczami szyfrującymi jest w pełni zautomatyzowany. A zatem:
Zespoły mające dostęp do takich baz mogą się różnie nazywać, w zależności od organizacji całego IT w firmie - np. w firmach opartych na ITIL będzie to ServiceDesk, gdzie indziej może to być Helpdesk, IT Support, Centrum Usług Wspólnych (Shared Services Center).
Powyższe ograniczenia sprawiają, że nawet jeśli zdołasz znaleźć pracownika z dostępem do takiej bazy i odpowiednio go "zmotywować", to sam proces zdobywania takiej bazy będzie najczęściej albo długotrwały (jeśli ma pozostać niezauważony), albo mocno ryzykowny. Przygotowując atak na dużą firmę, powinieneś wziąć to pod uwagę jako jedno z zagrożeń dla całego planu.
Funkcjonariusz wspiera 4 metody szyfrowania - wygląd klucza w każdej z nich jest inny:
123456-123456-123456-123456-123456-123456-123456-123456
ABCD-1234-5678-90AB-CDEF-1234
Hasła tworzone samodzielnie przez użytkownika, w przeciwieństwie do kluczy odzyskiwania, mogą mieć całkowicie różną postać - natomiast na podstawie samej postaci można wyciągnąć ciekawe wnioski, np.:
August!2021
- tego typu hasła sugerują dwie rzeczy:WAW.1817
- tego typu hasła sugerują trzy rzeczy:MyVCBootPassword123
- nawet nie patrząc na treść tego hasła, już sama jego budowa (brak znaków specjalnych i łatwa do zapamiętania forma) sugeruje, że jest to hasło do wpisywania ręcznego (którego nie można wkleić przez schowek)R3c0ve4y_p@sSw0rd
- jeśli treść hasła jest jakimś twierdzeniem, najprawdopodobniej jest ono prawdziwe (a przynajmniej użytkownik uznaje je za prawdziwe)mStVIozEkbCTq1KYqElbkkd3TKQGpRak
- długie i całkowicie losowe ciągi znaków sugerują dwie rzeczy:Zanim odkupisz od pracownika (czy kogokolwiek innego) bazę kluczy odzyskiwania lub haseł, zweryfikuj 3 aspekty:
Czy te hasła/klucze pasują do którejś z metod szyfrowania obsługiwanych przez Funkcjonariusza? Jeśli nie, będą bezużyteczne, albo w najlepszym wypadku ich obsługę trzeba będzie samodzielnie zaimplementować.
Jak te hasła/klucze wyglądają? I czy są to same hasła, czy też są powiązane z innymi danymi? A jeśli tak, jakimi? Przede wszystkim:
1234
, 123456
)Pamiętaj że numery seryjne dysków twardych różnych producentów mają bardzo różną formę, np.:
WD-WXB1HB4WRMM5
(Western Digital, dyski konsumenckie i USB)3WGMWHCJ
(Western Digital, dyski serwerowe i linia produktów HGST)5NK0071W
(Seagate)S1XWJ1KS928872
(Samsung)4C530001311104105165
(SanDisk)OCZ-481V7ELJU81890TW
(OCZ)P02012409004
(Plextor)W przypadku kluczy odzyskiwania do Bitlockera lub Apple FileVault jesteś w o tyle lepszej sytuacji, że:
Funkcjonariusz na chwilę obecną (grudzień 2021) nie obsługuje żadnych kluczy sprzętowych:
Natomiast kody PIN najczęściej służą do odblokowania właściwego klucza w module TPM - więc Funkcjonariusz nie będzie w stanie ich wykorzystać.
Możesz załadować na dysk z Funkcjonariuszem same hasła, bez jakichkolwiek dodatkowych danych - wtedy jednak dla każdego zaszyfrowanego dysku Funkcjonariusz będzie musiał po kolei sprawdzić wszystkie załadowane hasła (gdy już zdoła to hasło dopasować, przypisze je do dysku na przyszłość - ale musi to być robione dla każdego dysku i hasła osobno). Ma to sens, jeśli udało Ci się pozyskać np. 10 czy 30 haseł do kluczowych komputerów, ale już mając np. 1600 haseł do wypróbowania na 1600 zaszyfrowanych komputerach, będzie to kompletnie niepraktyczne czasowo.
Jeśli nie jesteś w stanie pozyskać kluczy połączonych z konkretnymi dyskami twardymi, nadal możesz próbować ograniczać ilość kluczy do przetestowania na każdym z eksfiltrowanych komputerów, poprzez podział posiadanej listy kluczy na mniejsze kawałki w oparciu o takie informacje, jakie udało Ci się nt. tych kluczy zdobyć - np. w oparciu o:
Stosując tego typu techniki, zamiast np. 5240 kluczy Bitlocker do przetestowania na każdym komputerze, możesz mieć np.:
Generalnie, im więcej wiesz o atakowanej firmie, tym krótsze listy haseł jesteś w stanie przygotować.
Gdy zebrałeś już całą potencjalnie przydatną wiedzę o firmie i wszedłeś w posiadanie listy haseł/kluczy, czas na konfigurację dysków z Funkcjonariuszem.
Ten artykuł szczegółowo opisuje, w jaki sposób Funkcjonariusz przechowuje i obsługuje klucze:
Jeśli masz jakieś klucze skojarzone z konkretnymi dyskami, możesz je skonfigurować za pomocą skryptu save-drive-encryption-key.sh
, albo bezpośrednio wgrać pliki w odpowiednim formacie do katalogu z kluczami.
Natomiast w przypadku pozostałych (nieskojarzonych) kluczy:
Przyjrzyj się im i podziel je na klucze odzyskiwania do Bitlockera i Apple FileVault, oraz hasła LUKS, VeraCrypt i inne wg tego opisu. Poszczególne grupy kluczy zapisuj w osobnych plikach.
Przyjrzyj się przykładowym repozytoriom konfiguracyjnym. Następnie na ich podstawie, dla poszczególnych grup kluczy utwórz prywatne repozytoria zawierające pliki o nazwach:
Przemyśl, które grupy kluczy można ze sobą bezpiecznie połączyć (tj. tak aby obniżyć koszty zakupu dysków, ale nie wydłużać niepotrzebnie procesu skanowania haseł).
Przygotuj odpowiednią liczbę dysków z Funkcjonariuszem. Po zakończeniu podstawowej instalacji Funkcjonariusza, zainstaluj wybrane repozytoria prywatne, które mają znaleźć się na danym urządzeniu, zgodnie z wcześniej przygotowanym podziałem.
Dobór właściwych osób do roli operatorów ataku, to temat wychodzący poza zakres tej strony. Natomiast kilka poniższych, generalnych rad powinno pomóc Ci ograniczyć ewentualne straty związane z wyborem niewłaściwej osoby:
Możesz podzielić posiadane listy kluczy na tyle osobnych repozytoriów, ile tylko chcesz - np. możesz podzielić klucze Bitlockera na osobne pliki bitlocker.keys
dla każdego piętra czy wręcz pokoju w ramach siedziby atakowanej firmy. Tak aby każdy operator przydzielony do jakiegoś piętra czy listy pokojów miał własne dyski z Funkcjonariuszem, z unikalnym zestawem "swoich" kluczy. Dzięki temu po pierwsze ograniczysz zakres ewentualnego wycieku, a po drugie po kluczach będzie można łatwo dojść do osoby za niego odpowiedzialnej.
Dobrym pomysłem jest tworzenie osobnych kluczy deploymentowych do prywatnych repozytoriów Git z kluczami do dysków. Dzięki temu będziesz mógł łatwo "odłączyć" dysk z Funkcjonariuszem od otrzymywania przyszłych aktualizacji w razie, gdyby wpadł w niewłaściwe ręce.
Możesz też całkowicie zrezygnować z zarządzania kluczami za pomocą repozytoriów Git i napisać własny mechanizm do zarządzania wieloma grupami kluczy na wielu urządzeniach z Funkcjonariuszem. Na tej stronie znajdziesz podpowiedzi odnośnie sposobu działania konfiguracji kluczy w Funkcjonariuszu.
Funkcjonariusz pozwala na szyfrowanie partycji docelowej na dane za pomocą LUKS, oraz ustawienie nawet 8 osobnych haseł. Dobrym pomysłem jest ustawienie indywidualnych haseł dla każdego dysku, a co najmniej dla każdego operatora.
Na koniec kilka ogólnych rad odnośnie wyboru właściwych osób: