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-.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制作文件,使用专用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系统