制作 UD + EFI + PE + KALI 启动U盘

shipinsky 2019-11-05

0x01 制作KALI GHOST 文件

准备一个32G的U盘,然后下载KALI ISO,使用LIVE进入KALI系统,并使用DD命令将kali系统ISO写入U盘中

1.虚拟机进入Kali环境,插入U盘,使用dmesg命令检查U盘的盘符和信息
制作 UD + EFI + PE + KALI 启动U盘
2.启动gparted 卸载掉分区后,删除分区
制作 UD + EFI + PE + KALI 启动U盘
3.使用dd命令将Kali iso 写入U盘

dd if=kali-linux-kde-2019.2-amd64.iso of=/dev/sdb bs=1M

制作 UD + EFI + PE + KALI 启动U盘
4.使用DiskGenius 将U盘中EFI分区的文件保存起来备用

制作 UD + EFI + PE + KALI 启动U盘

5.使用ghost工具将制作好的KALI系统分区备份成kali.gho

5.1 打开Ghost按照1.2.2的菜单顺序备份分区
制作 UD + EFI + PE + KALI 启动U盘

制作 UD + EFI + PE + KALI 启动U盘

制作 UD + EFI + PE + KALI 启动U盘

0x02 制作PE及UD和EFI分区

使用DiskGenius将U盘格式化成NTFS的一个分区

制作 UD + EFI + PE + KALI 启动U盘

去无忧论坛下载一个可以格式化三分区的EFI系统

微PE工具箱V1.2&2.0 UD三分区 EFI分区共享 新增双64位合盘【201900702更新】

制作 UD + EFI + PE + KALI 启动U盘

打开相关PE制作文件,使用专用U盘三分区工具来制作PE

制作 UD + EFI + PE + KALI 启动U盘

制作完成后,打开DiskGenius来查看分区

制作 UD + EFI + PE + KALI 启动U盘

分区已经制作好

检查EFI分区中的文件夹是否与图片一致

制作 UD + EFI + PE + KALI 启动U盘
如果不一致需要重新制作

0x03 将KALI LINUX 还原到U盘中

1.使用DiskGenius将DATA分区格式化成4G的分区FAT32格式,注意4K对其
制作 UD + EFI + PE + KALI 启动U盘

制作 UD + EFI + PE + KALI 启动U盘
2.使用DiskGenius将剩余的分区格式化成10G的KALI的数据分区和剩余的U盘自用分区

制作 UD + EFI + PE + KALI 启动U盘
3.使用GHOST还原KALI分区
使用1.2.3 的顺序来还原分区

制作 UD + EFI + PE + KALI 启动U盘

制作 UD + EFI + PE + KALI 启动U盘
还原完成后,使用DiskGenus查看分区情况

制作 UD + EFI + PE + KALI 启动U盘
如图则为还原igg

0x04 配置启动菜单

1.配置BIOS启动的启动菜单
使用FbinstTool来读取UD分区中的文件
如果提示MBR被破坏,修复它!

制作 UD + EFI + PE + KALI 启动U盘

打开后,会读取UD分区中的内容

制作 UD + EFI + PE + KALI 启动U盘
将wepe.iso拷贝出来

制作 UD + EFI + PE + KALI 启动U盘

使用UltraISO打开拷贝出来的wepe.iso

制作 UD + EFI + PE + KALI 启动U盘

将其中的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

制作 UD + EFI + PE + KALI 启动U盘

最后结果如下

制作 UD + EFI + PE + KALI 启动U盘

保存该ISO
然后导入到UD分区中去

制作 UD + EFI + PE + KALI 启动U盘

2.配置UEFI的KALI启动

下载grub-2.02-for-windows

解压缩后进入目录

制作 UD + EFI + PE + KALI 启动U盘
建立一个配置文件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

制作 UD + EFI + PE + KALI 启动U盘

执行完成后,会生成bootx64.efi

制作 UD + EFI + PE + KALI 启动U盘

打开U盘EFI分区的EFI目录
建立KALI文件夹

制作 UD + EFI + PE + KALI 启动U盘

将EFI文件夹下BOOT中的BOOTX64.efi复制一份到EFI/MICROSOFT/BOOT下

制作 UD + EFI + PE + KALI 启动U盘

制作 UD + EFI + PE + KALI 启动U盘

将之前grub中生成的bootx64.efi复制到EFI/BOOT下覆盖
在EFI文件夹下建立grub文件夹

制作 UD + EFI + PE + KALI 启动U盘

在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

制作 UD + EFI + PE + KALI 启动U盘

2.选择live 模式

制作 UD + EFI + PE + KALI 启动U盘

3.进入kali后,打开终端,使用gparted查看需要持久化和加密的分区标识
这里是/dev/sdb2

制作 UD + EFI + PE + KALI 启动U盘

4.使用luks加密该分区

cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb2

制作 UD + EFI + PE + KALI 启动U盘
提示会删除掉这个分区的所有数据,是否继续呢?

制作 UD + EFI + PE + KALI 启动U盘

输入大写的YES后,输入加密分区的密码,即可加密成功。

5.设置持久化
首先使用luks open 打开该分区,挂在到/dev/mapper/usb下。

cryptsetup luksOpen /dev/sdb2 usb

制作 UD + EFI + PE + KALI 启动U盘
将加密分区格式化成EXT4

mkfs.ext4 /dev/mapper/usb

制作 UD + EFI + PE + KALI 启动U盘
格式化完成后,需要给这分区添加一个卷标 persistence
卷标名必须为【persistence】,这个是Kali系统规定的的可持续卷标

e2label /dev/mapper/usb persistence

制作 UD + EFI + PE + KALI 启动U盘

写入一个配置文件 persistence.conf 到加密分区,以便kali启动时候寻找

persistence.conf

/ union

首先mount 该加密分区到文件系统

mkdir -p /mnt/usb
mount /dev/mapper/usb /mnt/usb/
echo " / union" > /mnt/usb/persistence.conf

制作 UD + EFI + PE + KALI 启动U盘

至此所有操作完成

0x06 测试

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

制作 UD + EFI + PE + KALI 启动U盘

系统会检查到加密分区

制作 UD + EFI + PE + KALI 启动U盘
输入密码后,即可进入Kali系统

相关推荐