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 5default 1gfxmenu /WEPE/MESSAGEtitle [01] 微 PE 工具箱(10) [支持NVMe] 64位chainloader ()/WEPE/W10PE64 || find --set-root --ignore-floppies --ignore-cd chainloader /WEPE/W10PE64title [02] 微 PE 工具箱(8) [老机适用] 64位chainloader ()/WEPE/W8PE64 || find --set-root --ignore-floppies --ignore-cd chainloader /WEPE/W8PE64title [03] MaxDOS 工具箱map --mem /WEPE/MAXDOS.IMG (fd0)map --hookchainloader (fd0)+1rootnoverify (fd0)title [04] 自定义ISO镜像graphicsmode -1 640font /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 /bootmgrmap () (hd0)map (hd0) ()map --rehookfind --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgrchainloader /ntldr || chainloader /bootmgrtitle [06] 重启计算机reboottitle [07] 关闭计算机halt

在02 和 03 之间添加一个启动项用于启动KALI

timeout 5default 1gfxmenu /WEPE/MESSAGEtitle [01] 微 PE 工具箱(10) [支持NVMe] 64位chainloader ()/WEPE/W10PE64 || find --set-root --ignore-floppies --ignore-cd chainloader /WEPE/W10PE64title [02] 微 PE 工具箱(8) [老机适用] 64位chainloader ()/WEPE/W8PE64 || find --set-root --ignore-floppies --ignore-cd chainloader /WEPE/W8PE64title [03] MaxDOS 工具箱map --mem /WEPE/MAXDOS.IMG (fd0)map --hookchainloader (fd0)+1rootnoverify (fd0)title [04] Kali Linuxconfigfile /WEPE/KALI.LSTtitle [05] 自定义ISO镜像graphicsmode -1 640font /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 /bootmgrmap () (hd0)map (hd0) ()map --rehookfind --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgrchainloader /ntldr || chainloader /bootmgrtitle [07] 重启计算机reboottitle [08] 关闭计算机halt

新建一个文本文件取名为KALI.LST
内容如下

timeout 25default 2gfxmenu /WEPE/MESSAGEtitle [01] Kali Linux 【persistence】find --set-root /g2ldr.mbrkernel /live/vmlinuz boot=live noconfig=sudo username=root hostname=kali persistenceinitrd /live/initrd.imgtitle [02] Kali Linux 【Encrypted Persistence】find --set-root /g2ldr.mbrkernel /live/vmlinuz boot=live noconfig persistent=cryptsetup persistence-encryption=luks noconfig=sudo username=root hostname=kali persistenceinitrd /live/initrd.imgtitle [03] Kali Linux 【failsafe】find --set-root /g2ldr.mbrkernel /live/vmlinuz boot=live config memtest noapic noapm nodma nomce nolapic nomodesetnosmp nosplash vag=normalinitrd /live/initrd.imgtitle [04] Kali Linux 【forensic mode】find --set-root /g2ldr.mbrkernel /live/vmlinuz boot=live noconfig=sudo username=root hostname=kali noswapnoautomountinitrd /live/initrd.imgtitle [05] 命令行commandlinetitle [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=0set fallback=1set timeout=5menuentry "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/usbmount /dev/mapper/usb /mnt/usb/echo " / union" > /mnt/usb/persistence.conf

至此所有操作完成

0x06 测试

重启系统,其后选择外部加密登录

系统会检查到加密分区


输入密码后,即可进入Kali系统