Kali之U盘启动加密与持久化存储制作流程
时间:2022-07-26
本文章向大家介绍Kali之U盘启动加密与持久化存储制作流程,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
0x00 前言
描述:最近在家开始将原来所学的一些渗透知识以及渗透工具重新整理了一边,加之个人对Kali OS是非常的喜欢,在渗透测试中可谓是一把利器同时也是做安全人员必不可少的工具, 同时Kali已经更新到2020.1版本这使得我迫不及待的想体验一把,所以写了这篇文章;
环境工具准备:
- Kali-Live镜像: kali-linux-2020.1-live-amd64.iso (注意:最新的Kali2020.1安装版本不带Live了,下载地址参见国内的开源镜像站)
- 镜像烧录工具: Win32DiskImager 或者 UltraISO 或者 Linux中的dd命令
- 备份工具: GHOST 或者其他备份磁盘工具
- 磁盘分区工具: DiskGenius 520884_x64(DG)
- 启动编辑工具: FbinstTool
- PE启动工具箱: 老毛桃 或者 优启通
- U盘:建议 32 GB 以上 (闪迪 / Kingston 且3.0接口以上)
0x01 安装流程
- Step1.直接属性格式化或者才DG进行
格式化U盘
为NTFS文件系统类型; - Step2.使用Win32DiskImager镜像烧录工具进行
烧录Kail镜像到U盘
之中;
- Step3.备份烧录的镜像为GHO文件采用Ghost备份工具:
To Image > 选择U盘 > Kail 安装分区(注意盘符) > 导出镜像到文件 > 不压缩
;
- Step4.创建分区镜像和完成导出镜像Gho文件
- Step5.格式化U盘为FAT文件系统或者采用老毛桃直接初始化U盘,然后采用自定义的个性设置(
纯属装B实际没必要
)
- Step6.安装PE启动后我们进行拆分分区
UEFI 引导区域不要动
,按照下图所示进行分区即可(为了方便Kail系统识别这里先将做数据持久化的分区格式化为ext4文件系统
):
- Step7.导入Kali镜像GHOST备份到分区I之中
- Step8.配置GURB启动菜单设置,打开FbinstTool工具导入KALI.LST并且修改MENU.LST图中所示:
configfile /ILMT/GRUB/KALI.LST
;
#KALI.LST
timeout 15
default 1
gfxmenu /BOOT/GRUB/MESSAGE
graphicsmode -1 600:800
font /BOOT/GRUB/MENU.HEX
find --set-root /ILMT/GRUB/MESSAGE && gfxmenu /ILMT/GRUB/MESSAGE
calc *0x307FFC-0x110000 > nul && configfile (md)4+8 ! configfile (md)0x880+0x200
title [1] Kail-Live
find --set-root /g2ldr.mbr
kernel /live/vmlinuz boot=live noconfig=sudo username=kali hostname=kali persistence
initrd /live/initrd.img
title [2] Kali-Encrypted-Persistence
find --set-root /g2ldr.mbr
kernel /live/vmlinuz boot=live noconfig persistent=cryptsetup persistence-encryption=luks noconfig=sudo username=kali hostname=kali persistence
initrd /live/initrd.img
title [3] 返回主菜单
configfile /BOOT/GRUB/MENU.LST
- Step9.在电脑上测试做好的启动盘(或者可以采用老毛桃的模拟启动),注意首次进入Kail-Live等继续完成磁盘加密以及持久化配置后使用菜单2
Kali-Encrypted-Persistence
即可使用;
- Step10.等待一段时间后进入我们渴望已久的Kali登录页面,此时您会发现采用root/toor是无法登录的,必须采用
kali/kali
账号密码进行登录原因我在后面进行说明;
- Step11.采用cryptsetup进行加密U盘我们持久化数据存区并且设置U盘持久化存储:
kali@kali:~/Desktop# sudo fdisk -l #查看磁盘以及分区信息
kali@kali:~/Desktop# sudo cryptsetup -y luksFormat /dev/sdb4 #输入YES(注意大小写)后进行输入解密密码
kali@kali:~/Desktop# sudo cryptsetup open /dev/sdb4 hacker #打开加密的分区
kali@kali:~/Desktop# sudo mkfs.ext4 -L persistence /dev/mapper/hacker #格式化数据分区为ext4文件类型
# mke2fs 1.45.5 (07-Jan-2020)
# Creating filesystem with 21849600 4k blocks and 5464064 inodes
# Filesystem UUID: 5dde6106-8e94-4beb-a760-5d4cdfe3caaa
# Superblock backups stored on blocks:
# 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
# 4096000, 7962624, 11239424, 20480000
# Allocating group tables: done
# Writing inode tables: done
# Creating journal (131072 blocks): done
# Writing superblocks and filesystem accounting information: done
kali@kali:~/Desktop# sudo e2label /dev/mapper/hacker persistence #设置分区盘符标签名称
#进行持久化persistent U 盘设置
kali@kali:~/Desktop# sudo mkdir -p /mnt/hacker && mount /dev/mapper/hacker /mnt/hacker
kali@kali:~/Desktop# sudo echo "/ union" > /mnt/hacker/persistence.conf
kali@kali:~/Desktop# sudo umount /dev/mapper/hacker
#关闭打开的分区(最后一步至关重要)
kali@kali:~/Desktop# sudo cryptsetup close /dev/sdb4 /dev/mapper/hacker
- Step12.重启后进入Kali-Encrypted-Persistence引导菜单,此时在加载系统之时需要我们进行输入cryptsetup加密的密码,然后就可以正常的进入系统;
- Step13.放置一个文件测试Kail U盘的持久化之后再次重启发现该文件仍然存在即可,以后安装软件都会保留在我们的持久化数据盘上;
0x02 入坑解决
所遇问题1.最开始直接下载了kali-linux-2020.1-installer-amd64.iso版本烧入进入U盘里发现怎么都不能引导成功;
问题原因: 由于最新版本的Kali-linux 2020.1 不在安装包中提供live镜像了所以无法找到kernel /live/vmlinuz boot=live
,最终不得不下载live的版本完美解决此种问题;
所遇问题2.进入Kali2020.1登录界面后发现无法采用root/toor我们熟悉的默认kail-live账号密码进行登录
问题原因:最新版本的kali采用kali/kali作为账号密码现在是一个标准的、无特权的用户
,如何想使用root用户进行登录在登录kali后进行修改即可但是仅仅是临时生效的(除非您构建一个自定义的Kali Live镜像系统);
$ sudo passwd root
所遇问题3.使用U盘启动Kali Live persistence后发现中文会乱码我们需要进行解决(替换镜像源这里就不说了) 解决流程:
#1.查看系统字符集是否存在zh_CN.UTF-8
sudo locale -a
#2.进入图形化界面之后,(空格是选择,Tab是切换,*是选中),选中en_US.UTF-8和zh_CN.UTF-8,
sudo dpkg-reconfigure locales
#3.安装中文字体解决网页乱码/系统文字乱码
sudo apt-get install xfonts-intl-chinese ttf-wqy-microhei
#4.设置系统全局语系(然后重启即可)
echo LANG="zh_CN.UTF-8" > /etc/default/locale
[email protected]:~/Desktop$ cat /etc/default/locale
LANG=zh_CN.UTF-8
进阶学习: 定制自己的Kali Live iso镜像:
- https://blog.csdn.net/qq_33917045/article/details/80468975
- https://blog.csdn.net/cwtv123/article/details/53741747
- HDU - 1846 Brave Game
- React多页面应用4(webpack4 提取第三方包及公共组件)
- zoj 2420
- SPOJ NWERC11B Bird tree
- React多页面应用6(gulp自动化发布到多个环境、生成版本号、压缩成zip等)
- SDIBT 1046 Primary Arithmetic
- 洛谷P2415 集合求和
- React多页面应用5(webpack生产环境配置,包括压缩js代码,图片转码等)
- SDIBT 1046 Primary Arithmetic
- React多页面应用4(webpack自动化生成多入口页面)
- 第二周神经网络基础2.1 二分分类2.2 logistic回归2.3 logistic 回归损失函数2.4 梯度下降2.5 导数2.14 向量化logistic 回归的输出2.15 Python中的广
- 1031 SDIBT Where's Waldorf?
- poj 2469 Stack 'em Up
- React多页面应用3(webpack性能提升,包括打包性能、提取公共包等)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 百万级类别的分类模型的拆分训练
- 关于Spring定义的preDestroy修饰的方法不执行,有以下两种原因,总有一款适合你
- CSP201912-2-回收站选址题目解析-Java ,
- Spring boot框架快速入门
- SpringBoot 跨域问题:Access to XMLHttpRequest at ‘***‘ from origin ‘***‘ has been blocked by CORS policy
- 火车购票-CSP201609-2-Java
- 从后端开发人员的视角:最浅显的理解 Vue
- Sublime怎么默认显示文件路径
- Git 删除已提交的文件
- Sublime 怎么装SQL语法检测器
- Vue 设置环境变量和模式
- 你真的掌握了Python基本语法了吗?
- Mybatis-Generator 代码生成器的使用
- 提高数据分析工作效率-Sublime如何设置默认打开文件格式
- 使用 freemarker 制作代码生成器