返回文章列表

Kali Linux 入門:掌握駭客必備 Linux 基礎知識

本文介紹 Kali Linux 入門所需 Linux 基礎知識,涵蓋系統安裝、命令列操作、Bash 指令碼編寫、網路安全基礎及滲透測試準備等導向,幫助讀者快速上手 Kali Linux 環境與核心工具應用。

資安 Linux

對於想入門駭客技術的讀者,熟悉 Linux 系統至關重要。Kali Linux 作為滲透測試的熱門發行版,提供豐富的工具,但需要使用者具備扎實的 Linux 基礎。本文從系統安裝、基本命令列操作到 Bash 指令碼編寫,循序漸進地介紹關鍵知識點,並涵蓋網路安全基礎與滲透測試準備,讓讀者能快速掌握 Kali Linux 環境。文章首先說明如何在虛擬機器中安裝 Kali Linux,避免影響現有系統,接著詳述 Linux 的檔案系統結構和常用命令,例如 lscdcpmvrmmkdirrmdir,並搭配實際操作範例,讓讀者更容易理解。此外,文章也介紹了檔案編輯器 Nano 和 Vi/Vim 的使用方法,以及資料處理和過濾的利器 grepawksed。網路操作方面,文章則著重於 ip apingtraceroutenetstat 等命令,並以圖示說明其關係和作用,同時也包含了網路掃描工具 nmap 的基本用法。為了提升效率,文章也說明瞭環境變數的管理方法,以及 Bash 指令碼編寫的技巧和最佳實踐,並以資料備份和清理臨時檔案的指令碼範例進行示範。最後,文章介紹了網路安全基礎和滲透測試準備,包含 nmap 進行埠掃描和 SYN 掃描,以及滲透測試框架 Metasploit 的應用,並以圖示說明不同網路安全掃描工具的關係和應用場景。

入門駭客必備的 Linux 基礎知識

Kali Linux 作為駭客界的最愛,提供了豐富的工具來進行網路安全測試及滲透測試。對於剛入門的駭客來說,掌握 Linux 的基本操作和原理是至關重要的。以下內容將引導讀者深入瞭解 Linux 的基本概念、命令列操作及其在滲透測試中的應用。

Linux 的重要性

在現代資訊科技領域,駭客技術已成為一項必備的技能。從國家間的情報戰到網路犯罪、勒索軟體等,這些活動無一不展示了駭客技術的強大影響力。Linux 作為開源系統,不僅在伺服器端廣泛應用,更是大多數安全工具的基礎平台。學習 Linux 不僅能提升駭客技能,還能幫助理解資安防護的核心概念。

安裝與設定

玄貓建議使用虛擬機器來安裝 Kali Linux,這樣可以避免對現有系統造成影響。以下是安裝虛擬機器和 Kali Linux 的基本步驟:

  1. 下載與安裝虛擬機器軟體:選擇 VirtualBox 或 VMware 等虛擬機器軟體,並下載適合自己的版本。
  2. 建立新虛擬機器:開啟虛擬機器軟體,選擇「新建」並組態硬體資源,如記憶體和硬碟空間。
  3. 安裝 Kali Linux:將 Kali Linux 映像檔案掛載到虛擬光碟機中,啟動虛擬機器並按照提示完成安裝。

內容解密:

這段程式碼展示瞭如何使用 Bash 語法來定義函式、設定變數及呼叫外部指令。以下是詳細說明:

  • #!/bin/bash:這是 Bash 程式的標頭,告訴系統該使用 Bash 來執行此指令碼。
  • set -e:當執行過程中任何命令傳回非零狀態碼時,指令碼會立即離開。
  • function install_virtualbox() { ... }:定義一個名為 install_virtualbox 的函式,用於下載並安裝 VirtualBox。
  • sudo apt-get update && sudo apt-get install -y virtualbox:更新本地套件索引並安裝 VirtualBox。
  • function create_vm() { ... }:定義另一個函式 create_vm,用於建立新的虛擬機器。
  • VBoxManage createvm --name "KaliVM" --register:使用 VirtualBox 命令列工具建立並註冊一個名為 “KaliVM” 的虛擬機器。
  • VBoxManage modifyvm "KaliVM" --memory 2048:設定虛擬機器的記憶體為 2048 MB(2 GB)。
  • VBoxManage createhd --filename "KaliHD.vdi" --size 50000:建立一個 50 GB 的硬碟檔案 “KaliHD.vdi”。
  • VBoxManage storagectl "KaliVM" --name "SATA Controller" --add sata --controller IntelAhci:新增一個 SATA 控制器到虛擬機器中。
  • VBoxManage storageattach "KaliVM" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "KaliHD.vdi":將剛才建立的硬碟附加到 SATA 控制器上。
  • VBoxManage storagectl "KaliVM" --name "IDE Controller" --add ide:新增一個 IDE 控制器到虛擬機器中。
  • VBoxManage storageattach "KaliVM" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /path/to/kali.iso:將 Kali Linux ISO 檔案附加到 IDE 控制器上。
#!/bin/bash
set -e

function install_virtualbox() {
    sudo apt-get update && sudo apt-get install -y virtualbox
}

function create_vm() {
    VBoxManage createvm --name "KaliVM" --register
    VBoxManage modifyvm "KaliVM" --memory 2048
    VBoxManage createhd --filename "KaliHD.vdi" --size 50000
    VBoxManage storagectl "KaliVM" --name "SATA Controller" --add sata --controller IntelAhci
    VBoxManage storageattach "KaliVM" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "KaliHD.vdi"
    VBoxManage storagectl "KaliVM" --name "IDE Controller" --add ide
    VBoxManage storageattach "KaliVM" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive \
        --medium /path/to/kali.iso
}

install_virtualbox
create_vm

安裝與啟動

經過以上步驟設定好後,可以進入 Kali Linux 的桌面環境。接下來便可以開始探索 Linux 的強大功能。

處理檔案與目錄

Linux 的檔案系統結構獨特且強大,掌握這些基本命令是必須的:

ls                     # 檢視目錄內容
cd                     # 改變目錄
pwd                    # 檢視當前工作目錄
cp [來源] [目的地]   # 複製檔案或目錄
mv [來源] [目的地]   # 移動或重新命名檔案或目錄
rm [檔案名]           # 刪除檔案或目錄
mkdir [目錄名]         # 建立新目錄
rmdir [目錄名]         # 刪除空目錄
小段落標題

應用範例

假設我們想在 /home/user/ 中建立一個名為 myproject 的目錄:

mkdir /home/user/myproject
cd /home/user/myproject
touch file1.txt file2.txt   # 建立兩個空白檔案 file1.txt 和 file2.txt
ls                       # 檢視當前目錄內容(應該會看到 file1.txt 和 file2.txt)
小段落標題

次段落標題

編輯與檢視檔案

玄貓推薦使用 Nano 或 Vi/Vim 作為檔案編輯器:

nano file1.txt          # 用 Nano 編輯 file1.txt
vi file2.txt            # 用 Vi 編輯 file2.txt

cat file1.txt           # 檢視 file1.txt 的內容
less file2.txt          # 用 less 檢視 file2.txt 的內容(可向下滾動檢視)
more file2.txt          # 用 more 檢視 file2.txt 的內容(可向上滾動檢視)

次段落標題

資料管理與過濾

Linux 提供了許多強大的命令來處理和過濾資料:

grep 'pattern' filename     # 在 filename 中搜尋包含 'pattern' 的行
awk '{print $1}' filename    # 提取 filename 中每行的第一個欄位
sed 's/old/new/g' filename   # 在 filename 中替換所有 'old' 段落為 'new'
小段落標題

次段落標題

網路操作

瞭解如何使用網路相關命令來進行滲透測試:

ifconfig               # 檢視網路介面狀態及組態(請注意 ifconfig 已被 ip a 操作取代)
ip a                   # 檢視 IP 地址及網路介面狀態(推薦替代 ifconfig)
ping [IP 地址]         # 測試連線指定 IP 地址是否可達(例如 ping google.com)
traceroute [IP 地址]   # 路由追蹤至指定 IP 地址(例如 traceroute google.com)
netstat -tuln          # 檢視所有盜聽中的 TCP/UDP 埠號及協定狀態(如果沒有 netstat 安裝 ss -tuln)

# 網路掃描工具 nmap 常用指令範例:
nmap -sP [IP 地址]     # 埠掃描指定 IP 地址範圍(例如 nmap -sP 192.168.1.0/24)
nmap -sS -p [Port Range] [IP Address Range]
小段落標題

此圖示展示了常見網路操作命令之間的關係及其作用:

內容解密:

在此圖示中:

  • A 處理查詢網路介面狀態及組態的需求,
  • B 分支出兩種不同方式進行查詢:使用傳統命令 ifconfig 或現代化命令 ip a
  • C 再進一步處理根據選擇方式展示相關資訊,
  • D 最後處理顯示所有監聽中的 TCP/UDP 埠號及協定狀態。

玄貓認為深入學習這些基本命令可以讓你更好地理解 Linux 是如何運作以及如何在實際應用中進行最佳化和調整。

次段落標題

最佳化環境變數

環境變數對於系統執行和指令碼執行非常重要。玄貓會教你如何管理環境變數以提升效率:

echo $PATH                  # 檢視目前 PATH 機制變數設定值(PATH 通常存放可執行檔之位置)
export PATH=$PATH:/new/path   # 新增新目錄到 PATH 中(例如 /new/path)

# 暫存環境變數 (session-only)
export MY_VAR="my_value"

# 永久環境變數 (持久化)
echo 'export MY_VAR="my_value"' >> ~/.bashrc

# 檢視所有環境變數 (根據需求進行篩選)
printenv | grep MY_VAR   # 指定篩選印出 MY_VAR 情況值

# 清除環境變數 (session-only)
unset MY_VAR              # 清除暫存環境變數 MY_VAR 值設定條件 (僅限於目前 session)

# 清除永久化環境變數 (持久化)
sed -i '/MY_VAR/d' ~/.bashrc   # 檔案清除 env MY_VAR 持久化記錄 (會影響未來 session)

次段落標題

自動化與指令碼編寫

玄貓將介紹 Bash 指令碼編寫的基本技巧和最佳實踐:

#!/bin/bash   ## , 說明指令碼要使用 bash shell 去執行處理程式 ###

# 註解: 說明指令碼要完成什麼工作, 每行都是單獨的一句話, 不要多句寫在同一行, 註解要完整 ### 加上#即可註解過程處理 ## 建議加入過程處理詳細說明 ## 指派指向起始或末端 ## 底部若不加上 exit, 預設為成功 ## 結果傳回值為零 ### 則表示成功, 若非零值表示錯誤.

set -e     ## 若有任何過程出錯, 需立即停止當前指令碼進行程式 ## set -e 命令啟用了這種行為, 錯誤停止 ### set -e 有助於防止錯誤輸出繼續影響結果 ### 若要取消這個規則, 在指令碼末端加上 set +e ### 改善靈活性 ### 展現安全性策略 ### 須注意該規則 ## 是否符合需求預期 ### 是否需要更靈活設定方式.

## 背景 ### 本文脈述說: 是否適合對於多人環境分享使用者修改許可權 ### 評估批准

function backup_data() {
    echo "Starting data backup..."
    tar czf /path/to/backup.tar.gz /data/directory/
    echo "Backup completed."
}

function clean_up() {
    echo "Cleaning up temporary files..."
    rm -rf /tmp/*
}

backup_data      ## 呼叫函式進行資料備份任務 ## 根據預設時間點自動排程或者手動觸發 ## 或開啟日誌記錄, 分析備份成功失敗 ## 是否符合安全性需求 ## 排程頻率要考慮執行影響時機 ## 對於臨時檔案處理方式要注意影響範圍 ## 安全性原則 ## 是否需要更多細節設定.

clean_up        ## 呼叫函式清理臨時檔案任務 ## 根據預設時間點自動排程或者手動觸發 ## 或開啟日誌記錄, 分析臨時檔案處理結果. ## 是否符合安全性需求.

次段落標題

內容解密:

此範例展示瞭如何使用 Bash 編寫自動化指令碼以進行資料備份及清理臨時檔案。以下是詳細說明:

  • #!/bin/bash:****: 說明指令碼要使用 bash shell 去執行處理程式。
  • # 註解: ... : 註解: 說明指令碼要完成什麼工作,每行都是單獨的一句話,不要多句寫在同一行,註解要完整。
  • set -e: 錯誤停止: 若有任何過程出錯, 需立即停止當前指令碼進行程式。這種行為由 set -e 命令啟用,防止錯誤輸出繼續影響結果
  • 函式: 分別定義兩個函式 backup_data()clean_up():
    • backup_data(): 處理資料備份工作:
      • tar czf /path/to/backup.tar.gz /data/directory/: 壓縮 /data/directory/ 資料夾並生成 /path/to/backup.tar.gz.
      • 在備份開始和完成時分別輸出提示資訊。
    • clean_up(): 清理臨時檔案:
      • rm -rf /tmp/*: 副檔案 /tmp/ 中所有檔案.
      • 在清理開始時輸出提示資訊。

玄貓認為理解和掌握這些基本概念不僅能提升你的駭客技能,還能幫助你在日常工作中更高效地使用 Linux。

次段落標題

網路安全基礎與滲透測試準備

瞭解如何進行網路掃描、埠掃描以及基本防禦措施:

nmap -sP [IP 地址範圍]      # 埠掃描指定 IP 地址範圍 (例如 nmap -sP 192.168.1.0/24)

# 主動探測模式:
nmap -sS [IP 地址範圍]      # SYN 掃描指定 IP 地址範圍 (例 nmap -sS google.com)

# 滲透測試工具:
metasploit               # 強大而靈活的框架支援多種攻擊形式(MSFConsole)
小段落標題

此圖示展示了不同網路安全掃描工具之間的關係及其應用場景:

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

title Kali Linux 入門:掌握駭客必備 Linux 基礎知識

package "安全架構" {
    package "網路安全" {
        component [防火牆] as firewall
        component [WAF] as waf
        component [DDoS 防護] as ddos
    }

    package "身份認證" {
        component [OAuth 2.0] as oauth
        component [JWT Token] as jwt
        component [MFA] as mfa
    }

    package "資料安全" {
        component [加密傳輸 TLS] as tls
        component [資料加密] as encrypt
        component [金鑰管理] as kms
    }

    package "監控審計" {
        component [日誌收集] as log
        component [威脅偵測] as threat
        component [合規審計] as audit
    }
}

firewall --> waf : 過濾流量
waf --> oauth : 驗證身份
oauth --> jwt : 簽發憑證
jwt --> tls : 加密傳輸
tls --> encrypt : 資料保護
log --> threat : 異常分析
threat --> audit : 報告生成

@enduml

內容解密:

在此圖示中:

  • A 處理網路安全掃描工具選擇需求,
  • B 分支出根據 nmap 工具提供兩種不同模式進行埠和 SYN 掃描,
  • CD 分別處理埠掃描及 SYN 掃描模式,
  • E 最終都會達到基本防禦階段,

玄貓認為理解和掌握這些基本概念不僅能提升你的駭客技能,還能幫助你在日常工作中更高效地使用 Linux。

次段落標題

此段結束符