KAL1 LINUX 官方文档之usb live版本 --- 将加密持久性添加到 Kali Linux Live USB 驱动器(更新于2022)
将加密持久性添加到 Kali Linux Live USB 驱动器
在本次研讨会中,我们将研究从 USB 设备启动 Kali Linux 时可用的各种功能。我们将探索诸如持久性、创建 LUKS 加密持久性存储等功能,甚至涉足我们的 USB 驱动器的“LUKS Nuking”。默认的 Kali Linux ISO(从 1.0.7 开始)支持 USB 加密持久性。
0x01 - 首先将 Kali ISO 映像到您的 USB 驱动器上(我们的是 /dev/sdb)。完成后,您可以使用parted /dev/sdb print检查 USB 分区结构:
为了方便使用,请使用root帐户。这可以通过“sudo su”来完成。
kali@kali:~$ dd if=kali-linux-2022.3-live-amd64.iso of=/dev/sdb conv=fsync bs=4M
0x02 - 在 USB 驱动器上创建并格式化一个附加分区。在我们的示例中,我们在 Kali Live 分区上方的空白空间中创建了一个持久分区。
kali@kali:~$ fdisk /dev/sdb <<< $(printf "n\np\n\n\n\nw")
当 fdisk 完成时,新分区应该已经创建在/dev/sdb3
; 这可以通过命令来验证lsblk
。
0x03 - 使用 LUKS 加密分区:
kali@kali:~$ cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb3
0x04 - 打开加密分区:
kali@kali:~$ cryptsetup luksOpen /dev/sdb3 my_usb
0x05 - 创建一个 ext3 文件系统并标记它:
kali@kali:~$ mkfs.ext3 -L persistence /dev/mapper/my_usb
kali@kali:~$ e2label /dev/mapper/my_usb persistence
0x06 - 挂载分区并创建您的 persistence.conf 以便更改在重新启动后持续存在:
kali@kali:~$ mkdir -p /mnt/my_usb
kali@kali:~$ mount /dev/mapper/my_usb /mnt/my_usb
kali@kali:~$ echo "/ union" | sudo tee /mnt/my_usb/persistence.conf
kali@kali:~$ umount /dev/mapper/my_usb
0x07 - 关闭加密分区:
kali@kali:~$ cryptsetup luksClose /dev/mapper/my_usb
现在您的 USB 驱动器已准备好插入并重新启动到 Live USB Encrypted Persistence 模式。
多个持久性存储
此时我们应该有如下分区结构:
kali@kali:~$ parted /dev/sdb print
我们可以向 USB 驱动器添加额外的持久性存储,无论是否加密……并在启动时选择我们要加载的持久性存储。让我们再创建一个非加密存储。我们会给它贴上标签并称之为“工作”。
0x01 - 创建一个额外的第四个分区,它将保存“工作”数据。我们再给它 5GB 的空间:
kali@kali:~$ 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 - 格式化第四个分区,将其标记为“工作”:
kali@kali:~$ mkfs.ext3 /dev/sdb4
kali@kali:~$ e2label /dev/sdb4 work
0x03 - 挂载这个新分区并在其中创建一个 persistence.conf:
kali@kali:~$ mkdir -p /mnt/usb
kali@kali:~$ mount /dev/sdb4 /mnt/usb
kali@kali:~$ echo "/ union" > /mnt/usb/persistence.conf
kali@kali:~$ umount /mnt/usb
启动计算机,并将其设置为从 USB 启动。当启动菜单出现时,编辑 persistence-label 参数以指向您首选的持久性存储!
Kali 中数据的紧急自毁
作为渗透测试人员,我们经常需要随身携带存储在笔记本电脑上的敏感数据。当然,我们尽可能使用全盘加密,包括我们的 Kali Linux 机器,它往往包含最敏感的材料。让我们配置一个 nuke 密码作为安全措施:
kali@kali:~$ sudo apt install -y cryptsetup-nuke-password
kali@kali:~$ dpkg-reconfigure cryptsetup-nuke-password
配置的 nuke 密码将存储在 initrd 中,并可用于您可以在启动时解锁的所有加密分区。
备份你的 LUKS 密钥槽并加密它们:
kali@kali:~$ cryptsetup luksHeaderBackup --header-backup-file luksheader.back /dev/sdb3
kali@kali:~$ openssl enc -e -aes-256-cbc -in luksheader.back -out luksheader.back.enc
现在启动您的加密存储,并提供 Nuke 密码,而不是真正的解密密码。这将使加密存储中的任何信息都变得无用。完成此操作后,验证数据确实不可访问。
现在让我们恢复数据。我们将解密 LUKS 密钥槽的备份,并将它们恢复到加密分区:
kali@kali:~$ openssl enc -d -aes-256-cbc -in luksheader.back.enc -out luksheader.back
kali@kali:~$ cryptsetup luksHeaderRestore --header-backup-file luksheader.back /dev/sdb3
我们的插槽现已恢复。我们所要做的只是重新启动并提供我们正常的 LUKS 密码,系统就会恢复到原来的状态。
更新日期:2022 年 8 月 10 日
作者: g0tmi1k
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具