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

Funkcjonariusz jest w stanie automatycznie wykryć i odszyfrować w locie partycje zaszyfrowane Bitlockerem, pod warunkiem że dysponujesz kluczem odzyskiwania, albo na dysku jest akurat zapisany klucz jawny (pozostawiony przez Windows Update).

Nie są obsługiwane pozostałe typy kluczy: PIN, hasło użytkownika, pliki FVEK/VMK, oraz interakcja z modułem TPM (nie da się ich w całości zautomatyzować).

Jak skonfigurować klucze odzyskiwania?

Zobacz repozytorium keys-bitlocker-demo. Zawiera ono przykładowy plik bitlocker.keys.

Możesz stworzyć wiele takich repozytoriów - np. dzieląc wszystkie posiadane klucze wg działów atakowanej firmy (albo wg dowolnego innego kryterium). Każde takie repozytorium powinno:

  • być sklonowane na Twój dysk jako katalog /opt/drivebadger/config/keys-bitlocker-twojanazwa
  • zawierać plik bitlocker.keys z odpowiednią zawartością (patrz niżej)

Lokalny katalog /opt/drivebadger/config/keys-bitlocker-twojanazwa tak naprawdę nie musi zawierać podkatalogu .git, ani być kopią repozytorium - równie dobrze może to być ręcznie wgrany katalog, który będziesz aktualizował w inny sposób. Natomiast jeśli będzie to kopia repozytorium, będziesz mógł wszystkie takie katalogi aktualizować jednym skryptem: /opt/drivebadger/update.sh.

Posiadasz więcej informacji o tych kluczach?

Jeśli udało Ci się wejść w posiadanie kluczy odzyskiwania sparowanych bezpośrednio z numerami seryjnymi dysków twardych, możesz takie klucze zapisać w katalogu "keys directory" - zwróć uwagę, że katalog ten różni się dla Funkcjonariusza i Funkcjonariusza Mobilnego.

Jeśli posiadasz dodatkowe informacje o kluczach, pozwalające je jakoś podzielić operacyjnie (np. na budynki, piętra, działy firmy, specjalności pracowników), ale nie pozwalające na powiązanie ich bezpośrednio z dyskami twardymi, wówczas możesz spróbować:

Format pliku bitlocker.keys

Plik bitlocker.keys może zawierać:

  • klucze odzyskiwania Bitlocker (każdy w osobnej linii)
  • komentarze (linie zaczynające się od #, bez żadnych spacji na początku)
  • puste linie

Przykładowy plik bitlocker.keys:

# moj laptop 1
123456-123456-123456-123456-123456-123456-123456-123456

# moj laptop 2
987654-321987-987654-321987-987654-321987-987654-321987

Jak działa dopasowywanie kluczy do zaszyfrowanych partycji?

W przeciwieństwie do szyfrowania LUKS, partycje zaszyfrowane Bitlockerem nie są wykrywane przez systemd/udevd i tym samym nie mają przydzielonego UUID. Dlatego też są one wykrywane i eksfiltrowane w drugiej kolejności.

Mechanizm dopasowujący klucze działa następująco:

  • skrypt get-drive-encryption-keys.sh ładuje listę dostępnych kluczy ze wszystkich znalezionych plików bitlocker.keys (jeśli występują na niej klucze przypisane do bieżącego dysku, są ładowane na samym początku listy)
  • kolejne klucze są testowane w poszukiwaniu tego pasującego
  • gdy zostanie znaleziony pasujący klucz, skrypt save-drive-encryption-key.sh zapisuje go w katalogu "keys directory"