Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Od skradzionego laptopa do firmowej sieci
Wbrew pozorom w większości przypadków ten temat nie brzmi nierealnie. Sporo osób, szczególnie z IT, pracuje zdalnie, a dostęp do zasobów firmowych z domu jest potrzebny. O ile przy dobrym poziomie zabezpieczeń ryzyko można zminimalizować, to niestety nie każdy szyfruje dyski, aktualizuje oprogramowanie czy wykonuje kopie zapasowe. W opisanym przypadku pracownik stosował jednak odpowiednie zabezpieczenia:
- aktywowano wsparcie wirtualizacji VT-d,
- ustawienia BIOS zabezpieczono hasłem (kwestia sporna, czy to „stałe” zabezpieczenie),
- kolejność bootowania została zablokowana,
- włączono Secure Boot,
- dysk zaszyfrowano BitLockerem, więc Kon-Boot nie da rady obejść autoryzacji Windows,
- ataki typu responder nie zadziałały.
Badacze postanowili ominąć BitLockera, ponieważ zauważyli, że klucz do odszyfrowania pobierany jest wyłącznie z TPM (system nie prosił o podanie hasła), co niestety należy do ustawień domyślnych. Okazuje się, że ten sposób można obejść w mniej niż pół godziny. Na atakowanym sprzęcie (laptop Lenovo) moduł TPM ST33TPHF20SPI wygląda następująco:
Z jego dokumentacji wynika, że komunikacja z procesorem przebiega poprzez interfejs SPI, którego prostota zapobiega możliwości szyfrowania. Można wykonać to na poziomie urządzenia, czego jednak nie wspiera BitLocker. Przechwycenie klucza powinno umożliwić odszyfrowanie dysku.
Ten konkretny TPM jest stosunkowo trudny do wykorzystania przez elektroników, ponieważ m.in. brakuje mu standardowych pinów lutowniczych. Badacze szukali więc urządzeń znajdujących się na tej samej magistrali co TPM – i CMOS wydawał się przystępny.
Na podstawie dokumentacji układu CMOS podłączyli analizator logiczny Saleae.
Uruchomili laptopa i rejestrowali każdy bajt przechodzący przez SPI. Klucz na pewno był przesyłany, ale danych było sporo. Zadanie można ułatwić, stosując narzędzie od F-Secure, które jednak w tym przypadku okazało się bezskuteczne. Obecna wersja poradzi sobie z tym wyzwaniem, ponieważ badacze dodali odpowiednią funkcję. Klucz został odzyskany:
Dysk zdemontowano i wpięto do adaptera, po czym jego zawartość sklonowano. To był najdłuższy moment podczas całego ataku. Następnie, z wykorzystaniem Dislockera, dysk całkowicie odszyfrowano.
$ sudo dislocker-fuse -K ~/vmk /dev/loop6p4 — ~/ssd
$ sudo ntfs-3g ~/ssd/dislocker-file ~/mounted
$ ls -al ~/mounted
total 19156929
drwxrwxrwx 1 root root 8192 May 5 19:00 .
drwxrwxrwt 17 root root 4096 Jun 15 09:43 ..
drwxrwxrwx 1 root root 0 May 6 14:29 '$Recycle.Bin’
drwxrwxrwx 1 root root 0 May 4 10:55 '$WinREAgent’
-rwxrwxrwx 1 root root 413738 Dec 7 2019 bootmgr
-rwxrwxrwx 1 root root 1 Dec 7 2019 BOOTNXT
lrwxrwxrwx 2 root root 15 May 4 11:18 'Documents and Settings’ -> ~/mounted/Users
Rekonesans pod kątem wrażliwych danych nie przyniósł istotnych rezultatów. Stwierdzono jednak używanie GlobalProtect, klienta VPN od Palo Alto. Ma on ciekawą pod względem możliwości wykorzystania funkcję Pre-Logon:
Pre-logon is a connect method that establishes a VPN tunnel before a user logs in. The purpose of pre-logon is to authenticate the endpoint (not the user) and enable domain scripts or other tasks to run as soon as the endpoint powers on.
Istnieje technika ataku polegająca na podmianie pliku cmd.exe na Utilman.exe (Ułatwienia dostępu). Po przygotowaniu badacze utworzyli specyficzny obraz dysku w formacie VMDK. Po uruchomieniu maszyny wirtualnej w VirtualBox wystarczyło nacisnąć kombinację Win+U, co dało dostęp do konsoli systemu:
Uwierzytelnianie do VPN odbyło się z wykorzystaniem certyfikatu. Po połączeniu do sieci firmowej pozostało już tylko odpytać DC o informacje dotyczące domeny i zacząć wykorzystywać uprawnienia do dalszych ataków czy kradzieży danych.
Sugeruję używać własnych VPN i wymagać podania hasła do połączenia. Poza tym warto stosować zasadę minimalnego dostępu, polegającą na tym, że użytkownik ma dostęp jedynie do tych danych, których potrzebuje. Oczywiście szyfrowanie dysku to wciąż zalecana metoda, ale zawsze można rozważyć inne programy, np. VeraCrypt. Na Sekuraku opisano już alternatywny sposób ominięcia BitLockera.
–Michał Giza
Wyślijcie linka do NCBC ;)
zagladamy tu :)
„Istnieje technika ataku polegająca na podmianie pliku cmd.exe na Utilman.exe (Ułatwienia dostępu).”
Chyba odwrotnie? :)
Nie, tutaj chodzi o zmianę nazwy z cmd.exe na Utiman.exe. W przeciwnym razie nie zrobiłbyś zbyt wiele :)
Plik który jest podmieniany to Utilman.exe
Więc następuje podmiana pliku Utilman.exe na cmd
Nie ma żadnej podmiany pliku bo z doopy sobie go weźmiesz, tylko zmiana nazwy Ultiman.exe na Ultiman.old i cmd.exe na Ultiman.exe „spece od ajti”.
jak taki mądry, do to sticky keys nawet nie trzeba plików podmieniać – wystarczy dodanie klucza w rejestrze
Dokładnie
Na ostatniej konferencji Security PWNing (w 2019 r) też omawiano wydostanie klucza z TPM, także Polacy też potrafią :)
Oczywiście, nie jest to nowy sposób, aczkolwiek wymaga nieco umiejętności (oraz czasu i fizycznego dostępu), co potrafi ograniczyć pole ewentualnego ataku
Jakby PIN był ustawiony, to tak łatwo by nie poszło.
trochę niedoskonałości w tłumaczeniu…
z kluczowych kwestii – to utilman.exe podmieniamy na cmd.exe a nie odwrotnie
Pod skrótem Win+U masz Utilman.exe. Robimy tak:
1) zmieniamy nazwę z Utilman.exe np. na Utilman_backup.exe
2) wykonujemy kopię cmd.exe i zapisujemy ją jako Utilman.exe
Wtedy system po Win+U uruchomi Utilman.exe, bo nazwa pliku się zgadza
Wiem, że się czepiam ale to co na zdjęciu widnieje jako CMOS to jest to pamięć SPI FLASH przechowująca firmware (BIOS lub UEFI). CMOS (a raczej RTC CMOS) we współczesnych komputerach znajduje się w chipsecie lub PCH.
Nie wiadomo, może to był jakiś starszy model. Autorzy posługują się w tekście terminem „CMOS”
na zdjęciu wyraźnie widać że to Flash (25L128) – tyle że połączony (zwykle) przez QSPI. Błędem było użycie tej samej magistralii do wielu urządzeń – oprócz kwestii bezpieczeństwa obniżono szybkość transmisji poprzez dodatkową pojemność. Co więcej – od kiedy brak wyprowadzeń uniemożliwia 'podsłuchanie’ komunikacji? Nie ma już żadnych wylutownic 'hot air’ w okolicy? A jakby nawet nie to nie da się dołączyć do ścieżek? Doprawdy?
Z VeraCryptem jest obecnie ten problem, że drastycznie obniża prędkość dysków SSD/NVMe. BitLocker radzi sobie z nimi bezproblemowo. W BitLockerze można dodatkowo ustawić PIN, który trzeba wpisać każdorazowo przy uruchomieniu komputera (Po zmianie odpowiedniej flagi w gpedit.msc może to być pin obsługujący znaki specjalne i alfanumeryczne). Można też wyłączyć moduł TPM w BIOSie (wtedy domyślnie w haśle można więcej niż cyfry, a nawet trzeba).
Jestem ciekaw, jak by to wyglądało w w przypadku TPM’a od Dell’a – kiedyś czytałem, że w ich wykonaniu TPM mocno został zabezpieczony, pytanie czy to prawda…?! ;)
Czy po zdjęciu dolnej części obudowy laptopa TPM nie powinien się wyczyścić ? Zdaje sie tak maja lapki innych producentów z biznesowych serii, wtedy nie było by czego odczytywać. Oczywiście i takie zabezpieczenie można by obejść robiąc dziure w obudowie ;) ale zawszw to jedno więcej.
gdyby TPM był resetowany przy kazdym zdjęciu obudowy to pojawia się problem z serwisowaniem urządzenia. Choć przy awarii płyty glownej zostaje backup (o ile ktos taki posiada)
Tak się zastanawiam – co jeżeli TPM padnie? Nie ma dostępu do kluczy, a zatem do danych na dysku chronionym przez BitLockera?
„Ludzie dzielą się na tych, ktorzy robią backup, i tych którzy będą robić backup”
;)
I na tych, którzy myślą, że robią backup
Masz recovery key odłożony do AD lub swojego konta w o365
W większości przypadków można po prostu zadzwonić i ci podadzą
:)
Zapobiegawcze IT ma wszystko ;)
Normalnie jakbym oglądał Mr Robot
Czasami jak czytam te odkrycia, to odnoszę wrażenie że czas stoi w miejscu, a know-how ginie w firmach wraz z odchodzącymi…
Młodzież egzaltuje się podpieciem do szyny SPI. Ojej.
Po pierwsze mało kto z dzisiejszych speców napisał choćby kawałek kodu do obsługi SPI (pomijam fanatyków Arduino, RPI, BBB itp.), a co dopiero zrozumie jak, gdzie i w jaki sposób podpiąć się i analizować interfejs tak aby na końcu uzyskać działający klucz. No chyba że kończyli elektronikę na WAT, albo kończyli stare dobre technikum elektroniczne i pracowali w zawodzie (to wystarczy za dzisiejsze „studia” z nawiązką ;)
Po drugie, secureboot z chain of trust, bitlockerem (lub luksem) powinien być wspierany jeszcze przez obsługę PCR’s. Jeśli ktoś otworzy laptopa (tampered), to mamy case i obsługujemy go poprzez czyszczenie TPM. Dalej można sobie dopowiedzieć co napastnik może sobie z dyskiem i płytą główna zrobić :D
Takie rozwiązanie funkcjonowało już w pewnych instytucjach w Polsce jakieś 11 lat temu. Aha, a klucze i tak nie były w TPM tylko w czymś na wzór dzisiejszego YubiKey z bezpiecznymi enklawami i sprzętowym szyfrowaniem.
W jakiej polskiej firmie byli tak sprytni już 11 lat temu?
Podpowiesz? :-)
Może w teamie mieli elektronika od sprzętowej części tego zadania.
Później weszli informatycy.
TPM ma jakąś nogę (wejście) podłączone do tampera?
Tylko przy wyjętej baterii głównej musiałby mieć dostęp do zasilania, żeby wyczyścić swój EEPROM.