基於Python實現的Koadic惡意軟體分析Part 1
寫在前面的話
我在一次偶然的機會中瞭解了Koadic這款工具,於是我決定製作一個 “javascript rundll32 exploit”
的關鍵字組合,看看會出現什麼。所以我開始了Koadic後期開發rootkit之路,學習Koadic可以參考Sean Dillon和Zach Harding在Defcon上的演示。Koadic類似於 ofollow,noindex" target="_blank"> Shell/">PowerShell Empire
,擁有基於指令碼的stager和植入裝置功能。然而,關鍵的區別在於,Koadic依賴於受害者計算機上的JavaScript和VBScript。但如今安全團隊更加關注在Windows事件日誌中尋找不尋常的PS活動。我想這可以稱為 JavaScript Empire
。
開始
在這篇文章中,我們將對Koadic的能力和架構做一個簡單的介紹。Koadic有一個特點就是允許攻擊者能夠隨時更改程式碼,來迅速適應新的環境。稍後我將在本系列文章中討論這個問題,但是很明顯,您需要將注意力從Windows事件日誌轉移到底層檔案系統上。首先,我們在AWS環境中的一個Ubuntu例項上安裝了Github上的軟體。我們遇到了一些困難,但這很快就被解決了——重新安裝了Koadic的Python模組。是的,Koadic的伺服器端都是基於python的。為了完成工作,Koadic利用了Windows二進位制程式碼,這些二進位制程式碼會偷偷地引入遠端JavaScript或VBScript。讓我們假設 mshta stager
(測試中使用的stager)是通過釣魚郵件傳送給受害者的。一旦啟用,Koadic就會創造出 “zombie”
。這是他們對受害者機器的控制方式。
在一個實際的筆試場景中,第一個任務就是要解決who和where問題。輸入 “info”
命令來檢視基本引數是什麼,然後相應地設定它們。
第二步
一旦掌握了基礎知識,就可以幫助您發現您所使用的Windows環境的完整限定域名(FQDN)。正如我們將看到的,您將需要域名離開最初被黑客入侵的計算機。為此,我需要通過將 cmd
引數設定為 GetHostByName($ env:computerName)
來使用PowerShell。它是一個良性的 PS cmdlet
。
簡而言之:Koadic內建支援獲取重要的環境資訊,當然還有執行shell命令填補空白的能力。順便說一下,可以在Github主頁上找到所有命令的描述。
第三步
除非黑客運氣爆炸,登陸的伺服器上有數百萬個未加密的信用卡號碼,否則她需要跳到另一臺計算機上。這樣做的方法是獲取域級憑據,最終找到具有提升許可權的憑據,然後執行橫向滲透。曾幾何時,我寫過如何使用 mimikatz
和 psexec
這樣做。Koadic已經提供了一個基於 mimikatz
來從SAM儲存器中檢索憑證,另一個用於支援 psexec
。小提示:您必須將 psexec
可執行檔案顯式上傳到受害者的計算機並設定路徑名稱。例如,要檢索憑證,我運行了 implant/inject/mimikatz_dynwrapx
:
您可以看到NTLM雜湊,如果需要,您可以離線破解。但是您還可以利用wdigest安全漏洞,獲得純文字密碼。我不會在這篇文章中展示如何進行實際的橫向移動,但您可以在下面看到 implant/pivot/psexec below
的設定: