誰都喜歡框架。無論對於是平時出於各種目的遊走在網頁和服務器中的黑客,還是從事網絡安全測試的安全人員來說,一個好的漏洞框架發揮的作用不言而喻。這其中的Metasploit脫穎而出。雖然這款框架集成了從漏洞發現到漏洞利用的幾乎所有功能,但是不得不承認其在木馬後門的免殺方面現如今已經不足以應付一些流氓殺軟了。但是,Powershell Empire可以。本篇文章是筆者在一次偶然的機會中接觸到powershell empire後進行簡單初步的摸索,由於關於這款工具的文章很少,大部分都沒有涉及到裡面模塊作用和原理,官方文檔能提供的信息也不多。所以我也是盡力把自己理解的寫出來,筆者能力有限,更深層次的利用和原理剖析還在逐步進行。請諒解。
empire選擇了poweeshell作為攻擊平台總是有原因的。其作為windows平台下的一種命令行外殼程序和腳本環境,它可以使命令行用戶和腳本編寫者利用.NET Farmework。說到這裡,你可能還是一臉懵逼,我也是,畢竟這只是powershell的官方解釋。那我們來看下empire開發者是怎麼講的:傳送門: http://www.exploit-monday.com/2012/08/Why-I-Choose-PowerShell.html 。
其中重要的一段是:"Scripting languages offer an advantage to an attacker because they provide a layer of abstraction that AV has no idea how to interpret. For example, a common AV bypass technique is to package malicious Python scripts into an executable. AV has a hard time distinguishing the resulting binary as malicious or legitimate because the Python interpreter itself has plenty of legitimate uses. PowerShell offers a distinct advantage in this scenario due to its tight integration with the Windows OS and considering it’s based upon the .NET framework. With such a powerful scripting environment, there is no need to drop files on disk. Everything, with the possible exception of the script itself run entirely memory-resident."
大致意思是:腳本語言為攻擊者提供了一個優勢,因為它們提供了一個抽象層,殺軟(AV)不知道如何解釋。例如,常見的殺軟旁路技術是將惡意Python腳本打包成可執行文件。殺軟很難將生成的二進制文件區分為惡意的或合法的,因為Python解釋器本身有很多合法用途。PowerShell在這種情況下提供了明顯的優勢,因為它與Windows操作系統的緊密集成,並考慮到它基於.NET框架。使用如此強大的腳本環境,不需要將文件放在磁盤上。所有的東西,除了腳本本身的可能例外,它完全是內存駐留的。
no need to drop files on disk:無需寫入硬盤,內存駐留。empire使攻擊者能在內存中運行命令,也就是empire使用powershell作為攻擊平台,並且有大概率成功繞過AV的原因。
這種內存中運行的命令是否會讓後來的入侵取證出現困難?這個我還未諮詢相關的大佬和老師,暫時就不得而知了。
和Metasploit一樣,empire集成了對主機控制提權,內網主機探測等主流的滲透測試功能。
其重要的由四大部分:listeners(偵聽器)、stagers(驛站)、agents(會話代理)、modules(模塊)
listeners相當於msf中的監聽模塊,用來設置本地IP進行會話監聽的。
stargers就是一段惡意代碼,它通過本機的會話代理(agent)實現本機與被攻擊主機的會話通道。
agents相當於msf中的session,當我們在被攻擊主機上成功執行惡意代碼(即木馬後門) 時,會反彈一個shell,並通過agent構建本地和被害主機會話。
modules這是一個我們在控制了目標主機後,對目標內網或域進行滲透所要使用的主要模塊,其包含了很多功能,具體的筆者還在摸索中。
3.1 配置偵聽器(Listener)
使用listeners命令,加載當前活動的偵聽器。沒有的話也會提示你。你可以輸入help查看幫助,選擇Listeners下可以使用的命令。這裡我們首先創建一個活動的偵聽器。
(Empire:listeners)>uselistener
TAB鍵彈出可用的偵聽建立途徑
從圖中可以看出具體有七種偵聽途徑建立方式,其中有五種是通過http協議進行建立通信的,他們之間具體的差別主要在於目標主機的第三方軟件配置的差別,關於這一點,empire的官方文檔給出了解釋:傳送門。剩下的是我們熟悉的msf中常用的meterpreter以及使用條件需要目標主機安裝第三方軟件dropbox的dbx途徑。這裡我們選擇比較通用的http通道。使用info查看詳細配置信息。
(Empire:listeners)>uselistenerhttp(Empire:listeners/http)>info
然後進行配置:
(Empire:listeners/http)>setHost192.168.1.144(Empire:listeners/http)>setPort1234
然後execute生成偵聽
然後main指令回到主菜單,可以看到一個偵聽已經激活。listener列表顯示詳細信息。
3.2 配置Stagers
配置好偵聽後就要配置我們的攻擊代碼了,也就是木馬後門。使用usestager命令TAB鍵可以看到所有根據不同系統的生成木馬後門的文件類型。
其中multi為通用模塊、osxmac操作系統、另外還有linux與windows模塊。生成的文件類型有.dll,bat,vbs等等。其中就包括前段時間office宏命令漏洞的主角windos/macro模塊。詳情點擊:傳送門:http://bobao.360.cn/learning/detail/3605.html
實戰中直接命令usestager [具體模塊]就可以在/tmp目錄下生成一個特定文件格式的木馬後門,然後通過webshell上傳運行就可以了。這裡因為演示需要就不進行具體文件生成,直接使用launcher+語言類型(這裡是powershell)+偵聽的名字(這裡是偵聽的默認名字是http,也可以在設置偵聽時自己更改),如下:
(Empire)>launcherpowershellhttp
生成一個powershell語言的內容,直接在powershell目錄下執行就行了:
運行,發現殺軟並沒有有明顯變化,但也並不能證明其免殺效果,因為不清楚殺軟是否對powershell的行為流量進行監控。
3.2.1 由此衍生的騷操作
從上面這裡我們可以看到執行惡意的 powershell命令時殺軟並沒有給出任何報毒反映,那麼我們在此基礎上進一步將這個利用點擴大化,進行一次模擬網絡釣魚。如何實現?這裡我們就要用到最近才出現的office無宏命令執行漏洞了。前幾天國內已經有人翻譯了原文:傳送門:http://bobao.360.cn/learning/detail/4526.html 。
這個office漏洞的原理簡單的說就是,在office中可以通過一種存在於windows內部程序進行數據動態交換的DDE協議進行命令執行,從而達到調用windows內其他程序的目的。看到這裡,你應該有點想法了。沒錯,我們就是用這個命令執行的漏洞,執行我們前面的powershell惡意命令,看會不會有我們想要的那種效果。
1. 先將上面生成的攻擊代碼寫成psl文本,放入本地lamp環境根目錄:
2. 編寫釣魚的word文檔:
3. 先用 殺軟掃下有沒有報毒,再發送至虛擬機。這裡因為虛擬機的win7沒有word,我就暫時以我的物理機來實驗吧(拼了)
結果殺軟未報毒 最終,反彈了自己物理機的shell…………..
再此過程中殺軟除了powershell啟動的一瞬間給了一次見慣不怪的警告(原來警告確實重要!),之後的會話一直沒結束。成功驗證操作。
言歸正傳,此時,empire的agent已有反應,遠控回話已開啟。此時,我們使用命令interact進入已經建立的會話名。
help查看我們在已建立的會話中所能使用的命令,查看目標主機信息。
能成功執行,繼續深入,使用mimikatz命令可以查看目標主機的用戶名以及密碼,但是我麼可以看到這裡失敗了。
爆出了needs to elevated content的錯誤,這裡大家應該明白需要提權了。那麼empire有沒類似於msf中的提權命令呢?有的。



