滲透測試系統Kali安裝到USB硬盤並實現數據可存儲


小提示:本文使用的操作系統為Linux,所有命令都在 root 用戶下執行

在計算機硬件越來越NB的時代下,把Kali安裝到USB中對我們來講然意義並不是太大,那為什么還要介紹Kali的U盤安裝方法呢?

  • 便攜
  • 從USB啟動Kali完全不影響主機的操作系統(虛擬機運行在宿主機上,總有種不安全的感覺)

以上純屬個人觀點

1、材料准備

  • Kail Linx 鏡像,Kali Linux 官方下載地址 。
  • 一個容量為8GB的U盤(建議U盤大小為16GB以上,8GU盤太小,我這里使用8GB容量U盤只是出於演示目的)
  • 一台安裝了Linux操作系統的主機(我這里使用的Debian9)

准備Kali鏡像:這是我所下載的Kali鏡像

准備U盤:
a. 插入U盤,確認設備名稱以及分區
使用以下命令查看:

fdisk -l
3.png

由上面可以看出,目前我的系統有三個磁盤:

  • 一個465.8G,設備名稱為 sda ,路徑是 /dev/sda(這是我本機的系統盤)
  • 一個111.8G,設備名稱為 sdb ,路徑是 /dev/sdb(這是我額外掛載的用於存儲家目錄數據的磁盤)
  • 一個7.5G,設備名稱為 sdc,路徑是 /dev/sdc (這就是我們剛剛插入的8GU盤)

現在我們不管另外兩個磁盤,來看下U盤,可以看到,目前我的U盤上有三個分區

  • /dev/sdc1
  • /dev/sdc2
  • /dev/sdc3

b. 清除分區(如果你的U盤沒有分區,那你可以直接跳到下一步)
以下是分區清除過程

# 進入U盤(操作U盤)
root@c5:/home/code5# fdisk /dev/sdc

Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

# 輸入指令 d ,表示刪除分區
Command (m for help): d
# 輸入3 表示刪除分區3,也就是 /dev/sdc3 這個分區
Partition number (1-3, default 3): 3

Partition 3 has been deleted.

# 刪除分區 2
Command (m for help): d   
Partition number (1,2, default 2): 2

Partition 2 has been deleted.

# 刪除分區 1,由於上面刪除了兩個分區,U盤中只剩下一個分區,所以不用選擇分區號,fdisk會直接刪除分區1
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

# 寫入對U盤的修改
Command (m for help): w

再次查看分區

fdisk -l

從上面可以看到,我們的U盤已經沒有任何分區了
所以我們現在擁有了一個沒有任何分區的純凈U盤

2、制作啟動盤

現在我們的Kali鏡像以及純凈U盤准備好了,開始制作kali的啟動盤。
要制作Kali的啟動盤很簡單,使用dd命令即可

# 把 kali 鏡像寫入到我們的U盤中
dd if=./kali-linux-2019.1a-amd64.iso of=/dev/sdc bs=1M
# if(input file) :  輸入
# of(output file):  輸出
# bs(bytes)      :  輸入/輸出塊大小

寫入完成后,你U盤會多出兩個分區,一個是引導分區,一個是Kali的系統分區。


所以,你的U盤看起來應該是這樣的


使用 dd 命令制作Kali啟動盤后就是可直接使用的 Live 系統了,插上到USB中,把電腦設置為USB啟動即可使用。

3、為啟動盤做持久化處理

第二步中我們已經把Kali的啟動盤制作好了,但還不能持久化存儲數據,一旦重啟,你對Kali的所有修改都會復原,所以我們要對啟動盤做一些持久化的處理,讓其可以存儲我們的修改和數據。

做持久化處理說白了就是在啟動盤中:划分存儲分區,配置存儲分區,用於存儲數據。

所以,我們先使用 parted命令 在U盤中新建一個分區,以下是新建分區步驟:

# 進入U盤(操作U盤)
root@c5:/home/code5# parted /dev/sdc
GNU Parted 3.2
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)                                                                  
(parted)
# 使用print指令查U盤所有分區                                                                  
(parted) print                                                            
Model: Generic Flash Disk (scsi)
Disk /dev/sdc: 8053MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: s

# 未划分前有兩個分區
Number  Start   End     Size    Type     File system  Flags
 1      32.8kB  3483MB  3483MB  primary               boot, hidden
 2      3483MB  3484MB  721kB   primary

# 把剩余空間划分為存儲分區
# 3484: 第二個分區的起點
# 8053: U盤總大小
(parted) mkpart primary 3484 8053                                         
(parted) print                                                            
Model: Generic Flash Disk (scsi)
Disk /dev/sdc: 8053MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

# 划分存儲分區后
Number  Start   End     Size    Type     File system  Flags
 1      32.8kB  3483MB  3483MB  primary               boot, hidden
 2      3483MB  3484MB  721kB   primary
 3      3484MB  8053MB  4569MB  primary               lba

# 退出 parted
(parted) quit                                                             
Information: You may need to update /etc/fstab.

root@c5:/home/code5#                                                      
現在,你的U盤看起來應該是這樣

分區划分好了,向分區寫入 ext3 文件系統, 並命名為 persistence(這一步很重要!這一步很重要!這一步很重要!)

mkfs.ext3 -L persistence /dev/sdc3

寫入文件系統后,為存儲分區分配一個名為 persistence 的卷標(這一步很重要!這一步很重要!這一步很重要!)

e2label /dev/sdc3 persistence

現在你可以從U盤啟動你的Kali,並在Kali的設置中把語言改為中文,重啟Kali。

重啟后你會發現,語言是英文而不是我們重啟前所設置的中文,這說明我們的Kali啟動盤還沒有實現數據的持久化存儲。

那是因為我們還未配置我們的存儲分區。

現在,讓我們重新插入U盤。

掛載我們的存儲分區(因為我們要向存儲分區寫入配置文件)

# 在掛載目錄下新建 my_usb 目錄用於掛載我們的存儲分區
mkdir -p /mnt/my_usb

# 掛載存儲分區到 /mnt/my_usb
mount /dev/sdc3 /mnt/my_usb

寫入配置文件

# 在存儲分區創建配置文件 persistence.conf 並寫入內容: / union
echo "/ union" > /mnt/my_usb/persistence.conf

卸載存儲分區

umount /dev/sdc3

持久化的處理到這里已經結束了,現在!你可以彈出你的U盤,再次嘗試修改Kali的使用語言 <*_*>

關於啟動選項問題

在啟動過程中你會發現Kali給出了許多個啟動選項

其中關於 持久化 的選項有兩個

  • Live system (persistence, check kali.org/prst)
  • Live system (encrypted persistence, check kali.org/prst)

Live system (persistence, check kali.org/prst):這個選項用於啟動可持久化的Kali
Live system (encrypted persistence, check kali.org/prst):這個選項用於啟動可持久化的加密kali(也就是把存儲分區加密后的kali),關於如何制作加密Kali,請看Kali官方教程,這里不再贅述。

什么,你不想看官方教程,那我在這里把命令簡單的復制並解釋一下下

# 首先把你的U盤搞成純凈U盤
# 假設你的U盤設備為 /dev/sdc
# 假設你使用的Kali鏡像為 kali.ios



### 把鏡像寫入到到U盤,得到兩個分區 /dev/sdc1 /dev/sdc2
dd if=kali.iso of=/dev/sdb bs=1M


### 划分存儲分區 /dev/sdc3
# 選擇操作的設備
parted /dev/sdc
#划分一個 start~end 大小的分區,根據你的U盤大小來設置
mkpart primary start end
# 退出 parted
quit


### 加密存儲分區 /dev/sdb3
# LUKS加密 存儲分區 /dev/sdc3
cryptsetup --verbose --verify-passphrase luksFormat /dev/sdc3
# 映射 /dev/sdb3 存儲分區為 my_sub
cryptsetup luksOpen /dev/sdc3 my_usb
# 向分區寫入 ext3 文件系統
mkfs.ext3 /dev/mapper/my_usb
# 為存儲分區分配卷標 persistence
e2label /dev/mapper/my_usb persistence


### 寫入配置文件
# 創建掛載目錄
mkdir -p /mnt/my_usb
# 掛載存取分區到 /mnt/my_usb
mount /dev/mapper/my_usb /mnt/my_usb
# 向存儲分區寫入配置文件 persistence.conf ,內容為:/ union
echo "/ union" > /mnt/my_usb/persistence.conf
# 卸載存儲分區
umount /dev/mapper/my_usb
# 關閉映射
cryptsetup luksClose /dev/mapper/my_usb

其實制作加密版的可持久化Kali只是多了一個 LUKS加密 的步驟,和普通的可持久Kali的制作差不多。

后語

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM