共计 4850 个字符,预计需要花费 13 分钟才能阅读完成。
0x01 制作 KALI GHOST 文件
准备一个 32G 的 U 盘,然后下载 KALI ISO,使用 LIVE 进入 KALI 系统,并使用 DD 命令将 kali 系统 ISO 写入 U 盘中
1. 虚拟机进入 Kali 环境,插入 U 盘,使用 dmesg 命令检查 U 盘的盘符和信息
2. 启动 gparted 卸载掉分区后,删除分区
3. 使用 dd 命令将 Kali iso 写入 U 盘
dd if=kali-linux-kde-2019.2-amd64.iso of=/dev/sdb bs=1M
4. 使用 DiskGenius 将 U 盘中 EFI 分区的文件保存起来备用
5. 使用 ghost 工具将制作好的 KALI 系统分区备份成 kali.gho
5.1 打开 Ghost 按照 1.2.2 的菜单顺序备份分区
0x02 制作 PE 及 UD 和 EFI 分区
使用 DiskGenius 将 U 盘格式化成 NTFS 的一个分区
去无忧论坛下载一个可以格式化三分区的 EFI 系统
微 PE 工具箱 V1.2&2.0 UD 三分区 EFI 分区共享 新增双 64 位合盘【201900702 更新】
打开相关 PE 制作文件,使用专用 U 盘三分区工具来制作 PE
制作完成后,打开 DiskGenius 来查看分区
分区已经制作好
检查 EFI 分区中的文件夹是否与图片一致
如果不一致需要重新制作
0x03 将 KALI LINUX 还原到 U 盘中
1. 使用 DiskGenius 将 DATA 分区格式化成 4G 的分区 FAT32 格式,注意 4K 对其
2. 使用 DiskGenius 将剩余的分区格式化成 10G 的 KALI 的数据分区和剩余的 U 盘自用分区
3. 使用 GHOST 还原 KALI 分区
使用 1.2.3 的顺序来还原分区
还原完成后,使用 DiskGenus 查看分区情况
如图则为还原 igg
0x04 配置启动菜单
1. 配置 BIOS 启动的启动菜单
使用 FbinstTool 来读取 UD 分区中的文件
如果提示 MBR 被破坏,修复它!
打开后,会读取 UD 分区中的内容
将 wepe.iso 拷贝出来
使用 UltraISO 打开拷贝出来的 wepe.iso
将其中的 WEPEMENU.INI 拷贝出来
打开后是如下代码
timeout 5
default 1
gfxmenu /WEPE/MESSAGE
title [01] 微 PE 工具箱(10) [支持 NVMe] 64 位
chainloader ()/WEPE/W10PE64 || find --set-root --ignore-floppies --ignore-cd chainloader /WEPE/W10PE64
title [02] 微 PE 工具箱(8) [老机适用] 64 位
chainloader ()/WEPE/W8PE64 || find --set-root --ignore-floppies --ignore-cd chainloader /WEPE/W8PE64
title [03] MaxDOS 工具箱
map --mem /WEPE/MAXDOS.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title [04] 自定义 ISO 镜像
graphicsmode -1 640
font /WEPE/MENU.HEX
/WEPE/RUN --automenu-all /ISO/
title [05] 从硬盘启动
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /ntldr || chainloader /bootmgr
title [06] 重启计算机
reboot
title [07] 关闭计算机
halt
在 02 和 03 之间添加一个启动项用于启动 KALI
timeout 5
default 1
gfxmenu /WEPE/MESSAGE
title [01] 微 PE 工具箱(10) [支持 NVMe] 64 位
chainloader ()/WEPE/W10PE64 || find --set-root --ignore-floppies --ignore-cd chainloader /WEPE/W10PE64
title [02] 微 PE 工具箱(8) [老机适用] 64 位
chainloader ()/WEPE/W8PE64 || find --set-root --ignore-floppies --ignore-cd chainloader /WEPE/W8PE64
title [03] MaxDOS 工具箱
map --mem /WEPE/MAXDOS.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title [04] Kali Linux
configfile /WEPE/KALI.LST
title [05] 自定义 ISO 镜像
graphicsmode -1 640
font /WEPE/MENU.HEX
/WEPE/RUN --automenu-all /ISO/
title [06] 从硬盘启动
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /ntldr || chainloader /bootmgr
title [07] 重启计算机
reboot
title [08] 关闭计算机
halt
新建一个文本文件取名为 KALI.LST
内容如下
timeout 25
default 2
gfxmenu /WEPE/MESSAGE
title [01] Kali Linux【persistence】find --set-root /g2ldr.mbr
kernel /live/vmlinuz boot=live noconfig=sudo username=root hostname=kali persistence
initrd /live/initrd.img
title [02] Kali Linux【Encrypted Persistence】find --set-root /g2ldr.mbr
kernel /live/vmlinuz boot=live noconfig persistent=cryptsetup persistence-encryption=luks noconfig=sudo username=root hostname=kali persistence
initrd /live/initrd.img
title [03] Kali Linux【failsafe】find --set-root /g2ldr.mbr
kernel /live/vmlinuz boot=live config memtest noapic noapm nodma nomce nolapic nomodeset
nosmp nosplash vag=normal
initrd /live/initrd.img
title [04] Kali Linux【forensic mode】find --set-root /g2ldr.mbr
kernel /live/vmlinuz boot=live noconfig=sudo username=root hostname=kali noswap
noautomount
initrd /live/initrd.img
title [05] 命令行
commandline
title [06] 返回主菜单
configfile /WEPE/WEPEMENU.INI
将修改好的文件 WEPEMENU.INI 和 KALI.LST 导入回刚刚提取出来的 wepe.iso
最后结果如下
保存该 ISO
然后导入到 UD 分区中去
2. 配置 UEFI 的 KALI 启动
下载 grub-2.02-for-windows
解压缩后进入目录
建立一个配置文件 x86_64-eif.cfg
内容如下
search.file /EFI/grub/x64.cfg root
set prefix=($root)/EFI/grub
configfile ($root)/EFI/grub/x64.cfg
进入该目录的 CMD
输入一下代码
grub-mkimage.exe -d x86_64-efi -c x86_64-efi.cfg -p /EFI/grub -o bootx64.efi -O x86_64-efi part_gpt part_msdos disk fat exfat ext2 ntfs xfs appleldr hfs iso9660 normal search_fs_file configfile linux linux16 chain loopback echo efi_gop efi_uga video_bochs video_cirrus file gfxmenu gfxterm gfxterm_background gfxterm_menu halt reboot help jpeg ls png true
执行完成后,会生成 bootx64.efi
打开 U 盘 EFI 分区的 EFI 目录
建立 KALI 文件夹
将 EFI 文件夹下 BOOT 中的 BOOTX64.efi 复制一份到 EFI/MICROSOFT/BOOT 下
将之前 grub 中生成的 bootx64.efi 复制到 EFI/BOOT 下覆盖
在 EFI 文件夹下建立 grub 文件夹
在 grub 文件夹下建立配置文件 x64.cfg
内容如下
set default=0
set fallback=1
set timeout=5
menuentry "Windows" --hotkey=0 {chainloader /efi/microsoft/boot/bootx64.efi}
menuentry "Kali Linux" --hotkey=1 {chainloader /efi/kali/bootx64.efi}
现在 UEFI 启动更改完成
0x05 设置 KALI 系统的持久性以及加密分区
这里使用虚拟机来演示
1. 使用 EFI 进入菜单界面,选择 Kali Linux
2. 选择 live 模式
3. 进入 kali 后,打开终端,使用 gparted 查看需要持久化和加密的分区标识
这里是 /dev/sdb2
4. 使用 luks 加密该分区
cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb2
提示会删除掉这个分区的所有数据,是否继续呢?
输入大写的 YES 后,出入加密分区的密码,即可加密成功。
5. 设置持久化
首先使用 luks open 打开该分区, 挂在到 /dev/mapper/usb 下。
cryptsetup luksOpen /dev/sdb2 usb
将加密分区格式化成 EXT4
mkfs.ext4 /dev/mapper/usb
格式化完成后,需要给这分区添加一个卷标 persistence
卷标名必须为【persistence】,这个是 Kali 系统规定的的可持续卷标
e2label /dev/mapper/usb persistence
写入一个配置文件 persistence.conf 到加密分区,以便 kali 启动时候寻找
persistence.conf
/ union
首先 mount 该加密分区到文件系统
mkdir -p /mnt/usb
mount /dev/mapper/usb /mnt/usb/
echo "/ union" > /mnt/usb/persistence.conf
至此所有操作完成
0x06 测试
重启系统,其后选择外部加密登录
系统会检查到加密分区
输入密码后,即可进入 Kali 系统