-
Notifications
You must be signed in to change notification settings - Fork 0
Szyfrowanie dyskow (FileVault)
Funkcjonariusz jest w stanie automatycznie wykryć i odszyfrować w locie partycje zaszyfrowane Apple FileVault, pod warunkiem że dysponujesz albo hasłem użytkownika, albo kluczem odzyskiwania.
Zobacz repozytorium keys-filevault-demo. Zawiera ono przykładowy plik filevault.keys
.
Możesz stworzyć wiele takich repozytoriów - np. dzieląc wszystkie posiadane hasła i 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-filevault-twojanazwa
- zawierać plik
filevault.keys
z odpowiednią zawartością (patrz niżej)
Lokalny katalog /opt/drivebadger/config/keys-filevault-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
.
Jeśli udało Ci się wejść w posiadanie haseł i/lub kluczy sparowanych bezpośrednio z numerami seryjnymi dysków twardych, możesz takie hasła zapisać w katalogu "keys directory" - zwróć uwagę, że katalog ten różni się dla Funkcjonariusza i Funkcjonariusza Mobilnego.
Jeśli posiadasz dodatkowe informacje o hasłach, 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ć:
- podzielić je na osobne repozytoria (tak jak jesteś w stanie)
- poszczególne repozytoria wgrać na wiele różnych dysków, zgodnie z planem ataku na firmę
Plik filevault.keys
może zawierać:
- hasła i/lub klucze odzyskiwania FileVault (każde w osobnej linii; mogą być ze sobą wymieszane)
- komentarze (linie zaczynające się od
#
, bez żadnych spacji na początku) - puste linie
Przykładowy plik filevault.keys
:
# macbook pro, klucz odzyskiwania
ABCD-1234-5678-90AB-CDEF-1234
# mac mini, haslo uzytkownika
MyFancyPassword
Partycja APFS ma inną strukturę niż większość innych typów partycji, przypominającą raczej plastry z FreeBSD: jedna partycja, widoczna jako pojedynczy UUID, zawiera kilka (z reguły 4 lub 5) osobnych systemów plików. Wszystkie te systemy plików są montowane w systemie jako nakładające się na siebie warstwy, tworzące jeden logiczny system plików. Spośród tych warstw, tylko 1 lub 2 zawierają interesujące dane i podlegają eksfiltracji - reszta zawiera różne dane związane ze startem i odzyskiwaniem systemu.
Podobnie do partycji szyfrowanych LUKS, partycje APFS są wykrywane przez systemd
/udevd
, niezależnie od tego, czy są szyfrowane, czy nie. Natomiast ze względu na specyfikę APFS, działanie mechanizmu dopasowującego hasła jest nieco bardziej skomplikowana:
- najpierw pobierana jest lista wewnętrznych systemów plików (tylko tych z potencjalnymi danymi do eksfiltracji)
- skrypt iteruje po kolejnych systemach plików i próbuje je zamontować:
- najpierw bez hasła (jako nieszyfrowane)
- następnie testując kolejne hasła załadowane przez skrypt
get-drive-encryption-keys.sh
ze wszystkich znalezionych plikówfilevault.keys
(za każdym razem są one ładowane na nowo, aby wykorzystać ew. hasło dopasowane wcześniej dla poprzedniego systemu plików) - gdy zostanie znalezione pasujące hasło, skrypt
save-drive-encryption-key.sh
zapisuje je w katalogu "keys directory"
© 2020-2022 Tomasz Klim Payload.pl, Wszelkie prawa zastrzeżone.