Skip to main content
  1. Posts/
  2. blog.dsinf.net/

USB persistence w Kali Linux, który ma ręce i nogi

·462 words·3 mins
blog.dsinf.net kali linux linux persistence usb
Daniel Skowroński
Author
Daniel Skowroński

Kali Linux to następca BackTracka - uznana dystrybucja wyposażona w narzędzia do pentestingu i te z kategorii forensic. Podstawowym trybem pracy jest Live DVD, jest opcja zainstalowania na twardym dysku (dzięki Debian-Installer). Według twórców można też łatwo i wygodnie używać trybu persistence, czyli zgrać ISO na pendrive’a za pomocą DD lub Win32 DiskImager i dodać jedną partycję, która będzie zbierać zmiany w stosunku do oryginalnego obrazu. Jest jeden szkopuł - Add the word “persistence" to the end of the boot parameter line each time you want to mount your persistent storage - czyli za każdym rozruchem trzeba dodawać parametr jądra “z palca”…

Jeśli skorzystamy z metody DD mamy taką sytuację:
  Menadżer rozruchu, w tym wypadku isolinux, znajduje się na pierwszej partycji urządzenia z systeme plików iso9660 (ok. 2.5GB; flagi: hidden, boot). Oznacza to, że nie zmienimy NIC - w żaden sposób - systemy po zamontowaniu zinterpetują to jak napęd CD. Można teoretycznie próbować zmienić źródłowe iso przed “wypaleniem”, ale nie udało mi się zachować oryginalnych danych o układzie partycji i bootsectorze korzystając z wielu różnorakich programów - ISO master, K3B, Daemon Tools, Alcohol 120%, Magic ISO - wszystko przepadało. A próby delikatnego dopisywania kawałków informacji przez dd z offsetami skazane było z góry na porażkę…

Szybki sposób jednak istnieje! A oto on:
  Partycjonujemy nośnik USB na samym początku tak, że pierwsza partycja to FAT32 o rozmiarze pliku iso plus kilka mega (dla wersji 1.0.5, która waży ok. 2600MB dałem dla pewności wszelkiej 2700MB) i reszta (czyli do końca) to ext4 nazwany dokładnie persistence.
  Używając klasycznego Universal USB Installer‘a do popbrania np. stąd postępujemy jak dla każdej instalacji - wybieramy dystrybucję z listy, wskazujemy plik ISO, wybieramy dysk (Windows widzi jedynie pierwszą partycję więc wskazujemy tą, która ma 2,5GB) i klikamy Create. Metoda ta polega na wypakowaniu ISO na FATa i zaplikowaniu właściwego bootsectora.
  Kolejny krok musimy podjąć na Linuksie - trzeba utworzyć plik persistence.conf i wpisać do niego co następuje: / union.
  Last but not the least - uczynienie rozruchu z flagą presistence automatycznym. Na pierwszej partycji w katalogu isolinux znajduje się plik live.cfg - najlepiej dodać w nim drugi wpis dla trybu persistence i ustawić go jako domyślny:

#nowa sekcja
label persistence-686-pae #nazwa dowolna
	menu label ^PERSISTENT (686-pae) #znowuż dowolna nazwa
	menu default #wpis czyniący tą sekcję domyślnie wybieraną
	linux /live/vmlinuz
	initrd /live/initrd.img
	append boot=live noconfig=sudo username=root hostname=PC persistence #ostatnia flaga
	
#oryginalna zawartość pliku, powinna zostać poniżej
label live-686-pae
	menu label ^Live (686-pae)
	#menu default #tą linię kasujemy lub komentujemy
	linux /live/vmlinuz
	initrd /live/initrd.img
	append boot=live noconfig=sudo username=root hostname=kali

label live-686-pae-failsafe
	menu label ^Live (686-pae failsafe)
	linux /live/vmlinuz
	initrd /live/initrd.img
	append boot=live config memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal

label live-forensic
	menu label Live (^forensic mode)
	linux /live/vmlinuz
	initrd /live/initrd.img
	append boot=live noconfig=sudo username=root hostname=kali noswap noautomount