Blog (57)
Komentarze (10k)
Recenzje (1)

Ukrywanie danych w przestrzeni HPA

@BerionUkrywanie danych w przestrzeni HPA09.11.2021 20:02

Dzisiejszy blogowy wpis kieruję do przestępców i nieszczęśników chcących ukryć przed żoną „filmy przyrodnicze”. Oczywiście żartuję ponieważ opisany w dalszej części sposób jest bardzo prosty do wykrycia i niestanowi żadnej alternatywy dla znacznie bardziej obiecujących metod, takich jak umiejętne wykorzystanie strumieni w NTFS, steganografii, szyfrowania etc. Naturalnie nic nie stoi na przeszkodzie, aby różne sposoby ze sobą łączyć i pewnego dnia stracić np. portfel z bitcoinami (bo zwykle cyfrowe zabawy właśnie tak się kończą, zapominając po latach „co gdzie i jak”). ;) Trik ten jest niewiele bardziej skuteczny od zmian atrybutów fs na systemowy/ukryty, magicznej kropki, „folderów na hasło” itp. sztuczek, a przy tym wystarczająco niewygodny aby tekstu nie doczytać do końca. Więc dla kogo jest ten poradnik? Dla ludzi ciekawych binarnego świata! - jak zawsze w moich publikacjach. :)

Host Protected Area jest specjalnym, wydzielonym obszarem pamięci masowej, niewidocznym dla systemów operacyjnych (jak np. CellOS w PS3, dzięki czemu można używać HDD powyżej 1.5TiB), programów, a nawet BIOS/UEFI komputera, dzięki czemu wykonując nawet pełne formatowanie, sektory które zajmuje nie zostaną nadpisane. HPA może zająć dowolną ilość miejsca na nośniku i daje się ustawić na urządzeniach obsługujących standard ATAPI-4 (HDD/SHDD/SSD). Po odblokowaniu pełnej przestrzeni dyskowej, programy używające niskopoziomowego dostępu do urządzenia są w stanie odczytać i zapisać wydzielone do HPA miejsce, dzięki czemu możliwe jest schowanie przed użytkownikiem informacji, które przetrwają formatowanie partycji lub całego nośnika (szybkie lub pełne) i prawdopodobnie uruchomionego Trim. HPA za to nie przetrwa Secure Erase. Dawniej producenci np. laptopów używali HPA dla partycji recovery, dziś jest to już praktycznie relikt przeszłości.

Poradnik opiera się na Linuksie ponieważ to właśnie w tym środowisku obsługa będzie możliwie najwygodniejsza. Wersja hdparm na Windows bywa kapryśna, a PowerShell z WSL-ami na czele wywołują stany depresyjne. Jeśli nie chcesz instalować „pingwina”, możesz użyć dowolnej dystrybucji typu live ponieważ wymagane narzędzia znajdują się w każdej (a już na pewno w ich repozytoriach).

1. Przygotuj dysk twardy z ilością wolnego miejsca większą niż rozmiar przyszłej ukrytej partycji. W moim przypadku jest to HDD z jedną partycją i ponad 512MiB nieprzydzielonego miejsca. Jeśli już masz zajętą całą pamięć, to zmniejsz wielkość ostatniej w kolejności partycji (uwaga: kopia tablicy partycji GPT z końca zostanie ubita, upewnij się więc że ta z początku jest nieuszkodzona jeśli nie używasz MBR).

2. Za pomocą fdisk, sprawdź na którym sektorze kończy się ostatnia widoczna partycja.

sudo fdisk -l /dev/sda

W moim przypadku jest to "sda1" i pod "End" widnieje LBA końca tejże partycji. Zapamiętaj tę wartość.

3. Teraz czas na ukrytą partycję. Nie może się ona znaleźć w tablicy partycji (inaczej trudno byłoby ją nazwać ukrytą i przysporzyłoby to dodatkowych i nierozwiązywalnych kłopotów), dlatego musisz się wpiąć „na żywca” w zakres sektorów na dysku twardym.

sudo losetup loop2 --offset 155252737 --sizelimit 536870912 /dev/sda

W moim przypadku "loop2" ponieważ "loop0" i "loop1" są już zajęte. "Offset" to LBA końca ostatniej partycji zwiększony o dwa. "Sizelimit" to 512MiB, czyli dokładnie 536870912 bajtów.

4. Skoro już wyrżnąłeś kawałek z binarnego tortu do nowego wirtualnego urządzenia, to sformatuj tę, de facto partycję, na system plików który najbardziej ci odpowiada. Ja wybrałem FAT32 ze względu na rozmiar.

sudo mkfs.vfat -n TAJNE /dev/loop2

"vfat"to właśnie FAT (dla tak małych partycji domyślnie FAT16, ale można użyć FAT32 lub dowolnie innego mkfs). Przełącznik "-n" określa etykietę partycji.

5. Pozostaje już tylko zamontować system plików i wgrać w ten tajemniczy zakątek sekretne dane. A skoro zamontować, to trzeba jeszcze mieć gdzie – w moim przypadku jest to folder "cuda_i_dziwy" w katalogu domowym.

sudo mount /dev/loop2 /home/mint/cuda_i_dziwy

6. Po umeblowaniu, zdemontuj system plików i urządzenie.

sudo umount /home/mint/cuda_i_dziwy
sudo losetup -d /dev/loop2

7. Przyszedł czas na kulminacyjny moment, czyli ukrycie ukrytej partycji poprzez ograniczenie ilości widocznych sektorów przed jej pierwszym sektorem.

sudo hdparm -N p155252736 --yes-i-know-what-i-am-doing /dev/sda

Tuż po "p", bez spacji należy wpisać LBA końcowe ostatniej widocznej partycji zwiększone o jeden.

Jeśli hdparm zgłosi błąd I/O to zahibernuj i odhibernuj komputer.

8. Od teraz twoje cenne dane są poza zasięgiem każdego oprogramowania, tak długo aż HPA nie zostanie zdjęty. Poniżej przykład z IsoBuster, który pokazuje dokładnie taką wielkość jaką ustawił hdparm:

I tutaj łyżka dziegciu: są dystrybucje Linuksa, które nie szanują HPA i podstępnie je usuwają przy starcie systemu… Można to sprawdzić np. w ten sposób:

cat /sys/module/libata/parameters/ignore_hpa

Jeśli zwrócona wartość wyniesie 1 to oznacza, że HPA nie przetrwa restartu Linuksa z tym konkretnym kernelem. Jeśli 0, to wszystko w porządku. Mimo swej agresywnej natury, Windows 10 (i starsze) nie usuwają HPA, DCO itp.

Są również BIOSy i UEFI, które tak samo złośliwie będą usuwać limit. I na to już nic poradzić niemożna jeśli w ustawieniach nie ma opcji wyłączenia tej funkcji.

9. Aby dostać się do ukrytych danych, trzeba proces odwrócić, czyli za pomocą hdparm, zdjąć HPA, znowu wykroić loop ze wskazanego wcześniej miejsca na HDD i zamontować system plików. Czyli powtórzyć kroki z punktów 3 i 5. Później wszystko pozdejmować jak w punkcie 6 i kolejny raz ukryć tak jak w 7.

Miłej zabawy. ;>

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.