在虛擬機器環境下安裝 Kali Linux,硬碟分配策略可選動態分配或固定大小。動態分配更節省宿主系統空間,但擴充套件已分配空間較為困難。建議選擇動態分配並預留至少 20GB 至 25GB 的硬碟空間,避免日後擴充的麻煩。安裝過程中,需選擇 Kali Linux 安裝映像檔,通常位於 Downloads 資料夾。啟動虛擬機器後,建議選擇圖形安裝模式,方便初學者操作。過程中可能遇到 BIOS 虛擬化未啟用或與 Hyper-V 等虛擬化軟體衝突的問題,需根據系統設定調整。設定語言、位置及鍵盤佈局後,系統會自動偵測硬體和網路介面卡。網路設定階段,主機名稱可保留預設值 kali,網域名稱可留空。根使用者密碼設定需謹慎,尤其在連網的物理主機上,建議使用強密碼。分割槽設定建議選擇「Guided – use entire disk」並將所有檔案放在單一分割槽,簡化操作。安裝 GRUB 引導載入器時,建議手動指定安裝位置,通常為 /dev/sda,避免啟動錯誤。安裝完成後,Kali 會自動重啟,最終顯示登入畫面。
在 Kali Linux 系統中,理解基礎術語和概念至關重要。二進位制檔案位於 /usr/bin 或 /usr/sbin 目錄,是可執行的程式。Linux 系統區分大小寫,目錄即 Windows 系統中的資料夾。每個使用者都有自己的家目錄,位於 /home 目錄下。Kali Linux 作為滲透測試發行版,預裝了許多工具。root 使用者擁有最高許可權,許多駭客工具需要 root 許可權才能執行。指令碼是一系列在直譯器中執行的命令,常用的直譯器有 bash、Python、Perl 和 Ruby。Shell 是 Linux 的命令列環境,bash shell 最為常用。終端機是與系統互動的主要介面。登入 Kali Linux 後,使用 root 帳號和預設密碼 toor 進入系統。在終端機中,可以使用 passwd 命令更改密碼。Linux 檔案系統以樹狀結構組織,根目錄為 /,其下包含 etc、home、var、usr 和 bin 等重要目錄。學習使用終端機和了解檔案系統結構是掌握 Kali Linux 的基礎。
在虛擬機器上安裝 Kali Linux
虛擬機器硬碟分配策略
在虛擬機器上的硬碟分配中,您可以選擇動態分配或固定大小。選擇動態分配時,系統會在需要時才實際分配硬碟空間,這樣可以節省宿主系統的未使用空間。玄貓建議選擇動態分配。
繼續下一步後,您需要選擇分配給虛擬機器的硬碟空間大小以及虛擬機器的存放位置。
預設值與推薦設定
預設為 8GB 的硬碟空間,這對於許多應用來說可能會過小。玄貓建議最少分配 20–25GB 的空間。記住,即使選擇了動態分配,擴充套件已經分配好的硬碟空間還是相當困難的,因此建議選擇較大的初始值。
完成後點選「Create」即可開始安裝。
安裝 Kali Linux
安裝過程中,您會看到類別似圖1的畫面。此時您需要安裝 Kali Linux。請注意,在 VirtualBox Manager 的左側應該顯示 Kali VM 已關閉的狀態。點選「Start」按鈕(綠色箭頭圖示)開始安裝。
選擇啟動磁碟
VirtualBox Manager 會詢問啟動磁碟的位置。您已經下載了一個 .iso 檔案,應該在您的 Downloads 資料夾內(如果您使用了 torrent 下載 Kali,.iso 檔案會在 torrent 應用程式的 Downloads 資料夾內)。點選右側的資料夾圖示,瀏覽到 Downloads 資料夾並選擇 Kali 映像檔案。
完成後點選「Start」即可開始安裝 Kali Linux。
Kali Linux 安裝設定
安裝過程中,您會看到一個提供多種啟動選項的畫面(如圖2所示)。對於初學者來說,玄貓建議使用圖形安裝模式。使用鍵盤導航選單進行選擇。
錯誤處理
如果在安裝過程中遇到錯誤,可能是因為您的系統 BIOS 中未啟用虛擬化功能。不同系統和 BIOS 各異,請查詢製造商或線上尋找解決方案。此外,在 Windows 系統上可能需要停用競爭性虛擬化軟體如 Hyper-V。請根據您的系統進行相應設定。
語言、位置及鍵盤佈局
接下來系統會要求您選擇語言、位置及鍵盤佈局。請根據您的需求進行設定並點選「Continue」。
網路設定與主機名稱
接下來系統將進行硬體和網路介面卡的偵測。請耐心等待這個過程完成。
組態網路
當網路組態畫面出現時(如圖3所示),第一個專案是要求您輸入主機名稱。您可以自由命名,但玄貓通常保留預設名稱「kali」。
接著系統會要求網域名稱輸入,此處可留空。繼續下一步後便進入密碼設定畫面(如圖4所示)。
密碼設定與時間區域
根使用者密碼設定
在此畫面中(如圖4所示),您需要為根使用者設定密碼。根使用者是 Linux 中最具許可權的系統管理員。如果這是一台物理主機且連線到網際網路上,建議使用長且複雜的密碼以防止破解攻擊。而對於虛擬機器來說,由於需要先存取宿主作業系統才能存取到它,因此密碼安全性要求稍微低一些。
請設定好密碼並點選「Continue」。
分割槽設定與磁碟組態
接下來系統會詢問是否要分割槽磁碟(分割槽就是磁碟的一部分或段落)。此處選擇「Guided – use entire disk」,Kali 會自動偵測並設定分割槽管理器。
驗證警告
Kali 會警告您選定磁碟中的所有資料將被刪除。由於這是一個新且空白的虛擬磁碟,因此無需擔心資料損失。
分割槽方案
接著選擇「All files in one partition」,對於學習目的來說這樣足夠了。
完成分割槽設定後點選「Finish partitioning and write changes to disk」,然後再次確認並點選「Yes」。
安裝作業系統
Kali 開始安裝作業系統了,這可能會花一些時間,請耐心等待。
完成後請勿使用網路映象,因為它不必要,點選「No」。
GRUB 安裝
接著系統會詢問是否安裝 GRUB (Grand Unified Bootloader)(如圖5所示)。GRUB 是一種引導載入器,允許在開機時選擇不同的作業系統進行啟動,例如在同一台電腦上可以選擇Kali或其他作業系統進行啟動。請選取「Yes」並點選「Continue」。
自動或手動安裝 GRUB
在下一個畫面中(如圖6所示), 系統會詢問是否自動或手動安裝GRUB引導載入器。為避免安裝完成後出現螢幕黑屏或停滯現象, 建議選擇“Enter device manually”。
指定 GRUB 安裝位置
接著指定GRUB引導載入器要安裝在哪個裝置上(通常為/dev/sda)並繼續點選下一步, 在接下來的畫面中將會提示安裝完成。
恭喜!Kali 已經成功安裝完成!點選「Continue」。Kali 嘗試重啟系統後會顯示大量程式碼行過渡到黑色螢幕,然後最終會顯示 Kail 2018 的登入螢幕(如圖7所示)。
graph TD
C[C]
E[E]
M[M]
N[N]
A[開始] --> B{選擇啟動磁碟}
B -->|成功| C{選擇語言、位置及鍵盤佈局}
B -->|失敗| D[檢查 BIOS 虛擬化功能]
C --> E{設定網路}
E --> F[設定主機名稱]
F --> G[設定密碼]
G --> H[組態分割槽]
H --> I[確認分割槽]
I --> J[開始安裝作業系統]
J --> K[確認不使用網路映象]
K --> L[確認安裝 GRUB]
L --> M{選擇自動或手動}
M --> N{手動指定 GRUB 安裝位置}
N --> O[完成並重啟]
此圖示展示了從開始到成功安裝Kali Linux的一系列步驟和可能遇到問題時的解決方案.
#### 內容解密:
1. **從開始到成功安裝:**
- **開始**:初始化虛擬機器.
- **選擇啟動磁碟**:確保成功選取Kali ISO映像檔.
- **語言、位置及鍵盤佈局**:根據需求進行相應設定.
- **設定網路**:組態基本網路引數。
- **設定主機名稱**:可自由命名主機。
- **設定密碼**:為根使用者設定安全密碼。
- **組態分割槽**:根據實際需求組態分割槽方案。
- **確認分割槽**:再次確認分割槽設計。
- **開始安裝作業系統**:系統開始進行完整的作業系統安裝過程。
- **不使用網路映象**:建議不使用以簡化流程。
- **確認安裝GRUB**:GRUB將允許多作業系統之間切換.
- **手動指定GRUB位置**:避免出現螢幕黑屏或停滯現象.
2. **遇到問題時:**
- **檢查 BIOS 虛擬化功能**:若發生錯誤,須檢查 BIOS 是否開啟虛擬化功能。
3. **圖表解析:**
- 本圖表以流程圖形式展示了從啟動到完成Kali Linux安裝的一系列步驟和可能遇到問題時的解決方案。
- 每個步驟都有相應的選擇和操作說明, 以確保整個流程順利進行.
開始使用 Kali Linux:從基礎到實踐
玄貓認為,對於駭客來說,行動力是最重要的品質。我們喜歡動手操作、創造和時而破壞事物。很少有人願意在動手之前花費大量時間閱讀資訊技術理論。因此,這一章節旨在提供一些基本技能,讓你能夠迅速上手並開始使用 Kali Linux。
這一章節將不會探討某一個概念,而是涵蓋足夠的知識,讓你能夠在 Linux 作業系統中進行探索和實踐。更深入的討論將留到後續章節中。
初步術語與概念
在探討 Linux 基礎之前,玄貓先介紹一些關鍵術語,這些術語將在後續內容中反覆出現。
二進位制檔案
二進位制檔案(binaries)是指可以執行的檔案,類別似於 Windows 中的可執行檔案。這些檔案通常位於 /usr/bin 或 /usr/sbin 目錄中,包括像 ps、cat、ls 和 cd 這樣的工具,以及像 aircrack-ng(無線網路破解工具)和 Snort(入侵偵測系統)這樣的應用程式。
大小寫敏感性
與 Windows 不同,Linux 是大小寫敏感的。例如,「Desktop」、「desktop」和「DeskTop」代表三個不同的檔案或目錄名稱。如果你遇到「檔案或目錄未找到」的錯誤訊息,但確設定檔案或目錄存在,那麼很可能是大小寫不正確導致的。
目錄
目錄(directory)在 Windows 中稱為資料夾(folder)。它提供了一種組織檔案的方式,通常以階層結構來組織。
家目錄
每個使用者都有自己的 /home 目錄,這是預設的檔案存放位置。
Kali Linux
Kali Linux 是一個專門為滲透測試設計的 Linux 發行版。它預裝了數百個工具,節省了下載和安裝這些工具所需的時間。本文將使用當前最新版本的 Kali:Kali 2023.4(假設當前年份為2023)。
root 使用者
與其他作業系統類別似,Linux 也有一個管理員或超級使用者帳號(root),該帳號由受信任的人使用,可以對系統進行近乎任何操作。例如重新組態系統、新增使用者和更改密碼。作為駭客或滲透測試人員,你經常會使用 root 帳號來獲得對系統的控制權。許多駭客工具也要求使用 root 帳號。
指令碼
指令碼(script)是一系列在解釋環境中執行的命令,將每一行轉換為原始程式碼。許多駭客工具實際上是指令碼。指令碼可以使用 bash 直譯器或其他程式語言直譯器執行,例如 Python、Perl 或 Ruby。目前 Python 是駭客中最受歡迎的直譯器。
Shell
Shell 是 Linux 中用於執行命令的環境和直譯器。最常用的是 bash shell(Bourne Again Shell),但其他流行的 shell 包括 C shell 和 Z shell。本文將僅使用 bash shell。
命令列介面
終端(Terminal)即命令列介面(CLI)。它是我們在 Kali Linux 中主要使用的命令列環境。
Kali Linux 的初步探索
啟動 Kali Linux 後,你會看到登入畫面(如圖示)。使用 root 帳號和預設密碼 toor 進行登入。
graph TD;
A[啟動 Kali] --> B[登入畫面];
B --> C[輸入 root 使用者名稱];
C --> D[輸入密碼 toor];
D --> E[進入桌面];
此圖示展示了從啟動 Kali Linux 到進入桌面的一系列步驟。首先你需要啟動系統並看到登入畫面;然後輸入 root 使用者名稱以及預設密碼 toor;最後進入桌面環境。
探索終端與檔案結構
進入桌面後,我們首先來探索兩個最基本的方面:終端介面和檔案結構。
Terminal
玄貓首先需要開啟終端機介面,這是我們在 Kali Linux 中主要使用的命令列介面。你可以在桌面底部找到終端機圖示並雙擊開啟它,或者按下 Ctrl + Alt + T 鍵快捷鍵來開啟終端機。
開啟終端機後,你會看到類別似如下所示的介面:
root@kali:~#
這裡我們看到了一個簡單而強大的命令列環境——bash shell——它允許我們執行各種命令來控制系統。
要更改你的密碼,可以使用以下命令:
passwd
Linux 檔案系統
Linux 的檔案系統結構與 Windows 不同。Linux 沒有物理磁碟盤(如 C: 傳統分割槽),而是使用邏輯檔案系統。在整個檔案系統結構中最顛端的是 / 目錄(root of the filesystem),就像一棵倒立樹根部位一樣(如圖示)。
graph TD;
A[/] --> B[etc];
A --> C[home];
A --> D[var];
A --> E[usr];
A --> F[bin];
此圖示展示了 Linux 檔案系統中的基本結構。根目錄 / 下包含了多個重要子目錄如 etc、home、var、usr 和 bin 等。
Linux 作業系統與基礎命令
在探討 Linux 作業系統之前,玄貓認為瞭解其檔案系統結構和基本命令是必不可少的。這些知識不僅能幫助你更好地理解 Linux 的運作原理,還能讓你在命令列中更高效地進行操作。
Linux 檔案系統結構
Linux 的檔案系統是一棵樹狀結構,根目錄(/)位於樹的頂端。以下是一些最重要的子目錄:
/root:超級使用者(root)的主目錄。/etc:通常包含 Linux 的組態檔案,這些檔案控制程式啟動的時間和方式。/home:使用者的主目錄。/mnt:其他檔案系統掛載到檔案系統的位置。/media:CD 和 USB 裝置通常會掛載到這裡。/bin:應用程式二進位檔(類別似於 Microsoft Windows 的可執行檔)所在地。/lib:函式庫檔案所在地(類別似於 Windows 的 DLL 檔案)。
瞭解這些一級目錄對於從命令列中導航檔案系統至關重要。此外,玄貓建議在進行日常任務時不要以 root 身份登入,因為這樣一來,如果有人駭客你的系統,他們將立即獲得 root 許可權並控制你的系統。應該以一般使用者身份登入,並僅在需要時才切換到 root 許可權。
基本命令
以下是一些基本命令,這些命令將幫助你快速上手 Linux 系統。
檢視當前目錄
在圖形使用者介面(GUI)環境中,例如 Windows 或 macOS,命令列並不總是明顯顯示你當前所在的目錄。要導航到新目錄,通常需要知道你目前所在位置。當前工作目錄命令 pwd 會傳回你在目錄結構中的位置。
pwd
例如:
kali > pwd
/root
在這個例子中,Linux 傳回了 /root,告訴我們當前位於 root 使用者的目錄中。由於你以 root 身份登入時啟動了 Linux,所以應該也在 root 使用者的目錄中,這個目錄位於檔案系統結構的最頂層之下(/`)。
檢視當前登入使用者
在 Linux 中,「root」是唯一擁有所有系統許可權的超級使用者或系統管理員。顯然,你不希望隨便任何人都能進行這些變更;你需要一個值得信賴且具備正確作業系統知識的人來進行這些操作。作為一名駭客,你通常需要所有這些許可權來執行所需的程式和命令(許多駭客工具在沒有 root 許可權的情況下無法執行),所以你需要以 root 身份登入。
如果你忘記了是否以 root 身份登入或另一個使用者登入,可以使用 whoami 命令來檢視當前登入的使用者:
whoami
例如:
kali > whoami
root
如果我以另一個使用者(例如個人帳號)登入,whoami 命令會傳回我的使用者名稱:
kali > whoami
OTW
導航 Linux 檔案系統
從終端機導航檔案系統是 Linux 的基本技能。要完成任何任務,你需要能夠移動到其他目錄中找到應用程式、檔案和子目錄。在根據圖形使用者介面(GUI)的系統中,你可以視覺看到目錄,但在使用命令列介面時,結構完全根據文字,導航檔案系統意味著使用一些命令。
改變目錄
要從終端機改變目錄,使用 cd 命令。例如,以下是如何切換到存放組態檔案的 /etc 目錄:
cd /etc
提示會改變為 root@kali:/etc# ,表示我們現在在 /etc 目錄中。我們可以透過輸入 pwd 來確認:
pwd
/etc
要向上移動一層(靠近檔案結構的根),我們使用 cd 後跟雙點(..):
cd ..
提示會改變為 root@kali:/# pwd /
這將我們從 /etc 移動到根目錄 / 。你可以向上移動多層次;只需使用相同數量的雙點對:
.. # 向上移動一層
.. .. # 向上移動兩層
.. .. .. # 向上移動三層
例如,要向上移動兩層:
cd .. ..
你也可以從任何地方進入根目錄:
cd /
列出目錄內容
要檢視目錄中的內容(包括檔案和子目錄),我們可以使用 ls (列出)命令。這與 Windows 的 dir 命令非常相似。
ls
此命令會列出當前目錄中的所有檔案和子目錄。你也可以將此命令用於任何特定目錄:
ls /etc
要取得有關檔案和資料夾的更多資訊(例如它們的許可權、所有者、大小以及最近修改時間),可以在 ls 命令後新增 -l 換檔開關:
ls -l
此功能通常稱為長列表模式。
執行指定程式
假設玄貓有一個簡單程式位於主目的 /root/test.sh ,並且已經賦予該程式執行許可權(執行許可權賦予方法略)。以下是如何執行該程式:
./test.sh
「內容解密:」
pwd
- 作用:顯示當前工作目錄。
- 觀念:每次你開啟終端機或切換到不同的目錄時,「pwd」都能告訴你目前所在位置。
- 邏輯:這個指令會查詢系統中的環境變數「$PWD」,並傳回其值。環境變數「$PWD」就是儲存著當前工作路徑之記憶體空間地址。
whoami
- 作用:顯示當前登入使用者名稱。
- 觀念:當我們需要確認自己目前登入的是哪個使用者時,「whoami」可以提供正確答案。
- 邏輯:它會查詢系統中的環境變數「$USER」,並傳回其值。環境變數「$USER」就是儲存著當前登入使用者名稱之記憶體空間地址。
cd
- 作用:改變目前所在之工作路徑。
- 觀念:每次想要進入不同路徑時,「cd」都能幫助我們迅速切換。
- 邏輯:指令會讀取並修改環境變數「$PWD」,並將新值寫入記憶體空間地址中。
ls
- 作用:列出當前工作路徑下所有檔案與資料夾資訊。
- 觀念:每次想要檢視當前路徑下有什麼內容時,「ls」都能快速幫助我們呈現整體畫面。
- 邏輯:指令會讀取並顯示當前工作路徑下所有檔案與資料夾資訊給終端顯示器供我們觀察。
./test.sh
- 作用:啟動位於當前工作路徑下名為「test.sh」之可執行程式碼。
- 觀念:每次想要啟動某個可執行指令碼時,「./test.sh」都會幫助我們啟動並執行。
- 邏輯:指令會讀取並執行當前工作路徑下名為“test.sh”的可執行指令碼內容並將執行結果輸出給終端顯示器供我們觀察和分析。
導航與操作例項
假設玄貓有一個簡單程式位於主目的 /root/test.sh ,並且已經賦予該程式執行許可權(執行許可權賦予方法略)。以下是如何執行該程式:
./test.sh
「內容解密:」
./test.sh
- 作用:啟動位於當前工作路徑下名為「test.sh」之可執行程式碼。
- 觀念:每次想要啟動某個可執行指令碼時,「./test.sh」都會幫助我們啟動並執行。
- 邏輯:指令會讀取並執行當前工作路徑下名為“test.sh”的可執行指令碼內容並將執行結果輸出給終端顯示器供我們觀察和分析。
總結來說, 基本指令和Linux檔案系統結構對於每一位開發者都是必備技能, 不僅可以幫助我們瞭解Linux操作原理, 也能讓我們日常工作中更高效率地進行指令和操作, 希望以上內容對讀者有所幫助!