手機端(安卓)安裝 Kali Linux 系統詳細教程


文章出自個人博客https://knightyun.github.io/2020/01/10/linux-kali-android,轉載請申明。


目錄

前言

之前寫有文章介紹過關於 Kali Linux 系統安裝的詳細教程,不過是在電腦端真機或虛擬機中的安裝步驟,那麼作爲平時使用最多並且能方便攜帶的智能手機端,是否有方法或技術來實現安裝呢?還確實有,這也是該文章的主旨。我們都知道安卓系統本身就是 Linux 系統的一個發行版本,所以在技術理論上是有可行性的,並且目前還確實有人實現了,至於蘋果手機(iOS系統)端,筆者沒做研究,就不做闡述了,有興趣可以自行了解。那麼現在就來介紹一下如何在手機端(安卓系統)進行 Linux 系統(包括但不限於 Kali)的安裝。

原理概述

其實實現該技術的原理並不複雜,由於安卓是 Linux 系統的一個分支,所以和其他主流 Linux 操作系統之間有着很大的共同性,比如很多 shell 指令代碼都能使用。另外,Linux 命令中有一個叫 chroot 的,大概的作用就是在指定的根目錄下運行命令,通俗講,類似於 Windows 系統中的安全沙箱的概念,即一個安全的隔離環境,這也是該命令的目的所在。因此,既然能在該指定目錄下運行一些命令,那麼要是把整個操作系統的命令、目錄以及文件都裝進去,那它不就成了一個嵌入的系統了嗎,這裏又有些類似虛擬機的概念。

當然,要在手機中執行這些命令就免不了要手機獲得 root 權限,即對手機進行 ROOT;不用擔心,這只是其中一個辦法,本文也會介紹另一種不需要 ROOT 手機的方法。總結一下二者的原理:ROOT 操作相當於直接在手機安卓系統中掛載一個 Linux 系統(例如 Kali),而非 ROOT 方法就有些繞,類似於在安卓系統中通過軟件掛載一個能執行一些命令的環境(當然這樣會有很多權限限制,畢竟沒有 ROOT),然後在這個環境中就可以再掛載想要的 Linux 操作系統了,由於這個系統在一個虛擬的環境中,所以就不存在權限的問題了(得不到真實的權限,給與虛擬的權限還是做得到的→_→,哈哈哈)。通俗講就是,ROOT 使用的是真機中的虛擬機,而非 ROOT 使用的是真機中的虛擬機中的虛擬機(感覺繞可以再讀幾遍)。

下面是安裝系統的兩種方法:

ROOT 環境

主要軟件

Linux Deploy

有 root 權限的話,安裝就比較簡單,並且安裝的系統使用也比較流暢,畢竟是直接與真機硬件交互的,然後就先介紹一下該方法的主角:Linux Deploy,它是一個安卓軟件,圖標是一個小企鵝,在各大應用市場應該都能搜得到,找不到的話可以在這裏下載:

鏈接: https://pan.baidu.com/s/16OKQc2ru5E7yOTliDzNuUw
提取碼: vi7w

VNC Viewer

另外需要一款遠程連接軟件(這裏使用 VNC Viewer)來顯示系統界面,因爲系統安裝到手機中後,一般不會直接把桌面和窗口輸出到手機的主屏幕,所以需要遠程桌面軟件連接到該系統來進行顯示,否者就是使用終端連接(如 SSH)的純命令行操作,VNC Viewer 軟件也能在各大市場搜到,或者從下面的鏈接下載:

鏈接:https://pan.baidu.com/s/1cjBii8MWSAqsM-9urW658Q
提取碼:h7si

Terminal

一款安卓的終端軟件(非必需),可以在手機上執行一些 Linux 命令,也可以使用它提供的 SSH 連接到之後安裝的系統,依然,市場搜不到可以在下面的鏈接下載:

鏈接: https://pan.baidu.com/s/1ZOUjbmW0MLjbMunAGecGfA
提取碼: 5jhj

下面是 Deploy 軟件主界面的截圖:

Screen-20191211-132447.png

Screen-20191211-132433.png

配置

在安裝系統前,需要進行一些配置,順便解釋一下各個配置選項,先點擊軟件主頁的配置按鈕(上圖右下角)進入配置頁面:

Screen-20191211-142939.png

發行版本,點進去選擇想要的 Linux 發行版,這裏以 Kali 爲例:

Screen-20191211-142948.png

架構,點進去會出來這麼幾個選項:

Screen-20191211-143014.png

這裏簡單解釋一下選項中的五種架構,前三個 armel, armhf, arm64 都是 ARM 處理器(常見的手機處理器品牌,類似於電腦的 Intel)的幾個版本,區別如下:

  • armel:(arm eabi little endian)也即softfp,用fpu計算,但是傳參數用普通寄存器傳,這樣中斷的時候,只需要保存普通寄存器,中斷負荷小,但是參數需要轉換成浮點的再計算;
  • armhf:(arm hard float)也即hard,用fpu計算,傳參數用fpu中的浮點寄存器傳,省去了轉換性能最好,但是中斷負荷高;
  • arm64:64位的arm默認就是hard float的,因此不需要hf的後綴;

至於第四個 i386 是 Intel 的 32 位處理器架構,最後一個 amd64 則是 AMD(一家類似 Intel 的處理器公司)的 64 位處理器架構;

那麼要如何判斷自己的手機是哪種架構呢?方法很多,可以使用上面提到的 Terminal 軟件,通過 cat /proc/cpuinfo 命令查看手機的 CPU 架構信息,如圖所示:

Screen-20191211-142738.png

Screen-20191211-142830.png

這一步查詢可能會看到諸如 ARMv8, ARMv7, Cortex-A, AArch64, AArch32 等字眼,簡單解釋一下,ARMv7 和 ARMv8 是兩個 ARM 的版本,v7 版本是 32位 的,v8 是 ARM 公司的第一款 64位 處理器架構,並且從 v7 版本後開始變成了 Cortex 架構,包括 Cortex-A、Cortex-R、C ortex-M 系列,其中的 Cortex-A 系列就是常見的只能手機處理器,另外兩個多應用於車載系統,嵌入式微控制器等領域;ARMv8-A 有兩種執行狀態: AArch64AArch32(後者是爲了兼容以前的32bit的程序),AArch64執行A64指令,使用 64bit 的通用寄存器;AArch32 執行 A32/T32 指令,使用 32bit 的通用寄存器;

所以可以簡單的理解爲 ARMv7 是 32位,ARMv8 是 64位的;如果不想用終端和命令查看,也可以使用軟件直接查看,比如著名的 AIDA64,可以在市場搜索下載,或者使用鏈接:

鏈接: https://pan.baidu.com/s/1wvUc0VhWyhb-QGbkd9LylQ
提取碼: mqby

打開後點擊中央處理器模塊,內核架構信息裏就是要找的架構類型,這裏的是 ARMv8 的,如下圖:

Screenshot_20191212_101530_com_finalwire_aida64.jpg

Screenshot_20191212_101534_com.finalwire.aida64.jpg

因此我們在配置裏選擇 ARM64

發行版的版本,之前選擇 Kali 的話就默認只有一個 kali-rolling 版本,其它系統的話自行決定:

Screen-20191211-143025.png

源地址,就是軟件從哪裏去獲取系統鏡像等相關文件,這裏用默認的就行:

Screen-20191211-143151.png

當然官方源的是網站是國外的,速度可能有點慢,可以選擇使用國內的源,比如阿里雲和中科大等,詳細介紹可以參考這篇 文章,比如使用阿里雲的就把地址改爲以下內容:

http://mirrors.aliyun.com/kali/

安裝類型,一般就選擇默認的鏡像文件類型,方便安全,至於其它類型就是它們字面上的意思,所以可能會和系統出現衝突:

Screen-20191211-143213.png

安裝路徑,就是決定把鏡像文件安裝到哪,並且以什麼名字命名,默認的值使用了環境變量,測試似乎存在問題,所以改一下,比如我們安裝到內置存儲的根目錄,以 kali.img 命名,就是 /sdcard/kali.img,注意鏡像文件的後綴 .img 是固定不變的:

Screen-20191211-143322.png

鏡像大小,默認是 0,即自動分配大小,不過經測試,它似乎沒有想象中那麼自動 -_-,所以我們就自己設一個值,注意單位是 MB,並且這個值就是安裝的系統能用的總存儲空間,因此可以稍微設置大一點,具體值隨便填,這裏的 8096 就是 8GB 左右(1024MB = 1GB):

Screen-20191211-143431.png

文件系統,現在最新的是 ext4,是 Linux 下常用的文件系統,類似於 Windows 裏的 NTFS 文件系統,或者 U盤使用的 FAT32 文件系統,所以這裏選擇默認的就好:

Screenshot_20200110-220704.png

用戶名,即登錄系統的賬戶名(以 test 爲例):

在這裏插入圖片描述

用戶密碼,上面的賬戶對應的密碼(也以 test 爲例):

Screen-20191211-143549.png

特權用戶,這裏填寫超級用戶 root

Screen-20191211-143512.png

本地化,即系統使用的語言,先使用默認的 C(英語),想要中文可以後期改:

Screen-20191211-143530.png

DNS、Network trigger、Power trigger 這三項可以不用管,讓它們空着;

初始化,啓用選項可以不用勾上;

Screenshot_20200110-220725.png

掛載,即掛載 Android 上的資源,類似於一個文件中轉站,設置爲手機系統中的一個文件夾,這樣這個文件夾中的內容 Linux 系統和手機系統都可以訪問,也就實現了互傳文件的功能,我們可以勾上:

Screenshot_20200110-220746.png

點擊 掛載點列表 後進去,點右上角的加號,添加一個掛載點;第一行填寫你設置爲文件中轉站的目錄(該文件夾自己事先創建好)的絕對路徑,比如該文件夾創建在 SD 卡根目錄,名爲 share,那就寫 /sdcard/share

Screen-20191211-143642.png

點確定後完成創建,返回:

Screen-20191211-143654.png

SSH,即是否開啓 Linux 系統的 ssh 服務,勾上後就可以在手機終端用 ssh 命令連接 Linux 系統,這裏我們勾上,然後下面的 SSH 設置 使用默認的不用改:

Screen-20191211-143722.png

聲音服務,即 Linux 系統的聲音在手機上播放,這裏我們也勾上,設置用默認的不改:

Screen-20191211-143742.png

圖形界面,這就是一個比較重要的設置了,因爲一旦 Linux 系統在手機上安裝好後,不安裝圖形桌面(類似於 Windows 的桌面)的話,就只能通過 ssh 進行命令行操作系統;勾選啓用後,點擊下面的 圖形子系統 選項,會彈出以下選項:

一般選 VNC,另外兩個選項後面介紹:

Screen-20191211-143922.png

圖形界面設置,對應上面的 VNC 結果,一般也是使用默認的不用改,瞭解選項含義的可以自行修改:

Screen-20191211-143932.png

桌面環境,即圖形桌面環境的外觀,這裏我們選 Xfce
Screen-20191211-144032.png

下面也貼出幾個選項對應的桌面外觀截圖,以供參考:

Xterm(無圖形桌面,只有 shell):

Screenshot_20191219-142733.png

LXDE:

Screenshot_20191219-143142.png

Xfce:

Screenshot_20191219-144642.png

MATE:

Screenshot_20191219-144052.png

配置結束,這裏再提一下上面說過的 圖形子系統 的另外兩個選項,僅供參考;首先是 X11,熟悉 Linux 的應該瞭解這個選項,物理機(或虛擬機)安裝的 Linux 桌面系統一般都是使用的 X11 的圖形服務,選上後進入 圖形界面設置 後是以下選項:

Screen-20191211-143946.png

不瞭解的可以按上圖配置,另外,使用改選項需要安裝圖中所說的 Xserver XSDL 這個軟件,可以去市場下載,或者使用下面的鏈接:

鏈接: https://pan.baidu.com/s/1AuC09-HzT9ZWEwBzV7dRxg
提取碼: swx5

安裝好後不用特意打開它,Linux 系統啓動時它會被自動打開,運行(需等待一段時間,不要點屏幕)截圖如下:

Screenshot_20191219-144618.png

Screenshot_20191219-144622.png

Screenshot_20191219-144625.png

如果 圖形子系統 選擇 framebuffer 的話,圖形界面設置 選項如下:

Screen-20191211-144016.png

設置也是默認不變,只不過由於這種圖形顯示技術比較特殊(古老),筆者嘗試並未成功,手機還多次卡死 -_-,所以保守派就不要輕易嘗試了,自擔風險;

配置文件

上面進行的配置會被保存到一個配置文件中,點擊 Deploy 軟件主界面左上角的菜單按鈕,選擇第一 配置文件 選項即可對配置文件經行修改,這是默認的配置:

Screenshot_20191217-221200.png

右上角的三個按鈕分別是新建、重命名、刪除,例如對當前配置文件重命名:

Screenshot_20191217-221220.png

或者新建一個:

Screenshot_20191217-221301.png

使用不同的配置來選擇不同的系統,就可以實現一機安裝多 linux 系統(手機存儲足夠前提下);

安裝系統

配置完畢,接下來就是安裝系統了;首先回到軟件主界面,點擊右上角的菜單按鈕:

Screenshot_20191219-135609.png

然後點擊第一個 安裝 按鈕,然後彈出窗口中點 OK 確定:

Screenshot_20191219-135646.png

隨後軟件就開始 Linux 系統的安裝了,主界面會不斷輸出一些信息:

Screenshot_20191219-135653.png

Screenshot_20191219-140612.png

操作系統較大,下載安裝時間較長,一般用時在半小時左右,網速好的話會快一點;當輸出信息如下圖的最後一行時,則表示安裝完成:

Screenshot_20191219-141624.png

然後下一步本應是點擊右上角菜單的配置按鈕,但是這樣會出現像下面這個的 問題

Screenshot_20191219-141816.png

也就是輸出一堆 skip,這是因爲在沒有關閉系統的情況下進行配置,會使得系統不能正常配置,所以需要先點擊底部菜單的停止按鈕(以後出現 skip 輸出數量較多時也這樣操作):

Screenshot_20191219-141821.png

然後點擊確認,最後輸出 <<< stop 則表示停止成功:

Screenshot_20191219-141827.png

這裏再點擊右上角菜單的配置選項,也需要等待一段時間:

Screenshot_20191219-141718.png

配置結束後,點擊啓動按鈕啓動系統:

Screenshot_20191219-141724.png

啓動成功,都是 done 則表示正常啓動,若 skip 較多則嘗試停止後再啓動(下圖的 /dev/shm skip 可以不用管):

Screenshot_20191219-141837.png

進入系統

Linux 系統啓動完畢,接下來就是進入圖形桌面環境,當然,由於之前開啓了 SSH 服務,所以也可以使用之前下載的 Terminal 終端軟件進入 shell 環境,這裏由於之前選擇 VNC 作爲圖形子系統來配置的,所以這裏就用 VNC Viewer 這個軟件來進入圖形桌面;

打開 VNC Viewer 這個軟件,進入主界面:

Screenshot_20191219-142011.png

點擊右下角的加號添加要連接的對象,這個軟件本來是用於連接所有開有 VNC 服務的服務器的,由於我們把 Linux 系統安裝在手機(即本地),所以地址填寫本地地址:127.0.0.1,也可以寫 localhost,一個意思,下面一行的名字隨便寫一個:

Screenshot_20191219-142342.png

然後點擊 create 創建連接,進入如下界面:

Screenshot_20200110-180055.png

需要注意的只有 view only 這個不要選上,就是字面意思,只讀模式;點擊 CONNECT 進行連接,會提示輸入密碼:

Screenshot_20191219-142059.png

密碼就是之前在配置裏面設置的用戶密碼,當時設置的是 test(之後記得自己修改密碼),填上去,然後把記住密碼勾上,再點擊右上角的 CONTINUE

Screenshot_20191219-142048.png

後面出現的安全提示不用管,取消勾選 warn me every time,再點擊右上角的 OK 就可以進入系統了:

Screenshot_20191219-142109.png

初次使用軟件進入有個教程,跟着做完就行了,忘記了按鈕的意思就點右數第二個問號按鈕查看就行了,下面再給出幾張橫屏的特寫:

在這裏插入圖片描述

Screenshot_20191219-142224.png

Screenshot_20191219-142237.png

這裏再提供一款輸入法軟件:Hacker’s Keyboard,翻譯過來是黑客鍵盤,聽着霸氣,其實就是增加了計算機鍵盤中的 Ctrl, Shift, Tab, Alt 等鍵,因爲常見手機輸入法中不存在這幾個鍵,在使用 Kali 系統時可以提供一些便利,自行搜索下載或使用以下鏈接:

鏈接: https://pan.baidu.com/s/1iPgSBmNYy9xzHfJg2aoaEg
提取碼: ydah

也附上兩張特寫:

Screenshot_20200110-214651.png

默認是橫屏纔出現特殊按鍵,可以自行在設置中修改:

Screenshot_20200110-214733.png

關閉系統

不再使用系統後點右上角的叉號斷開連接:

Screenshot_20191219-142251.png

回到主界面也會保存系統的快照,下次直接點擊就能進去了:

Screenshot_20191219-142352.png

斷開連接不代表系統關閉了,還要回到 Deploy 這個軟件,點擊底部的停止按鈕:

Screenshot_20191219-142407.png

如下圖,則表示系統成功關閉了:

Screenshot_20191219-142416.png

下次要啓動系統,就點擊啓動按鈕,再用 VNC Viewer 連接就行了,切換不同的 Linux 系統,只需要切換到對應的配置文件就行了,注意 每次切換或修改配置,都需要點擊右上角的 配置 按鈕進行重新配置,只有在安裝新系統時才需要點擊 安裝 按鈕;

至此關於 root 環境下使用 Deploy 安裝 Kali 系統的教程就結束了,關於 Deploy 中未提到的其他菜單功能,可以自行探索;

非 ROOT 環境

當然,除去 root 玩家,總會存在那麼一些手機廠商,讓自家產品百試不得其 ROOT,讓技術用戶們又愛又恨-_-,所以這裏也準備了非 ROOT 環境下的備選方案,當然,比起 ROOT 來說,確實會閹割部分功能,但主要功能都能用,所以建議能 ROOT 就不要退而求其次;

主要軟件

Termux

這是該方法的主角,這個軟件類似於在手機中搭建一個 Linux 虛擬機,可以執行一些常用的 Linux 命令,與之前說的 Terminal 這個終端軟件主要的區別就是該軟件可以安裝第三方軟件包,就是熟悉的 apt 系列命令,很方便,因此功能也較爲強大;可以在應用市場搜索下載,或者使用下面的鏈接:

鏈接: https://pan.baidu.com/s/1z1blrlhPxUcsbRlmGTkAYw
取碼: stye

AndroNix

這個軟件用於提供常見 Linux 發行版本系統的下載,其實用過後發現就是提供系統的下載鏈接,然後跳轉到 Termux 進行下載和安裝,搜索下載或使用鏈接:

鏈接: https://pan.baidu.com/s/177VOddzfaCXVoHb_duK5bA
提取碼: 7k65

安裝系統

首先安裝 Termux 軟件然後打開,會進入以下界面:

Screenshot_20191211_184512_com.termux.jpg

它是一個簡單的 shell,可以運行一些常用命令,自行探究;

然後安裝並打開 AndroNix 軟件,主界面如下:

在這裏插入圖片描述

這裏還是以安裝 Kali 系統爲例,那麼我們點擊右上那個熟悉的 Kali 系統圖標,進入以下界面,點擊安裝按鈕:

在這裏插入圖片描述

按照指示的步驟進行,先點擊複製,命令會被複制到系統粘貼板:

Screenshot_20191211_184556_studio.com.techriz.andronix.jpg

然後我們切換到 Termux 這個軟件,長按粘貼剛纔複製的代碼,內容如下:

Screenshot_20191211_184637_com.termux.jpg

然後按下回車後進行系統的下載和安裝,同樣需要一段時間;完成後,會在當前目錄下生成幾個新文件,如下圖:

Screenshot_20191211_184702_com.termux.jpg

目錄下的 start-kali.sh 文件就是我們安裝的 Kali 系統的啓動文件,所以我們輸入命令 ./start-kali.sh 啓動系統:

Screenshot_20191211_184724_com.termux.jpg

到這裏我們的系統算是安裝成功了;

安裝圖形桌面

目前安裝的 Kali 系統只能 shell 進行訪問,接下來安裝我們熟悉的圖形桌面環境,所以我們手機切換回 AndroNix 這個軟件,執行第二步,即擇桌面系統,和之前一樣,我們點擊 XFCE

Screenshot_20191211_184611_studio.com.techriz.andronix.jpg

這裏同樣是把代碼複製到了系統粘貼板,需要切換到 Termux 並粘貼代碼;需要 注意 的是,官方文件似乎沒有描述清楚,這裏是要再啓動後的 Kali 系統環境下粘貼代碼以安裝圖形桌面,也就是運行 ./start-kali.sh 後再粘貼運行代碼,而不是在 Termux 的默認環境下粘貼運行,如下圖:

Screenshot_20191211_184838_com.termux.jpg

安裝完後會提示設置連接密碼,爲了之後使用 VNC Viewer 進行連接:

Screenshot_20191211_190028_com.termux.jpg

再次輸入以確定:

Screenshot_20191211_190036_com.termux.jpg

然後會提示是否設置一個 view-only(只讀模式)密碼,這裏我們不設置,輸入 n

Screenshot_20191211_190046_com.termux.jpg

然後就配置完成,要訪問 Kali 圖形桌面就需要先啓動 VNC 服務,啓動服務的命令爲 vncserver-start,停止的命令爲 vncserver-stop,如下圖;

Screenshot_20191211_190113_com.termux.jpg

會發現這兩個命令類似 Deploy 中的啓動和停止按鈕,只不過它是同時啓動系統和 vnc 服務罷了;接下來就輸入命令啓動 Kali 系統的 VNC 服務,會輸出以下信息:

Screenshot_20191211_190123_com.termux.jpg

到這裏服務就啓動成功了,接下來就是和之前一樣,使用 VNC Viewer 這個軟件來連接圖形桌面環境,新建一個連接:

Screenshot_20191211_191617_com.realvnc.viewer.android.jpg

這裏也是和之前唯一 不同 之處,即 Deploy 默認開啓的 vnc 服務端口是 5900,同時 VNC Viewer 的默認端口也是 5900,所以之前只需要輸入 127.0.0.1 就行了,但是 vncserver-start 開啓服務的端口是 5901 起步,隨開啓數量而遞增,所以在配置地址時需要指定端口,即地址設爲:127.0.0.1:5901

後面的步驟就和之前大致相同了:

Screenshot_20191211_191625_com.realvnc.viewer.android.jpg

連接密碼就是之前設置的密碼:

Screenshot_20191211_191630_com.realvnc.viewer.android.jpg

來幾張特寫:

在這裏插入圖片描述
Screenshot_20191211_191707_com.realvnc.viewer.android.jpg

Screenshot_20191211_191726_com.realvnc.viewer.android.jpg

關閉系統

停止使用系統後,先斷開連接:

Screenshot_20191211_191747_com.realvnc.viewer.android.jpg

然後回到 Termux 軟件,輸入 vncserver-stop 命令停止 vnc 服務,輸入 exit 註銷登錄 Kali系統,再按 CTRL + z 返回 Termux 環境(CTRL 在軟件底部菜單欄):

Screenshot_20191211_191856_com.termux.jpg

到這裏非 ROOT 條件下的 Kali 系統安裝教程也結束了,想要安裝其它發行版本的 linux 系統可以用類似的方法自行摸索,不做贅述;另外,從上面安裝 Kali 系統的命令中也能發現,系統鏡像並不是官方源,而是爲了適應在非 ROOT 手機中運行的“定製版本”,當然常用功能健在,只是某些部分有所限制,可以之後自行體會;


技術文章推送
手機、電腦實用軟件分享
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章