0x01 制作KALI GHOST 文件
准备一个32G的U盘,然后下载KALI ISO,使用LIVE进入KALI系统,并使用DD命令将kali系统ISO写入U盘中
1.虚拟机进入Kali环境,插入U盘,使用dmesg命令检查U盘的盘符和信息
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
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 的顺序来还原分区
0x04 配置启动菜单
1.配置BIOS启动的启动菜单
使用FbinstTool来读取UD分区中的文件
如果提示MBR被破坏,修复它!
打开后,会读取UD分区中的内容
使用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
解压缩后进入目录
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
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 测试
重启系统,其后选择外部加密登录
系统会检查到加密分区