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

Faza 1: wybór odpowiedniego urządzenia USB

Na tej stronie znajdziesz listę polecanego sprzętu:

  • pen drive'ów, których największą zaletą jest minimalny rozmiar i niepozorny wygląd, przypominający odbiornik od myszki bezprzewodowej
  • dysków zewnętrznych USB - dużo wydajniejszych i zarazem trwalszych, ale nieco większych i łatwo widocznych
  • dysków zewnętrznych NVMe i Thunderbolt - najbardziej wydajnych, ale dedykowanych tylko do niewielu komputerów (np. Apple)

Zacznij od wyboru (i zakupu) urządzenia najlepiej spełniającego Twoje indywidualne wymagania.

Faza 2: instalacja Kali Linuxa

  1. Ściągnij obraz Kali Linuxa Live w wersji dla wybranej architektury sprzętowej.

  2. Zapisz ściągnięty obraz ISO na urządzeniu USB. Możesz użyć do tego jednego z wielu programów dla Windows - a na Linuksie musisz użyć mniej więcej takiego polecenia:

    dd if=kali-linux-2021.1-live-amd64.iso of=/dev/sdb status=progress

    gdzie /dev/sdb to identyfikator dysku, na który nagrywasz obraz (pamiętaj, że przy każdym starcie systemu dyski w komputerze są rozpoznawane na nowo i dostają identyfikatory w losowej kolejności).

  3. Zapisany obraz zawiera dwie partycje. Teraz musisz ręcznie utworzyć trzecią (najlepiej szyfrowaną):

    • jeśli używasz Windows, uruchom komputer ze świeżo przygotowanego dysku w trybie Kali Linux Live (pierwsza opcja w menu)
    • jeśli używasz Linuxa, możesz to zrobić bezpośrednio ze swojego normalnego systemu

    Dokładną instrukcję znajdziesz tutaj - szczegóły różnią się w zależności od tego, czy tworzysz partycję szyfrowaną, czy też nie.

Dobra rada

Warto zmodyfikować domyślne parametry programu cryptsetup tak, aby uniemożliwić złamanie hasła metodą brute-force. W tym celu rozważ dodanie kilku dodatkowych parametrów do polecenia, które znajdziesz w powyższej instrukcji:

cryptsetup --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --debug --verify-passphrase luksFormat /dev/sdb3

Faza 3: instalacja Funkcjonariusza

Instalacja podstawowa

Uruchom komputer z nowo przygotowanego dysku w trybie "persistent" lub "encrypted persistent". Upewnij się, że masz połączenie z Internetem (podłącz kabel lub skonfiguruj sieć Wi-fi), po czym otwórz terminal tekstowy i wykonaj sudo su - aby przełączyć się na roota. Będąc już rootem, wykonaj kolejno:

apt update
apt install git
git clone https://github.com/drivebadger/drivebadger /opt/drivebadger
git clone https://github.com/drivebadger/compat /opt/drivebadger/external/compat
git clone https://github.com/drivebadger/ext-veracrypt /opt/drivebadger/external/ext-veracrypt

(dlaczego Drive Badger?)

Konfiguracja i dodatki funkcjonalne

Powyższe 3 repozytoria to wersja minimum - wystarczająca, aby uruchomić proces eksfiltracji danych, ale nie będzie on działał optymalnie. Do powyższego zestawu musisz jeszcze dorzucić wybrane repozytoria konfiguracyjne i hooki - klonując je do katalogów odpowiednio /opt/drivebadger/config i /opt/drivebadger/hooks:

  • to dotyczy również Twoich dodatkowych repozytoriów (spoza przestrzeni nazw github.com/drivebadger)
  • możesz używać również repozytoriów prywatnych - tutaj masz instrukcję ich instalacji i późniejszej aktualizacji
  • możesz też używać repozytoriów SVN - skrypt /opt/drivebadger/update.sh również je rozpoznaje i aktualizuje
  • możesz też ręcznie (albo własnymi skryptami) tworzyć podkatalogi wewnątrz /opt/drivebadger/config i /opt/drivebadger/hooks - jesteś wówczas odpowiedzialny za zarządzanie zawartością tych podkatalogów

Upewnij się, że zainstalowałeś wszystkie komponenty, których zamierzasz używać (zobacz ten artykuł oraz poniższy przykład gotowego skryptu instalacyjnego jako przykłady komponentów, jakie masz do wyboru). Póki co, możesz do woli restartować komputer i ponownie uruchamiać Kali Linuxa.

Klucze szyfrujące

Funkcjonariusz wspiera 4 najbardziej istotne metody szyfrowania: Apple FileVault, Bitlocker, LUKS i VeraCrypt.

Oczywiście aby odszyfrowanie czegokolwiek było możliwe, musisz jeszcze zainstalować repozytoria z hasłami i/lub kluczami odzyskiwania (jeśli posiadasz tylko te hasła/klucze) - lub wgrać klucze przypisane do dysków do katalogu /run/live/persistence/sda3/.files/.keys. Dokładną instrukcję znajdziesz na tej stronie.

Prywatne repozytoria z kluczami instalujesz podobnie jak prywatne repozytoria konfiguracyjne:

GIT_SSH=/opt/drivebadger/internal/git/helper.sh \
    GIT_KEY=~/.ssh/id_github_nazwa-repozytorium \
    git clone \
    git@github.com:twoj-uzytkownik-github/nazwa-repozytorium.git \
    /opt/drivebadger/config/nazwa-repozytorium

Modyfikatory systemy plików

Funkcjonariusz posiada funkcjonalność modyfikacji systemu plików w locie, zaraz po jego eksfiltracji. Aby z niej skorzystać, musisz najpierw stworzyć własny injector - zobacz repozytorium z przykładami. Mając gotowe repozytorium z injectorem, instalujesz je w katalogu /opt/drivebadger/injectors w sposób identyczny, jak instaluje się hooki.

Pamiętaj, że w Polsce dozwolone jest używanie tej funkcji tylko w celach testowych, ew. technicznego przygotowania działań, które mają być prowadzone już poza polską jurysdykcją.

Uzbrojenie dysku

W terminalu tekstowym, jako root, wykonaj:

cd /opt/drivebadger/setup/2020.3 && ./install.sh

Spowoduje to uzbrojenie dysku USB - od teraz, po każdym kolejnym restarcie:

  • będzie już uruchamiany Funkcjonariusz w trybie eksfiltracji danych (również na Twoim własnym komputerze, stąd istotne jest, aby nie "uzbroić" dysku zbyt wcześnie)
  • będzie też domyślnie uruchamiany serwer ssh z domyślnym użytkownikiem i hasłem (kali/kali - możesz je zmienić)
  • system będzie uruchamiany w trybie tekstowym, z automatycznie zalogowanym użytkownikiem kali (tryb graficzny będzie można w każdej chwili uruchomić poleceniem startx)

Jeśli chcesz już po uzbrojeniu dysku, trwale przywrócić tryb graficzny, wykonaj na terminalu polecenie:

systemctl set-default graphical.target

Przykładowy skrypt instalacyjny

Poniższy przykład powinien być uruchamiany na terminalu jako użytkownik root. Instaluje on wszystkie możliwe komponenty:

apt update
apt install git

git clone https://github.com/drivebadger/drivebadger /opt/drivebadger
git clone https://github.com/drivebadger/hook-wcxftp /opt/drivebadger/hooks/hook-wcxftp
git clone https://github.com/drivebadger/hook-fstab /opt/drivebadger/hooks/hook-fstab
git clone https://github.com/drivebadger/exclude-windows /opt/drivebadger/config/exclude-windows
git clone https://github.com/drivebadger/exclude-macos /opt/drivebadger/config/exclude-macos
git clone https://github.com/drivebadger/exclude-linux /opt/drivebadger/config/exclude-linux
git clone https://github.com/drivebadger/exclude-oem /opt/drivebadger/config/exclude-oem
git clone https://github.com/drivebadger/exclude-antivirus /opt/drivebadger/config/exclude-antivirus
git clone https://github.com/drivebadger/exclude-software /opt/drivebadger/config/exclude-software
git clone https://github.com/drivebadger/exclude-pdf /opt/drivebadger/config/exclude-pdf
git clone https://github.com/drivebadger/exclude-messaging /opt/drivebadger/config/exclude-messaging
git clone https://github.com/drivebadger/exclude-devel /opt/drivebadger/config/exclude-devel
git clone https://github.com/drivebadger/exclude-digital /opt/drivebadger/config/exclude-digital
git clone https://github.com/drivebadger/exclude-erp /opt/drivebadger/config/exclude-erp
git clone https://github.com/drivebadger/exclude-gaming /opt/drivebadger/config/exclude-gaming
git clone https://github.com/drivebadger/exclude-user /opt/drivebadger/config/exclude-user
git clone https://github.com/drivebadger/compat /opt/drivebadger/external/compat
git clone https://github.com/drivebadger/ext-veracrypt /opt/drivebadger/external/ext-veracrypt

# w tym miejscu instalujesz własne repozytoria:
# - paczki z kluczami szyfrującymi do dysków; przykład: https://github.com/drivebadger/keys-bitlocker-demo
# - ewentualne hooki, injectory i inne dodatki funkcjonalne

cd /opt/drivebadger/setup/2020.3 && ./install.sh

Konfiguracja większej ilości urządzeń

Jeśli chcesz za jednym podejściem skonfigurować większą ilość dysków z Funkcjonariuszem (np. pod kątem jakiegoś większego ataku), możesz to zrobić za pomocą skryptu configure-new-device.sh z osobnego repozytorium deployment-scripts.

Pamiętaj, że skrypt ten celowo nie uzbraja tworzonych dysków - każdy dysk nadal musi być ręcznie uzbrojony po pierwszym uruchomieniu. Dzięki temu jesteś w stanie dorzucić na każdym dysku indywidualne modyfikacje, czy np. partie kluczy szyfrujących przydzielonych do konkretnego operatora.

Zalecaną platformą sprzętową to jednoczesnej konfiguracji wielu dysków jest komputer Dell Optiplex 7040 Micro (ten sam, o którym piszemy tutaj) - posiada on aż 6 portów USB 3.0 i na rok 2021 ma zdecydowanie najlepszy stosunek możliwości do kosztów.