Funkcjonariusz: platforma open source do szybkiej eksfiltracji danych z komputerów, serwerów, telefonów, tabletów, aparatów cyfrowych i innych urządzeń USB.

kontakt@funkcjonariusz.com

Chciałbym zaatakować firmę X, która zatrudnia ok. 5000 pracowników. Od czego zacząć?

Kwestie prawne

Dla pewności: czy masz tytuł prawny do używania Funkcjonariusza? Zerknij na tą stronę, zanim przejdziesz dalej.

Kilka pytań kontrolnych na początek

Eksfiltracja danych z ~5000 komputerów jest wyzwaniem. Wymagającym nie tylko technicznie, ale też czysto fizycznie. Aby takiemu wyzwaniu sprostać, będziesz potrzebował:

  • dużo więcej niż jednego dysku z Funkcjonariuszem (patrz niżej)
  • wielu pomocników (podzielonych w jakiś sposób, np. wg biur atakowanej firmy - patrz więcej podpowiedzi)
  • zgromadzić jak najwięcej informacji o atakowanej firmie (aby optymalnie rozdzielić prace dla poszczególnych osób)
  • dobrego, szczegółowego planu

Jeśli myślisz o ataku na konkretną firmę, to przypuszczalnie masz już jakąś wstępną wiedzę na jej temat. Zacznij więc od odpowiedzi na następujące pytania kontrolne:

  • które (lub czyje) komputery w tej firmie są "interesujące" i dlaczego? które nie są?
  • czy są komputery "warunkowo interesujące"? co to za warunki? potrafisz to już teraz określić w kilku słowach?
  • z "interesujących" komputerów, które są najważniejsze? jesteś w stanie wypisać 10-20 najważniejszych?
  • czy "interesujące" komputery spełniają zasadę 80/20 (tj. że w razie czego możesz ograniczyć atak tylko do nich i osiągnąć np. 80-90% zakładanych korzyści), czy raczej zależy Ci na jak najszerszej eksfiltracji tego, co potencjalnie może się znajdować na wszystkich innych komputerach? albo nie da się z góry przewidzieć, kto z pracowników pracuje z najciekawszymi danymi?

Szczera (a zarazem konkretna, a nie ogólnikowa typu "komputery zarządu") odpowiedź na powyższe pytania pomoże Ci ustalić, czy naprawdę chcesz i potrzebujesz atakować całe ~5000 komputerów, czy może wystarczy punktowo zaatakować np. 10 czy 30 wybranych. Od tego zależy cała dalsza strategia ataku.

Co musisz wiedzieć, aby dobrze zaplanować operację?

Jeśli z powyższych pytań kontrolnych wyszło, że Twoim celem są wszystkie (albo duża część) komputery w firmie, zanim przejdziesz do właściwego planowania ataku, zbierz jak najwięcej informacji szczegółowych:

Biura i bezpieczeństwo fizyczne:

  • o fizycznych siedzibach firmy: podział na miasta, budynki, piętra, lokalizacja interesujących działów (kluczowe jest to, gdzie fizycznie są najbardziej interesujące Cię komputery, aby nie eksfiltrować wszystkich znalezionych komputerów jak leci, albo, co gorsza, nie robić tego chaotycznie i losowo)
  • ile interesujących komputerów znajduje się w którym mieście, budynku, na którym piętrze, i w którym segmencie chronionym (jeśli do poruszania się po budynku potrzebne są karty dostępowe)
  • jakie to komputery: stacjonarne czy laptopy? a może serwery? jakich marek? z systemem Windows, Linux czy Mac OS?
  • gdzie są miejsca pracy programistów, grafików, specjalistów od marketingu zajmujących się obróbką filmów i innych pracowników, którzy z jednej strony mają prawdopodobnie szybsze komputery, ale z drugiej trzymają na nich i obrabiają dużo większe ilości danych od całej reszty?
  • w jakich godzinach można spotkać w biurze najwięcej laptopów, które "po godzinach" są wynoszone do domów?
  • co z kamerami i innymi elementami bezpieczeństwa fizycznego? np. czy karty dostępowe są wymagane do poruszania się po całej siedzibie, czy tylko do wstępu do wybranych pomieszczeń? jesteś w stanie zdobyć taką kartę? w jakiej technologii są wykonane? da się je skopiować narzędziami typu Proxmark?
  • czy pomiędzy ważnymi miejscami jest kilka niezależnych przejść, czy tylko jedno? czy któreś z nich są niechronione (np. kamerami)? co z trasami ewakuacyjnymi na wypadek pożaru?

Bezpieczeństwo techniczne:

  • jak forma zarządza komputerami, użytkownikami, ich dostępami, hasłami itp.? Active Directory? integracja z Azure? nakładki typu ManageEngine lub podobne?
  • czy biurowa sieć LAN wymaga autoryzacji 802.1x albo ma inne zabezpieczenia? da się tak po prostu dostać IP po wpięciu do gniazdka? co "widać" z takiego IP: inne komputery obok, serwery biurowe, jakieś urządzenia typu rejestrator obrazu, dostęp do Internetu?
  • co z szyfrowaniem dysków? firma ma jakieś zasady odgórnie nakazujące szyfrowanie np. wszystkich laptopów, albo wszystkich urządzeń wynoszonych poza biuro? a co z komputerami stacjonarnymi, które nie opuszczają biura?
  • a może firma używa bardzo prostego schematu haseł do Bitlockera? jesteś w stanie zdobyć dostęp do dokumentów (np. protokołów przekazania komputerów pracownikom), w których zapisane są hasła do poszczególnych komputerów? a jeśli masz już taki dostęp i uzyskałeś kilka realnych haseł, czy jesteś w stanie zaobserwować w nich schematy i wygenerować kolejne hasła?

Bezpieczeństwo osobowe:

  • szukasz jakichś konkretnych informacji, czy chcesz wyciągnąć z firmy cokolwiek przydatnego lub wartościowego? od tego powinna zależeć Twoja strategia komunikowania się z poszczególymi pracownikami
  • czy jesteś w stanie znaleźć osobę, od której mógłbyś kupić klucze odzyskiwania do zaszyfrowanych dysków twardych? jak możesz ją do tego skutecznie "przekonać"?
  • co z innymi pracownikami? da się ich jakoś wykorzystać? ludzie to najsłabsze ogniwo wszystkich zabezpieczeń - nadal jednak musisz mieć plan, jak ich podejść i wykorzystać

Mając powyższą wiedzę, możesz zacząć myśleć nad planem całej operacji (planowanie wychodzi poza zakres tej strony).

Wybierz właściwy sprzęt

Aby skutecznie przeprowadzić atak o takiej skali i nie "wysypać się" na problemach technicznych, potrzebujesz wydajnego i stabilnego sprzętu. Spójrz na naszą listę polecanego sprzętu (omiń jednak pen drive'y, które nadają się głównie do skrytych, punktowych ataków na pojedyncze komputery).

Będziesz potrzebował poniższych kombinacji typów dysków i architektur sprzętowych:

Procesor USB 3.x NVMe Thunderbolt 3
64-bitowy ta kombinacja pozwala na eksfiltrację 80-95% komputerów opcjonalna, aby przyspieszyć eksfiltrację komputerów kompatybilnych z NVMe z bardzo dużą ilością danych (np. grafika i filmy) opcjonalna, aby przyspieszyć eksfiltrację Macbooków z procesorami Intela
32-bitowy do eksfiltracji starszych, 32-bitowych komputerów
ARM64 tylko dla Maców M1

Pamiętaj o własnym bezpieczeństwie, unikaj pozostawiania śladów

Partycja na eksfiltrowane dane na Twoim dysku jest zaszyfrowana, aby chronić te dane przed ewentualnym dostępem przez osoby trzecie - w tym m.in. przed możliwością udowodnienia eksfiltracji danych, szpiegostwa przemysłowego itp. Bez znajomości hasła nie jest możliwe udowodnienie faktu eksfiltracji danych ani odróżnienie Funkcjonariusza od zwykłego Kali Linuxa. Da się to udowodnić dopiero jeśli:

  • ktoś zna właściwe hasło LUKS (pamiętaj o https://xkcd.com/538/)
  • dysk został przechwycony na gorącym uczynku (Funkcjonariusz mógł już zakończyć pracę, ale komputer pozostaje cały czas włączony)
  • używasz nieszyfrowanej partycji
  • ktoś znajdzie jakąś formę "dokumentacji" ataku (np. rozpisane instrukcje dla wspólników, oznaczenia bezpośrednio na dyskach itp.)

Z tego ostatniego powodu, każdy dysk (w ramach jednego ataku) powinien być unikalny - tzn. unikalną kombinacją marki, modelu, pojemności i wreszcie koloru (jeśli są dostępne różne kolory, tak jak w przypadku dysków Samsung Portable SSD T5):

Nie powinieneś też w żaden sposób tych dysków oznaczać - każda etykieta, nawet najprostsza, może potencjalnie zostać użyta przez przeciwnika (np. prawników atakowanej firmy) do połączenia ze sobą faktów. Każde urządzenie użyte do ataku powinno wyglądać tak generycznie, jak to tylko możliwe: żadnej personalizacji, instrukcji, numerów itp.

Liczenie ilości i pojemności dysków potrzebnych do ataku

Jednym z najważniejszych "parametrów" skutecznego ataku jest poziom zrównoleglenia prac - czyli tego, ile komputerów jest eksfiltrowanych jednocześnie. Z tego też powodu, do większości ataków nie będziesz potrzebował dysków o pojemności 2TB, czy nawet większej. Lepiej mieć więcej mniejszych dysków, niż mniej większych:

  • im więcej dysków, tym szybszy atak (więcej komputerów można eksfiltrować jednocześnie)
  • im mniejsze dyski i mniej komputerów eksfiltrowanych na jeden dysk, tym mniejsze straty wynikające z utraty takiego nośnika (awarii, zagubienia, odebrania przy przeszukaniu itd.)
  • dyski SSD są mimo wszystko drogie, a ceny największych modeli (2TB, 4TB) rosną nieliniowo
  • zgodnie z powyższą tabelą kombinacji typów dysków i architektur sprzętowych, będziesz potrzebował od 3 do 5 różnych konfiguracji Funkcjonariusza, z czego główna konfiguracja statystycznie powinna pozwolić obsłużyć 80-95% komputerów, a cała reszta ma obsłużyć mniej lub bardziej nieliczne wyjątki - marnotrawstwem byłoby przeznaczanie na pozostałe konfiguracje dysków o pojemnościach 500GB, ew. w skrajnych przypadkach 1TB

Generalna zasada dotycząca wyliczania ilości i pojemności niezbędnych nośników jest prosta: im bardziej szczegółową wiedzę o firmie i jej poszczególnych działach posiadasz:

  • tym precyzyjniej możesz policzyć potrzebne dyski i ich pojemności
  • tym mniejszych rezerw dysków potrzebujesz (aby ograniczyć nadmiarowe koszty)
  • tym lepiej możesz dobrać pojemności indywidualnych dysków do konkretnych grup komputerów (aby jeszcze bardziej ograniczyć koszty)

Od czego zacząć?

Zacznij od najważniejszych informacji nt. ilości komputerów:

  • ile jest ich łącznie? (jeśli nie znasz dokładnej liczby, zacznij od przyjęcia pewnych założeń, np. 4500 plus/minus 3%, a potem staraj się ten procent stopniowo zawężać, analizując różne fragmentaryczne informacje, jakie udało Ci się zdobyć)
  • ile per miasto, budynek, piętro, segment chroniony itp.?
  • ile niestandardowego sprzętu (wymagającego obsługi przez konfiguracje inne niż podstawowa):
    • Maców (w szczególności modeli M1)
    • ze złączem Thunderbolt 3/4 (nie tylko Maców!)
    • komputerów bardzo starych (sprzed 2012 i/lub z 1GB RAM lub mniej)
    • komputerów ultraenergooszczędnych (z procesorami Intel Atom, VIA i podobnymi)
  • ile z ilością danych dużo większą od średniej (programiści, graficy, marketing, produkcja filmów, obróbka jakichś specjalistycznych danych itp.)

Gdy rozpiszesz zgrubne ilości, kolejnym krokiem będzie przygotowanie roboczej mapy siedziby. Na tym etapie nie musi to być mapa jakiejś szczególnej jakości - chodzi w niej tylko o dwie rzeczy:

  1. Odwzorowanie podziału siedziby na strefy chronione i poszczególne pokoje, do których wstęp jest chroniony kartami dostępowymi - nawet mając uprawnienia policyjne i prowadząc przeszukanie, taka ochrona dostępu najprawdopodobniej będzie spowalniać pracę całej ekipy. Stąd bardzo dobrym pomysłem jest takie zaplanowanie ścieżek i kolejności prac, aby poszczególni operatorzy poruszali się przede wszystkim wewnątrz jednej strefy chronionej - a do następnej przechodzili po zakończeniu prac nad wcześniejszą (zminimalizuje to straty czasu).

  2. Naniesienie powyższych informacji o ilościach (tych, które udało się zebrać) na powyższy podział na strefy chronione.

Mapa pojedynczego piętra przykładowej siedziby na tym etapie może wyglądać następująco:

Jeśli zebrałeś wystarczająco dużo informacji nt. atakowanej firmy, już na tym etapie powinieneś mieć zgrubną wizję ilości potrzebnego sprzętu, czasu i wielkości potrzebnej ekipy. Zanim przejdziesz dalej, zrób prosty eksperyment: pomnóż ilość sprzętu i wielkość ekipy przez 3. Jeśli zestawisz wynik tego mnożenia z publiczną wiedzą o firmie - czy zdroworozsądkowo te liczby są już na tyle duże, że na pewno nie zabraknie zasobów?

  • Jeśli tak - czyli jeśli rezerwa 200% od zakładanych parametrów jest zdroworozsądkowo wystarczająca, oznacza to, że idziesz w dobrym kierunku i możesz przejść dalej, stopniowo uszczegóławiając wiedzę i wyliczenia.
  • Jeśli nie (a tym bardziej "nie wiem") - oznacza to, że wiedza o firmie, jaką dotychczas zebrałeś, jest zbyt fragmentaryczna i chaotyczna, a co za tym idzie, wszelkie kolejne obliczenia będą obarczone coraz większym błędem. W takiej sytuacji wróć do fazy zbierania informacji o firmie.

Zanim przejdziesz dalej, warto jest jeszcze raz rozpisać roboczą mapę siedziby - ale tym razem w Excelu (albo innym narzędziu, które umożliwi Ci szybkie nanoszenie różnych poprawek bez stopniowej utraty widoczności).

Przykładowa firma

Przyjrzyjmy się 2 przykładowym piętrom siedziby fikcyjnej firmy - na ich podstawie niżej zrobimy przykładowe obliczenia:

Piętro Stanowisko/dział Sprzęt Spodziewana ilość danych Ilość stanowisk
8 Dział HR/recepcja laptop Windows (nieznany model, USB) Mała do średniej 2
8 Dział HR/rekruter Macbook Air, rok nieznany (ponownie USB) Średnia 11
8 Dział HR/specjalista ds. wynagrodzeń Macbook Pro, kolor Space Gray (co wskazuje na modele z Thunderbolt 3) Średnia 8
8 Dyrektor HR Macbook Pro, najnowszy model M1 (Thunderbolt 3) Średnia/nieco powyżej 1
7 Pracownik administracyjny laptop Windows, wyglądający dość staro (USB) Średnia 2
7 Inżynier CAD wysokiej klasy stacja robocza Windows, najprawdopodobniej z obsługą NVMe Bardzo duża 14

Czyli 16 pracowników na 7. piętrze i 22 pracowników na 8. piętrze. Dla ułatwienia załóżmy, że mamy do dyspozycji równe 10 godzin.

Przyjrzyjmy się dokładniej temu, co wiemy o pracownikach i komputerach

Zacznijmy liczyć to, co mamy w tabelce:

Na 8. piętrze mamy:
  • 19 Windowsów/Maców z możliwością eksfiltracji przez port USB, z ilością danych małą do średniej (gdzie cały atak włącznie z uruchamianiem powinien trwać poniżej 10 minut)
  • 1 Mac M1 ze złączem Thunderbolt 3, ilością danych trochę powyżej średniej (jednak na komputerze z procesorem M1 i złączem Thunderbolt 3 atak powinien trwać bardzo krótko, dla ułatwienia przyjmijmy jednak, że również "poniżej 10 minut")
Na 7. piętrze mamy:
  • 2 stare laptopy (możliwe że 32-bitowe) do eksfiltracji przez port USB (możliwe że 2.0), ze średnią ilością danych (atak w skrajnych przypadkach może potrwać nawet 15-20 minut)
  • 14 szybkich komputerów wspierających NVMe (załóżmy że udało się pozyskać ich dokładne modele i to potwierdzić), ale z setkami gigabajtów istotnych danych (gdzie atak nawet z użyciem dysków NVMe może potrwać od 0.5 do 1.5 godziny per komputer)

Obliczenia

Zacznijmy od prostego faktu: pojedynczy dysk 2TB podzielony przez 20 daje średni przydział pojemności 100GB na eksfiltrowany komputer.

Więc dla 8. piętra potrzebujesz:

  • 19 dysków USB, 64 bity, przydział pojemności do 100GB - wszystko to się zmieści na jednym dysku 2TB
  • 1 dysku Thunderbolt, ARM64, przydział pojemności do 200GB (typowy dysk wewnęrzny w Macach z procesorami M1 to 256 lub 512GB) - tu wystarczy jedna sztuka Samsung Portable SSD X5 Thunderbolt 3 500GB

Natomiast jak już zostało wspomniane wcześniej, lepiej mieć więcej mniejszych dysków, niż mniej większych - np. 4 dyski po 500GB

Natomiast dla 7. piętra potrzebujesz:

  • 1 dysku USB, 64 bity, bez konkretnych wymagań (500GB powinno w zupełności wystarczyć) - na oba laptopy pracowników administracyjnych
  • 1 dysku USB, 32 bity, na wypadek gdyby te laptopy były 32-bitowe albo miały problemy z 64-bitowym Kali Linuxem
  • 14 dysków NVMe, 64 bity, pojemność 1TB każdy - a ze względu na ograniczenia czasowe (maksymalnie 10 godzin), niezbędny jest podział prac na przynajmniej dwie osoby - co daje:
    • 7 dysków NVMe, 64 bity, pojemność 2TB każdy - każdy dysk ma obsłużyć po 2 komputery (jeden operator powinien eksfiltrować jednocześnie nie więcej niż 5-8 komputerów, niezależnie od długości ataku na każdym z nich)
    • 2 dyski USB, 64 bity, pojemność 2TB każdy - na wypadek, gdyby któraś z płyt głównych nie chciała współpracować z dyskami NVMe (aby móc przerzucić dane za pomocą tych dysków, po jednym na operatora, na docelowe NVMe)

Niezbędne dyski i ich pojemności

  • 6 * USB 500GB
  • 2 * USB 2TB
  • 7 * NVMe 2TB
  • 1 * Thunderbolt 500GB

Przypomnijmy na koniec najważniejszą zasadę: im bardziej precyzyjne informacje nt. atakowanej firmy zdobędziesz, tym mniej dysków będziesz musiał kupić jako rezerwę.

Ostrzeżenie

Jeśli masz już wystarczająco dużo informacji o firmie, którą planujesz zaatakować, z pomocą powyższych instrukcji powinieneś być w stanie podzielić ją w podobny sposób na miasta, budynki, piętra, działy itp., oraz określić zgrubne ilości komputerów. Jeśli nie jesteś w stanie tego zrobić, albo jeśli przekraczasz wspomnianą wyżej zasadę 200% rezerw, oznacza to, że najprawdopodobniej masz jednak zbyt mało informacji o tej firmie.

O ile zawsze możesz próbować przeprowadzić atak w pełni spontanicznie (zwłaszcza w Polsce, dzięki wyjątkowo sprzyjającemu prawu), o tyle niesie to za sobą bardzo duże ryzyko improwizacji (a w konsekwencji pozostawienia niepotrzebnych śladów), jak również osiągnięcia tylko niewielkiej części zakładanych celów. Ryzykujesz co najmniej odpowiedzialnością dyscyplinarną, więc zastanów się kilka razy, czy na pewno chcesz robić przeszukanie spontaniczne, bez szczegółowego planu działań.

Kilka porad na koniec

Pamiętaj że proces eksfiltracji komputera składa się z wielu faz, a poszczególne fazy różnią się pomiędzy komputerami różnych marek. Zrozumienie tych faz, choćby na bardzo ogólnym poziomie, jest niezbędne, aby dobrze wyznaczyć optymalną liczebność zespołu przeprowadzającego atak:

  • im więcej osób masz do pomocy, tym bardziej możesz zrównoleglić zadania i tym szybciej zakończyć atak
  • z drugiej strony, każda kolejna osoba to dodatkowe koszty i ryzyka:
    • trzeba ją wyszkolić
    • trzeba jej zapłacić (jeśli nie Ty, to np. Twój przełożony z budżetu jednostki lub innego)
    • może zeznawać przeciwko Tobie, gdyby coś poszło nie tak
    • rozproszenie wiedzy, bardziej skomplikowany plan, więcej zależności czasowych

Dlatego też, co do zasady, raczej powinieneś myśleć o zmniejszaniu zespołu, niż o jego powiększaniu.

Pamiętaj też, że w zależności od wielu różnych okoliczności, przeciętny operator Funkcjonariusza osiąga maksymalną wydajność, obsługując jednoczesną eksfiltrację od 2-3 do 6-8 komputerów. Na niektóre z tych okoliczności masz wpływ, na inne nie:

  • odległości do przejścia między pomieszczeniami, w których znajdują się kolejne komputery do eksfiltracji (kluczowe jest dobre opracowanie ścieżek w ramach planu całej operacji)
  • ilość przejść między strefami chronionymi (najlepszym rozwiązaniem jest zapewnienie wszystkim operatorom uniwersalnych kart dostępowych - jeśli nie będzie to możliwe, wówczas ponownie kluczowe jest dobre opracowanie ścieżek - w tym uwzględnienie toalet)
  • indywidualny poziom energiczności danego człowieka (można go nieco podnieść za pomocą napojów energetycznych - lepsze będą popularne ostatnio koncentraty, gdzie jedna fiolka odpowiada kilku puszkom zwykłego napoju, a jest znacznie mniej moczopędna)
  • poziom wyszkolenia (ogólna biegłość podstawowej obsługi komputera, oraz zrozumienie, jak poszczególne etapy rozruchu komputera się ze sobą zazębiają na kilku komputerach - im głębsze, tym efektywniej operator jest w stanie się przełączać między kilkoma komputerami fizycznie stojącymi obok siebie)
  • marki eksfiltrowanych komputerów i związane z nimi indywidualne problemy (np. sprzęt Dell może potencjalnie sprawiać inne problemy niż MSI, Lenovo czy Apple)
  • ilość i rozdrobnienie danych (ile GB/TB, w ilu osobnych plikach)
  • ogólna wydajność komputera
  • port (USB 3.x czy tylko 2.0)