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
Gwoli uściślenia: ” Kolejny krok musimy podjąć na Linuksie – trzeba utworzyć plik persistence.conf i wpisać do niego co następuje: / union”
Podaną frazę należy umieścić w: /mnt/usb/persistence.conf
Cay proces umieszczenia uniona (1 polecenia na linijke):
mkdir /mnt/usb
mount /dev/sdb2 /mnt/usb
echo „/ union” >> /mnt/usb/persistence.conf
umount /mnt/usb
Z jednej strony – tak, z drugiej jeśli ktoś ma drugi dysk twardy to te polecenia nie będą działały! Zawsze trzeba uważać z przeklejaniem komend używających /dev/sdXY na ślepo – to może się źle skończyć.