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

50次阅读

共计 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 系统

正文完
 0