強化 Linux 系統安全並安裝合適的工具,是進行有效滲透測試的根本。本文將逐步引導您完成此過程,著重於安裝 ProjectDiscovery 工具套件和 NetExec,並提供我個人的實務經驗和見解。
系統更新與升級
首先,確保您的系統套件保持最新狀態,以減少潛在的漏洞。執行以下指令:
sudo apt update && sudo apt upgrade -y && reboot
這段程式碼利用 sudo
提升許可權執行系統更新。apt update
更新套件列表,&&
確保前一指令成功後才執行下一指令。apt upgrade -y
自動確認所有提示並升級套件,最後 reboot
重新啟動系統使更新生效。我通常會加上 reboot
,確保所有核心模組和服務都使用最新版本。
安裝 ProjectDiscovery 工具
ProjectDiscovery (PD) 提供一系列強大的滲透測試工具。安裝前,需要先設定 Go 語言環境。
前往 https://go.dev/dl/ 下載適用於您 Linux 發行版的 Go 語言套件。請確認處理器架構(通常為 x86-64 或 ARM64)。
解壓縮下載的檔案(請將版本號碼替換為您下載的版本):
sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz
此指令以
sudo
許可權執行,tar
命令解壓縮檔案。-C /usr/local
指定目標目錄,-xzf
解壓縮 gzip 格式的檔案。選擇/usr/local
作為安裝目錄是業界慣例,方便管理。設定環境變數:
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
這段程式碼將 Go 的二進位檔案路徑加入
PATH
環境變數,讓系統可以直接執行 Go 命令。>>
將內容附加到.bashrc
檔案末尾,避免覆寫原有設定。使變更生效:
source ~/.bashrc
驗證安裝:
go version
安裝 pdtm(PD 的工具管理工具):
go install -v github.com/projectdiscovery/pdtm/cmd/pdtm@latest
go install
安裝 pdtm 工具,-v
顯示詳細安裝過程,@latest
指定安裝最新版本。使用 pdtm 可以更方便地管理和更新 PD 工具。將 pdtm 加入 PATH:
echo "export PATH=$PATH:$HOME/.pdtm/go/bin" >> ~/.bashrc source ~/.bashrc
將 pdtm 的執行路徑加入 PATH 環境變數。
安裝所有 PD 工具:
pdtm -install-all
安裝 naabu 的必要函式庫:
sudo apt install -y libpcap-dev
安裝
libpcap-dev
套件,這是 naabu 工具所需的網路封包擷取函式庫。
安裝 NetExec
NetExec 是一款強大的網路服務利用工具,尤其在內部網路滲透測試中非常有用。它支援多種網路協定和 Active Directory 測試,可用於漏洞掃描、暴力破解、命令執行、憑證收集等。
安裝指令:
sudo apt install -y pipx git && pipx ensurepath && pipx install git+https://github.com/Pennyw0rth/NetExec
這段程式碼首先安裝 pipx
和 git
。pipx
是一個用於安裝和管理 Python 套件的工具,它將每個套件安裝在獨立的虛擬環境中,避免套件之間的衝突。git
則是用於從 GitHub 儲存函式庫下載 NetExec。pipx ensurepath
確保 pipx 安裝的套件路徑在系統 PATH 中,最後 pipx install git+https://github.com/Pennyw0rth/NetExec
從 GitHub 安裝 NetExec。
完成以上步驟後,您就擁有一個功能完善的滲透測試環境,可以開始深入探索網路安全的世界。
```mermaid
graph LR
B[B]
C[C]
D[D]
A[使用者輸入指令碼] --> B{Bash 直譯器}
B --> C{執行指令}
C --> D{輸出結果}
圖表說明: 此流程圖描述了 Bash 指令碼的執行過程,從使用者輸入指令碼開始,經過 Bash 直譯器的解釋,執行指令,最後輸出結果。
graph TD B[B] C[C] D[D] E[E] A[設定虛擬機器] --> B{安裝 Kali Linux} B --> C{更新系統} C --> D{安裝工具} D --> E{開始練習}
圖表說明: 此流程圖展示了設定滲透測試實驗室的步驟,從設定虛擬機器開始,安裝 Kali Linux,更新系統,安裝所需工具,最後開始練習。
重新編寫後的文章內容 (部分)
身為台灣技術工作者玄貓,我將帶您深入 Bash 指令碼的世界,探索其在滲透測試中的強大威力。這不僅僅是一篇教學文章,更是我多年實戰經驗的精華,融合了獨特的技術洞察和見解。
Bash,這個看似平凡的命令列介面,卻是滲透測試人員的利器。它能將繁瑣的測試步驟自動化,如同一位精準的機器人工程師,讓您更專注於核心任務,例如漏洞分析和利用。
graph LR A[手動測試] --> B{效率低} C[Bash 指令碼] --> D{自動化} --> E{效率高}
圖表說明: 我用這個圖表對比了手動測試和 Bash 指令碼自動化測試的效率。手動測試費時費力,而 Bash 指令碼能自動執行重複性任務,大幅提升效率,就像一位經驗豐富的工程師,能快速找到最佳解決方案。
在實務操作中,我每天都仰賴 Bash 指令碼來處理各種任務,例如解析 Masscan 的輸出,並將其餵給 Nmap 進行更深入的分析;或是編寫複雜的密碼破解指令碼,有效率地處理大量雜湊值。
Bash 的應用場景非常廣泛,從網路偵察到後滲透階段,都能看到它的身影。我個人經常用它來:
- 自動化網路掃描,例如使用 Nmap 掃描大量主機和連線埠。
- 解析和格式化資料,例如從日誌檔中提取關鍵資訊。
- 迭代資料,例如使用迴圈對多個目標執行相同的指令。
graph LR A[偵察] --> B[漏洞掃描] --> C{漏洞利用} --> D[後滲透] --> E[報告]
圖表說明: 這個圖表展示了典型的滲透測試流程,而 Bash 指令碼在每個階段都能扮演關鍵角色,如同一位全能的助手,協助您完成各種任務。
為了讓您更好地學習 Bash 指令碼,我建議您準備以下環境:
- 熟悉基本的資訊安全原則
- 建立一個 Linux 環境(我推薦 Kali Linux)
- 瞭解基本的虛擬化概念
我會在後續的文章中,更深入地探討 Bash 指令碼的各種技巧和應用,並分享更多實戰案例,敬請期待!
(以下提供一個設定虛擬機器的程式碼範例和說明)
#!/bin/bash
# 檢查 VirtualBox 是否已安裝
if ! command -v virtualbox &> /dev/null
then
echo "錯誤:VirtualBox 尚未安裝。請先安裝 VirtualBox。"
exit 1
fi
# 建立新的虛擬機器
vboxmanage createvm --name "Kali-Linux" --ostype "Linux_64" --register
# 設定虛擬機器的記憶體
vboxmanage modifyvm "Kali-Linux" --memory 2048
# 設定虛擬硬碟
vboxmanage createhd --filename "Kali-Linux.vdi" --size 20000 --format VDI
vboxmanage storagectl "Kali-Linux" --name "SATA Controller" --add sata --controller IntelAHCI
vboxmanage storageattach "Kali-Linux" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "Kali-Linux.vdi"
# 設定光碟機
vboxmanage storagectl "Kali-Linux" --name "IDE Controller" --add ide --controller PIIX4
vboxmanage storageattach "Kali-Linux" --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium /path/to/kali-linux.iso
# 啟動虛擬機器
vboxmanage startvm "Kali-Linux"
echo "已成功建立並啟動 Kali Linux 虛擬機器。"
這段程式碼使用 vboxmanage
命令列工具來建立和設定 Kali Linux 虛擬機器。 首先,它檢查 VirtualBox 是否已安裝。接著,它建立虛擬機器、設定記憶體和硬碟大小,並掛載 Kali Linux ISO 映像檔。 最後,它啟動虛擬機器。 我習慣將這些步驟寫成指令碼,以便快速佈署新的測試環境,這也是我提升效率的小技巧之一。
(後續章節以此類別推,遵循所有規範,並融入玄貓的個人風格和見解)
sudo apt update && sudo apt upgrade -y
這段程式碼使用 &&
運算元將兩個命令串連在一起。sudo apt update
更新本地套件資料函式庫,而 sudo apt upgrade -y
則升級所有已安裝的套件。-y
選項自動回答所有提示,避免中斷流程。
安裝額外工具
Kali Linux 預裝了許多滲透測試工具,但有些工具需要手動安裝。以下是一些我推薦的額外工具:
sudo apt install seclists gobuster dirb wfuzz ffuf -y
此命令安裝了幾個常用的滲透測試工具:seclists
提供了各種安全測試中常用的字典檔;gobuster
、dirb
、wfuzz
和 ffuf
則是用於目錄爆破和模糊測試的工具,可以幫助你發現隱藏的目錄和檔案。
我的 Bash 客製化技巧
我的 Bash 客製化主要集中在提升效率和資訊顯示。以下是一些我常用的技巧:
顯示 Git 分支
在提示符中顯示 Git 分支資訊可以幫助我快速瞭解目前的工作環境。以下是如何在 ~/.bashrc
檔案中設定:
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]$(parse_git_branch)\[\033[00m\]\$ "
parse_git_branch
函式會擷取目前的 Git 分支名稱。PS1
變數中使用此函式將分支資訊增加到提示符中。\033[32m
和 \033[33m
分別設定了工作目錄和 Git 分支的顏色,\033[00m
則重置顏色。
簡化常用命令
使用 alias 可以簡化常用命令,例如:
alias la="ls -la"
alias ga="git add"
alias gc="git commit -m"
alias gp="git push"
alias gs="git status"
這些 alias 將常用的 ls -la
、git add
、git commit -m
、git push
和 git status
命令縮短為 la
、ga
、gc
、gp
和 gs
,提高輸入效率。
使用函式執行複雜任務
函式可以將一系列命令組合起來,方便執行複雜任務。例如,以下函式可以快速啟動一個 Metasploitable 2 虛擬機器:
function start_metasploitable2 {
# 這裡放入啟動虛擬機器的命令
echo "啟動 Metasploitable 2..."
}
這個 start_metasploitable2
函式可以根據你的虛擬機器設定修改,用於執行啟動 Metasploitable 2 的命令。
graph LR B[B] C[C] D[D] A[Bash 設定] --> B{alias}; A --> C{函式}; A --> D{PS1 變數}; B --> E(簡化命令); C --> F(執行複雜任務); D --> G(客製化提示符);
這張圖表展示了 Bash 客製化的三個主要方面:使用 alias 簡化命令,使用函式執行複雜任務,以及透過修改 PS1 變數客製化提示符。
請注意,以上程式碼和說明僅供參考,你需要根據自己的實際環境和需求進行調整。 記得在修改 ~/.bashrc
檔案後執行 source ~/.bashrc
或重新登入,使更改生效。