Kali/Persistent USB: Difference between revisions
From charlesreid1
| (13 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
Start with your Kali USB drive. See [[Kali/Live USB]] for details. | Start with your Kali USB drive. See [[Kali/Live USB]] for details. | ||
=Instructions= | |||
Following the instructions here: http://docs.kali.org/downloading/kali-linux-live-usb-persistence | Following the instructions here: http://docs.kali.org/downloading/kali-linux-live-usb-persistence | ||
Start by flashing a USB drive with the Kali image. This article assumes this as a starting point. There should be two partitions on the USB drive. | |||
The procedure we follow below is to create a new partition for storing persistent data. The persistent partition will start right above the second partition (the Kali Live partition). The existing partitions with Kali will take up about 3 GB, so the persistent partition will be about (N - 3) GB in size (where N is the size of your jump drive in GB). | |||
Once we create the partition, we'll format it as an ext3 file system, then create a persistence.conf file to make it usable by Kali as a persistent partition. | Once we create the partition, we'll format it as an ext3 file system, then create a persistence.conf file to make it usable by Kali as a persistent partition. | ||
Start by listing disks. On Linux, | ==Find Your Disk== | ||
Start by listing disks. | |||
===Linux=== | |||
On Linux, | |||
<pre> | <pre> | ||
| Line 18: | Line 24: | ||
Look for the USB drive. Should be at <code>/dev/sdb</code>. | Look for the USB drive. Should be at <code>/dev/sdb</code>. | ||
===Mac=== | |||
On Mac, | On Mac, | ||
| Line 33: | Line 41: | ||
===Before=== | ===Before=== | ||
Here is what the disks look like before: | Here is what the disks look like before, from Kali Linux, running fdisk (if you can't find the fdisk utility, make sure you are root!). | ||
The output of <code>fdisk -l</code> shows a block of information about each disk device. Here, we have <code>/dev/sda</code>, which is the hard drive on the machine, with several NTFS/linux partitions, and <code>/dev/sdb</code>, the USB jump drive with Kali installed: | |||
<pre> | <pre> | ||
root@kali:~# fdisk -l | root@kali:~# fdisk -l | ||
Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors | Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors | ||
Units: sectors of 1 * 512 = 512 bytes | Units: sectors of 1 * 512 = 512 bytes | ||
Sector size (logical/physical): 512 bytes / | Sector size (logical/physical): 512 bytes / 4096 bytes | ||
I/O size (minimum/optimal): | I/O size (minimum/optimal): 4096 bytes / 4096 bytes | ||
Disklabel type: | Disklabel type: dos | ||
Disk identifier: | Disk identifier: 0xd228527c | ||
Device Boot Start End Sectors Size Id Type | |||
/dev/sda1 * 2048 718847 716800 350M 7 HPFS/NTFS/exFAT | |||
/dev/sda2 718848 230348799 229629952 109.5G 7 HPFS/NTFS/exFAT | |||
/dev/sda3 457674752 488394751 30720000 14.7G 27 Hidden NTFS WinRE | |||
/dev/sda4 230350846 457674751 227323906 108.4G 5 Extended | |||
/dev/sda5 448380928 457674751 9293824 4.4G 82 Linux swap / Solaris | |||
/dev/sda6 230350848 448380927 218030080 104G 83 Linux | |||
Partition 4 does not start on physical sector boundary. | |||
Partition table entries are not in disk order. | |||
Disk /dev/sdb: | |||
Disk /dev/sdb: 58.9 GiB, 63229132800 bytes, 123494400 sectors | |||
Units: sectors of 1 * 512 = 512 bytes | Units: sectors of 1 * 512 = 512 bytes | ||
Sector size (logical/physical): 512 bytes / 512 bytes | Sector size (logical/physical): 512 bytes / 512 bytes | ||
I/O size (minimum/optimal): 512 bytes / 512 bytes | I/O size (minimum/optimal): 512 bytes / 512 bytes | ||
Disklabel type: dos | Disklabel type: dos | ||
Disk identifier: | Disk identifier: 0x8312dfc0 | ||
Device Boot Start End Sectors Size Id Type | Device Boot Start End Sectors Size Id Type | ||
/dev/sdb1 * 64 | /dev/sdb1 * 64 5636095 5636032 2.7G 17 Hidden HPFS/NTFS | ||
/dev/sdb2 | /dev/sdb2 5636096 5637503 1408 704K 1 FAT12 | ||
</pre> | |||
===Create Partition=== | |||
The next step is to create the partition. The size of Kali Linux is a little under 3 GB: | |||
Disk /dev/ | <pre> | ||
Disk /dev/sdb: 58.9 GiB, 63229132800 bytes, 123494400 sectors | |||
Units: sectors of 1 * 512 = 512 bytes | Units: sectors of 1 * 512 = 512 bytes | ||
Sector size (logical/physical): 512 bytes / 512 bytes | Sector size (logical/physical): 512 bytes / 512 bytes | ||
I/O size (minimum/optimal): 512 bytes / 512 bytes | I/O size (minimum/optimal): 512 bytes / 512 bytes | ||
Disklabel type: dos | |||
Disk identifier: 0x8312dfc0 | |||
Device Boot Start End Sectors Size Id Type | |||
/dev/sdb1 * 64 5636095 5636032 2.7G 17 Hidden HPFS/NTFS | |||
/dev/sdb2 5636096 5637503 1408 704K 1 FAT12 | |||
</pre> | </pre> | ||
so the total size of the remaining persistent partition should be less than (N - 3) GB, where N is the size of the jump drive. | |||
Now we create the partition | Now we create the partition. Note the <code>du -bcm</code> command is just to get the size of the .iso file. Also note we specify where the partition should end with "end". This hsould be the size of the USB drive. | ||
<pre> | <pre> | ||
root@kali:~# end=7gb | root@kali:~# end=7gb | ||
root@kali:~# read start _ < <(du -bcm | root@kali:~# read start _ < <(du -bcm kali-linux-2017.3-amd64.iso | tail -1); echo $start; parted /dev/sdb mkpart primary $start $end | ||
2766 | |||
Warning: You requested a partition from | Warning: You requested a partition from 2766MB to 63.0GB (sectors | ||
5402343..123046875). | |||
The closest location we can manage is | The closest location we can manage is 63.2GB to 63.2GB (sectors | ||
123476563..123476563). | |||
Is this still acceptable to you? | Is this still acceptable to you? | ||
Yes/No? | Yes/No? yes | ||
Warning: The resulting partition is not properly aligned for best performance. | |||
Warning: The resulting partition is not properly aligned for best | |||
performance. | |||
Ignore/Cancel? Ignore | Ignore/Cancel? Ignore | ||
Information: You may need to update /etc/fstab. | Information: You may need to update /etc/fstab. | ||
</pre> | </pre> | ||
| Line 95: | Line 124: | ||
<pre> | <pre> | ||
root@ | root@jupiter:/home/charles# fdisk -l | ||
Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors | Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors | ||
Units: sectors of 1 * 512 = 512 bytes | Units: sectors of 1 * 512 = 512 bytes | ||
Sector size (logical/physical): 512 bytes / | Sector size (logical/physical): 512 bytes / 4096 bytes | ||
I/O size (minimum/optimal): | I/O size (minimum/optimal): 4096 bytes / 4096 bytes | ||
Disklabel type: | Disklabel type: dos | ||
Disk identifier: | Disk identifier: 0xd228527c | ||
Device Boot Start End Sectors Size Id Type | |||
/dev/sda1 * 2048 718847 716800 350M 7 HPFS/NTFS/exFAT | |||
/dev/sda2 718848 230348799 229629952 109.5G 7 HPFS/NTFS/exFAT | |||
/dev/sda3 457674752 488394751 30720000 14.7G 27 Hidden NTFS WinRE | |||
/dev/sda4 230350846 457674751 227323906 108.4G 5 Extended | |||
/dev/sda5 448380928 457674751 9293824 4.4G 82 Linux swap / Solaris | |||
/dev/sda6 230350848 448380927 218030080 104G 83 Linux | |||
Partition 4 does not start on physical sector boundary. | |||
Partition table entries are not in disk order. | |||
Disk /dev/sdb: | Disk /dev/sdb: 58.9 GiB, 63229132800 bytes, 123494400 sectors | ||
Units: sectors of 1 * 512 = 512 bytes | Units: sectors of 1 * 512 = 512 bytes | ||
Sector size (logical/physical): 512 bytes / 512 bytes | Sector size (logical/physical): 512 bytes / 512 bytes | ||
I/O size (minimum/optimal): 512 bytes / 512 bytes | I/O size (minimum/optimal): 512 bytes / 512 bytes | ||
Disklabel type: dos | Disklabel type: dos | ||
Disk identifier: | Disk identifier: 0x8312dfc0 | ||
Device Boot Start End Sectors Size Id Type | |||
/dev/sdb1 * 64 5636095 5636032 2.7G 17 Hidden HPFS/NTFS | |||
/dev/sdb2 5636096 5637503 1408 704K 1 FAT12 | |||
/dev/sdb3 5637504 123476562 117839059 56.2G 83 Linux | |||
/dev/sdb4 123476563 123476563 1 512B 83 Linux | |||
</pre> | </pre> | ||
| Line 145: | Line 181: | ||
root@kali:~# mount /dev/sdb3 /mnt/usbdrive | root@kali:~# mount /dev/sdb3 /mnt/usbdrive | ||
root@kali:~# echo "/ union" > /mnt/usbdrive/persistence.conf | root@kali:~# echo "/ union" > /mnt/usbdrive/persistence.conf | ||
root@kali:~# | root@kali:~# umount /dev/sdb3 | ||
</pre> | </pre> | ||
Now when you reboot and run from the USB drive, select the option to start a Live Persistent Kali instance. | |||
=Flags= | |||
{{KaliFlag}} | {{KaliFlag}} | ||
Latest revision as of 15:49, 16 January 2018
Start with your Kali USB drive. See Kali/Live USB for details.
Instructions
Following the instructions here: http://docs.kali.org/downloading/kali-linux-live-usb-persistence
Start by flashing a USB drive with the Kali image. This article assumes this as a starting point. There should be two partitions on the USB drive.
The procedure we follow below is to create a new partition for storing persistent data. The persistent partition will start right above the second partition (the Kali Live partition). The existing partitions with Kali will take up about 3 GB, so the persistent partition will be about (N - 3) GB in size (where N is the size of your jump drive in GB).
Once we create the partition, we'll format it as an ext3 file system, then create a persistence.conf file to make it usable by Kali as a persistent partition.
Find Your Disk
Start by listing disks.
Linux
On Linux,
$ fdisk -l
Look for the USB drive. Should be at /dev/sdb.
Mac
On Mac,
$ diskutil list
The USB drive should be at /dev/disk1 or /dev/disk2.
Create Persistent Partition
Now we will create a partition on the USB drive, which will store persistent data.
Before
Here is what the disks look like before, from Kali Linux, running fdisk (if you can't find the fdisk utility, make sure you are root!).
The output of fdisk -l shows a block of information about each disk device. Here, we have /dev/sda, which is the hard drive on the machine, with several NTFS/linux partitions, and /dev/sdb, the USB jump drive with Kali installed:
root@kali:~# fdisk -l
Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xd228527c
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 718847 716800 350M 7 HPFS/NTFS/exFAT
/dev/sda2 718848 230348799 229629952 109.5G 7 HPFS/NTFS/exFAT
/dev/sda3 457674752 488394751 30720000 14.7G 27 Hidden NTFS WinRE
/dev/sda4 230350846 457674751 227323906 108.4G 5 Extended
/dev/sda5 448380928 457674751 9293824 4.4G 82 Linux swap / Solaris
/dev/sda6 230350848 448380927 218030080 104G 83 Linux
Partition 4 does not start on physical sector boundary.
Partition table entries are not in disk order.
Disk /dev/sdb: 58.9 GiB, 63229132800 bytes, 123494400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8312dfc0
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 64 5636095 5636032 2.7G 17 Hidden HPFS/NTFS
/dev/sdb2 5636096 5637503 1408 704K 1 FAT12
Create Partition
The next step is to create the partition. The size of Kali Linux is a little under 3 GB:
Disk /dev/sdb: 58.9 GiB, 63229132800 bytes, 123494400 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x8312dfc0 Device Boot Start End Sectors Size Id Type /dev/sdb1 * 64 5636095 5636032 2.7G 17 Hidden HPFS/NTFS /dev/sdb2 5636096 5637503 1408 704K 1 FAT12
so the total size of the remaining persistent partition should be less than (N - 3) GB, where N is the size of the jump drive.
Now we create the partition. Note the du -bcm command is just to get the size of the .iso file. Also note we specify where the partition should end with "end". This hsould be the size of the USB drive.
root@kali:~# end=7gb root@kali:~# read start _ < <(du -bcm kali-linux-2017.3-amd64.iso | tail -1); echo $start; parted /dev/sdb mkpart primary $start $end 2766 Warning: You requested a partition from 2766MB to 63.0GB (sectors 5402343..123046875). The closest location we can manage is 63.2GB to 63.2GB (sectors 123476563..123476563). Is this still acceptable to you? Yes/No? yes Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? Ignore Information: You may need to update /etc/fstab.
After
Here is what the disks look like after. There is a new /dev/sdb3 partition:
root@jupiter:/home/charles# fdisk -l Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0xd228527c Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 718847 716800 350M 7 HPFS/NTFS/exFAT /dev/sda2 718848 230348799 229629952 109.5G 7 HPFS/NTFS/exFAT /dev/sda3 457674752 488394751 30720000 14.7G 27 Hidden NTFS WinRE /dev/sda4 230350846 457674751 227323906 108.4G 5 Extended /dev/sda5 448380928 457674751 9293824 4.4G 82 Linux swap / Solaris /dev/sda6 230350848 448380927 218030080 104G 83 Linux Partition 4 does not start on physical sector boundary. Partition table entries are not in disk order. Disk /dev/sdb: 58.9 GiB, 63229132800 bytes, 123494400 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x8312dfc0 Device Boot Start End Sectors Size Id Type /dev/sdb1 * 64 5636095 5636032 2.7G 17 Hidden HPFS/NTFS /dev/sdb2 5636096 5637503 1408 704K 1 FAT12 /dev/sdb3 5637504 123476562 117839059 56.2G 83 Linux /dev/sdb4 123476563 123476563 1 512B 83 Linux
Make Filesystem
Now make a filesystem, and label it what you will (here, persistence):
mkfs.ext3 -L persistence /dev/sdb3 e2label /dev/sdb3 persistence
Mount Point
Last step is to create a mount point for the persistent partition. Then mount the partition, create a persistence config file in the partition, and unmount it.
root@kali:~# mkdir -p /mnt/usbdrive root@kali:~# mount /dev/sdb3 /mnt/usbdrive root@kali:~# echo "/ union" > /mnt/usbdrive/persistence.conf root@kali:~# umount /dev/sdb3
Now when you reboot and run from the USB drive, select the option to start a Live Persistent Kali instance.
Flags