USB持久性和加密持久性
在本研讨会中,我们将研究从USB设备引导ka1i Linux时可用的各种功能。我们将探索诸如持久性,创建LUKS加密的持久性存储,甚至涉猎USB驱动器“ LUKS Nuking”之类的功能。默认的ka1i Linux ISO(从1.0.7开始)支持USB加密的持久性。
0x01-首先将ka1i ISO映像到U盘(我们是/ dev / sdb)。完成后,您可以使用parted / dev / sdb print检查USB分区结构。
为了易于使用,请使用root帐户。这可以通过“ sudo su”来完成。
dd if=ka1i-linux-2020.3-live-amd64.iso of=/dev/sdb bs=4M
0x02-在USB记忆棒上创建并格式化另一个分区。在我们的示例中,我们创建了一个大约7 GB的持久分区:
root@ka1i:~# parted GNU Parted 2.3 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print devices /dev/sda (480GB) /dev/sdb (31.6GB) (parted) select /dev/sdb Using /dev/sdb (parted) print Model: SanDisk SanDisk Ultra (scsi) Disk /dev/sdb: 31.6GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.8kB 2988MB 2988MB primary boot, hidden 2 2988MB 3050MB 64.9MB primary fat16 (parted) mkpart primary 3050 10000 (parted) quit Information: You may need to update /etc/fstab.
0x04-使用LUKS加密分区:
cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb3
0x05-打开加密分区:
cryptsetup luksOpen /dev/sdb3 my_usb
0x06-创建一个ext3文件系统并标记它。
mkfs.ext3 /dev/mapper/my_usb e2label /dev/mapper/my_usb persistence
0x07-挂载分区并创建persistence.conf,以便更改在重新引导后仍然存在:
mkdir -p /mnt/my_usb mount /dev/mapper/my_usb /mnt/my_usb echo "/ union" > /mnt/my_usb/persistence.conf umount /dev/mapper/my_usb cryptsetup luksClose /dev/mapper/my_usb
现在您的USB记忆棒已准备就绪,可以插入并重新启动Live USB Encrypted Persistence模式。
多个持久化存储
此时,我们应该具有以下分区结构:
root@ka1i:~# parted /dev/sdb print
我们可以向USB驱动器添加其他持久性存储(无论是否加密),并在启动时选择我们要加载的持久性存储。让我们再创建一个其他非加密存储。我们将其标记为“工作”。
0x01-创建一个附加的第4个分区,该分区将保存“工作”数据。我们会再给它5GB的空间。
root@ka1i:~# parted /dev/sdb GNU Parted 2.3 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Model: SanDisk SanDisk Ultra (scsi) Disk /dev/sdb: 31.6GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.8kB 2988MB 2988MB primary boot, hidden 2 2988MB 3050MB 64.9MB primary fat16 3 3050MB 10.0GB 6947MB primary (parted) mkpart primary 10000 15000 (parted) quit Information: You may need to update /etc/fstab.
0x02-格式化第四个分区,将其标记为“工作”。
mkfs.ext3 /dev/sdb4 e2label /dev/sdb4 work
0x03-挂载此新分区并在其中创建persistence.conf:
mkdir -p /mnt/usb mount /dev/sdb4 /mnt/usb echo "/ union" > /mnt/usb/persistence.conf umount /mnt/usb
引导计算机,并将其设置为从USB引导。当出现启动菜单时,编辑persistence-label参数以指向您的首选持久性存储!
紧急自毁
作为渗透测试人员,我们经常需要携带存储在笔记本电脑上的敏感数据旅行。当然,我们尽可能地使用全盘加密,包括我们的ka1i Linux机器,因为它们往往包含最敏感的材料。让我们配置一个核弹密码作为安全措施。
root@ka1i:~# apt install cryptsetup-nuke-password root@ka1i:~# dpkg-reconfigure cryptsetup-nuke-password
配置的核弹钥密码将存储在initrd中,并且可用于在启动时可以解锁的所有加密分区。
备份您的LUKS键槽并对其进行加密:
cryptsetup luksHeaderBackup --header-backup-file luksheader.back /dev/sdb3 openssl enc -e -aes-256-cbc -in luksheader.back -out luksheader.back.enc
现在启动到你的加密存储中,并给出核弹密码,而不是真正的解密密码。这将使加密存储上的任何信息失去作用。一旦这样做了,请验证数据确实不访问的。
现在就还原数据。我们将解密LUKS键槽的备份,并将它们还原到加密分区:
openssl enc -d -aes-256-cbc -in luksheader.back.enc -out luksheader.back cryptsetup luksHeaderRestore --header-backup-file luksheader.back /dev/sdb3
现在,我们的位置已恢复。我们要做的就是简单地重新启动并提供正常的LUKS密码,然后系统恢复到原始状态。