用 Kali Linux 創(chuàng)建U盤隨身系統(tǒng)

之前,想通過 Linux 上的 hdparm 命令,擦除降速了的 SanDisk CZ80,然而裝在 VirtualBox 里的 Linux 是沒法對宿主機的 USB 設(shè)備進行 ATA Secure Erase 操作的。于是萌生了制作 Linux Live USB 的想法。

曾經(jīng)也用過 ubuntu 的 Live CD。既然是 CD 嘛,那整個系統(tǒng)都是只讀的,所做的任何修改、安裝的任何軟件都是重啟就丟,即便把 .iso 制作成U盤,也還是這樣。

也有各種第三方制作工具,可以實現(xiàn)修改持久化,就是所謂 persistence。比如 LinuxLive USB,實現(xiàn)持久化的方法,是在U盤的 FAT32 文件系統(tǒng)上創(chuàng)建一個文件,用來保存修改。由于 FAT32 不支持 4GB 以上的大文件,持久化的存儲空間最多也就只能是 4GB。現(xiàn)在 USB 3.0 接口的U盤動輒 16GB 起步,4GB 的限制浪費了大部分空間。那能把U盤格式化成 exFAT,突破限制嗎?對不起,不行。并且,這些第三方的持久化模式對 Mac 的支持也不好,要么直接不能啟動,要么只能啟動為非持久模式。

歸根結(jié)底,像 ubuntu 之類的發(fā)行版提供的 Live 模式,只是為了讓新用戶體驗,從設(shè)計上就沒打算讓你裝U盤上帶著干活。

還有一種辦法,就是把系統(tǒng)直接安裝在U盤上。這樣做對發(fā)行版沒有多少要求,也不用擔心數(shù)據(jù)關(guān)機就丟,但是兼容性差:這臺機器上用得好好的,到了另外一臺上面可能就出現(xiàn)各種驅(qū)動問題。

有沒有這么一種發(fā)行版,可以從U盤啟動,支持持久化,還不挑計算機呢?

ubuntu ubuntu ubuntu Kali
制作工具 LinuxLive USB UNetbootin dd Win32 Disk Imager/dd
制作平臺 Windows Windows/Linux/macOS Linux/macOS Windows/Linux/macOS
持久化 僅限PC 僅限PC PC/Mac
4GB 限制

Kali Linux

Kali Linux 是一個基于 Debian 的、用于數(shù)字取證和滲透測試的發(fā)行版。其用戶的使用場景往往是,繞過目標機原操作系統(tǒng),直接從安裝了 Kali 的U盤或光盤啟動,事了拂衣去,深藏身與名。Live USB系統(tǒng)是 Kali 用戶很常用的一種方式,發(fā)行版設(shè)計的時候就考慮到了持久化等問題。官方文檔上直接提供了制作U盤系統(tǒng)創(chuàng)建持久化分區(qū)的教程,不用再去搜索第三方工具了。

制作U盤系統(tǒng)

下載并驗證得到的 .iso 文件。官方特別強調(diào),應(yīng)當從官方來源下載,并且必須進行 SHA256 驗證。考慮到速度問題,我是從科大源下載的(好像并不是官方來源?),但是下載后按照文檔要求進行了驗證。在下載文件里植入惡意內(nèi)容的事情已經(jīng)發(fā)生過很多次了,Kali 作為一款取證和滲透用的發(fā)行版,如此要求并不是杞人憂天。

Windows 上還需要第三方工具 Win32 Disk Imager,Linux/macOS 只要 dd 命令即可。

當然,首先你得認準了要寫入的設(shè)備才行。在 Windows 上,好像并不是件難事,畢竟誰也不會把 ISO 文件寫到 C 盤去。Linux 和 macOS 上就困難一些,sdadisk2 之類的設(shè)備太多,一不留神真的錯把主機硬盤給覆寫了,哭都來不及。建議先把計算機上能拔掉的 USB 設(shè)備全都拔掉,也包括制作系統(tǒng)的U盤,然后 Linux 用 fdisk -l 、macOS 用 diskutil list,列出所有存儲設(shè)備;插入U盤,再列出設(shè)備。兩相對照,新增的 /dev/sdd 或者 /dev/disk2 之類,就是你要寫的U盤了。

如果是 macOS,還需要把剛剛插入的U盤卸載:

diskutil unmountDisk /dev/diskN

為了防止有人直接復制命令釀成慘劇,我用 diskN 來指代設(shè)備, diskN 不是正常的設(shè)備名,萬一執(zhí)行了也會因為找不到設(shè)備而退出。使用時應(yīng)該把 N 替換成U盤設(shè)備實際對應(yīng)的數(shù)字。

然后就是寫入。cd 到 ISO 文件所在目錄,

dd if=kali-linux-2017.1-amd64.iso of=/dev/diskN bs=1m

可能會需要 root 權(quán)限。

其中 bs 是一次讀寫的字節(jié)數(shù)上限。Linux 建議設(shè)置為 bs=512k。如果 macOS 出現(xiàn) Invalid number '1m' 的提示,那你可能用的是 GNU 版本的 dd, 改成 bs=1M 即可。

macOS 上把設(shè)備名稱從 /dev/diskN 改為 /dev/rdiskN (其中 r 代表 raw),可以顯著提高寫入速度。

然后就是漫長的、無響應(yīng)的阻塞和等待。直到出現(xiàn)類似下面的提示時,U盤系統(tǒng)就制作完成了。

2911+1 records in
2911+1 records out
3053371392 bytes transferred in 2151.132182 secs (1419425 bytes/sec)

持久化

但是這時的 Live 系統(tǒng)還不支持持久化。

Kali 的持久化是直接在U盤上開辟分區(qū)的,大小僅受U盤容量限制,還支持加密。持久化操作應(yīng)當在 Linux 上進行,因為其他系統(tǒng)不方便建立 ext3 文件系統(tǒng)。我是在 ubuntu Live 上操作的,這樣總共就需要 2 塊U盤,似乎直接在剛才建立的 Kali Live 系統(tǒng)上操作也可行。

為了便于說明,我們作如下假設(shè):

  • 你擁有系統(tǒng)的 root 權(quán)限,
  • U盤的設(shè)備名為 /dev/sdb
  • U盤容量為 8GB

先用 fdisk -l 檢查查看一下U盤,應(yīng)該能看到 2 個分區(qū),/dev/sdb1/dev/sdb2,我們將要創(chuàng)建的是 /dev/sdb3

然后用 parted 劃分分區(qū):

end=7gb
read start _ < <(du -bcm kali-linux-2016.2-amd64.iso | tail -1); echo $start
parted /dev/sdb mkpart primary $start $end

Shell 變量 startend 代表分區(qū)的起始點。因為U盤容量只有 8GB,我們把分區(qū)的 end 設(shè)為 7GB;start 是通過 ISO 文件的大小算出來的,所以這時的工作目錄下需要有一份和制作U盤系統(tǒng)一致的 ISO 文件。如果 ISO 文件的大小是 3GB,新分區(qū)的大小大約就是 end - start = 4GB。如果U盤容量更大,end 也可以設(shè)得大些。

parted 可能會提示,無法使用你指定的 start,接受它建議的數(shù)值就好;還會提示分區(qū)沒有放在 optimal location,忽略即可。gpartedparted 的圖形界面版本,也可以使用。

第三步,創(chuàng)建 ext3 文件系統(tǒng)并命名為 persistence

mkfs.ext3 -L persistence /dev/sdb3
e2label /dev/sdb3 persistence

第四步,掛載新的 /dev/sdb3,創(chuàng)建配置文件。

mkdir -p /mnt/my_usb
mount /dev/sdb3 /mnt/my_usb
echo "/ union" > /mnt/my_usb/persistence.conf
umount /dev/sdb3

完成!

使用的時候,PC 在 BIOS 里選擇從U盤啟動,Mac 按住 Option 啟動即可。選擇進入 Live USB Persistence ,創(chuàng)建的修改就都會被保存在U盤上了。

參考資料:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,238評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,823評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,339評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,713評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,893評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,448評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,201評論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,397評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,631評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,128評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,347評論 2 377

推薦閱讀更多精彩內(nèi)容