怎么用Apachemod_rewrite模擬實(shí)現(xiàn)CIAHive流量分發(fā)

這篇文章主要講解了“怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)”吧!

秀山土家族苗族網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),秀山土家族苗族網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為秀山土家族苗族成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的秀山土家族苗族做網(wǎng)站的公司定做!

一、背景介紹

本文的復(fù)現(xiàn)場(chǎng)景源于2017年11月維基解密Vault 8文件曝光的CIA網(wǎng)絡(luò)武器庫(kù)之CIA Hive[1]工具。CIA Hive工具的主要功能是輔助CIA其他惡意軟件隱蔽控制、運(yùn)行。

CIA Hive的整體結(jié)構(gòu)可以分為四層,如圖 1 所示。

怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)

圖 1

具體關(guān)于CIA Hive各層對(duì)應(yīng)詳細(xì)解析請(qǐng)參考[2],本次復(fù)現(xiàn)場(chǎng)景聚焦模擬實(shí)現(xiàn)并驗(yàn)證隱藏服務(wù)器(Blot)的流量分發(fā)功能——Blot Server根據(jù)不同來(lái)源把請(qǐng)求分發(fā)到事先設(shè)定好的不同服務(wù)器。即當(dāng)Blot Server收到訪問(wèn)請(qǐng)求時(shí),Blot Server會(huì)基于對(duì)客戶端證書驗(yàn)證結(jié)果進(jìn)行流量分發(fā)。若SSL驗(yàn)證該訪問(wèn)非法,Blot會(huì)將流量分發(fā)給cover server,返回一個(gè)正常的網(wǎng)頁(yè)。若Blot    接收到帶有有效證書的流量(只有受控主機(jī)會(huì)發(fā)送帶有有效證書的流量)則將此流量轉(zhuǎn)發(fā)給Honeycomb,從而實(shí)現(xiàn)隱蔽通信和控制。

本文主要從技術(shù)角度出發(fā),嘗試使用Apache的mod_rewrite模塊實(shí)現(xiàn)其流量分發(fā)功能,完成與CIA Hive的Blot Server相同的功能。

二、原理概述

2.1 Apache的mod_rewrite模塊

2.1.1什么是mod_rewrite?

mod_rewrite是apache的一個(gè)模塊,安裝apache環(huán)境默認(rèn)安裝此模塊,但通常默認(rèn)不啟用,需要手動(dòng)啟用。該模塊是基于一定規(guī)則實(shí)時(shí)重寫URL請(qǐng)求的引擎。此模塊可以操作URL的所有部分,在服務(wù)器級(jí)(httpd.conf)和目錄級(jí)(.htaccess)的配置都有效。

2.1.2 mod_rewrite實(shí)現(xiàn)流量分發(fā)思路

通過(guò)手動(dòng)啟用rewrite模塊,進(jìn)入apache配置文件apache2.conf,開啟.htaccess的目錄級(jí)配置,打開AllowOverride,最后在.htaccess文件中配置規(guī)則來(lái)實(shí)現(xiàn)流量分發(fā)。具體配置規(guī)則及配置技巧可參考https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond和    https://bluescreenofjeff.com/tags。

2.2 x.509證書鏈

2.2.1 數(shù)字證書

數(shù)字證書是一種網(wǎng)絡(luò)身份證明文件,同時(shí)還包含有公鑰。證書的真?zhèn)涡枰粋€(gè)驗(yàn)證方式,而驗(yàn)證方需要認(rèn)同這種驗(yàn)證方式,以完成證書的頒發(fā)過(guò)程。一個(gè)https的站點(diǎn)需要和一個(gè)證書綁定,客戶端通過(guò)維護(hù)一個(gè)“根受信任機(jī)構(gòu)列表”完成站點(diǎn)的可信識(shí)別過(guò)程,而客戶端是否信任這個(gè)站點(diǎn)的證書取決于客戶端程序是否導(dǎo)入了證書頒發(fā)者的根證書。目前,X.509證書是一種通用的證書格式,符合ITU-T X.509國(guó)際標(biāo)準(zhǔn)。

2.2.2X.509證書

通用證書格式X.509主要包含三個(gè)文件:key,csr,crt。各文件描述如下:

key文件——服務(wù)器上的私鑰文件,用于對(duì)發(fā)送給客戶端數(shù)據(jù)的加密,以及對(duì)從客戶端接收到數(shù)據(jù)的解密。

csr文件——證書簽名請(qǐng)求文件,用于提交給證書頒發(fā)機(jī)構(gòu)(CA)對(duì)證書簽名。

crt文件——由證書頒發(fā)機(jī)構(gòu)(CA)簽名后的證書,或者是開發(fā)者自簽名的證書、包含證書持有人的信息、持有人的公鑰、以及簽署者的簽名等信息。

注:本文以復(fù)現(xiàn)實(shí)驗(yàn)為主,將采用HTTPS雙向認(rèn)證。其中,雙向認(rèn)證和單向認(rèn)證原理類似,區(qū)別在于除了客戶端需要認(rèn)證服務(wù)端以外,增加了服務(wù)端對(duì)客戶端的認(rèn)證。服務(wù)端在驗(yàn)證客戶端證書后,根據(jù)其驗(yàn)證結(jié)果可以提供不同的服務(wù)(如:驗(yàn)證合法后才轉(zhuǎn)到特定服務(wù)鏈接)。具體可參考https://blog.csdn.net/duanbokan/article/details/50847612

三、場(chǎng)景復(fù)現(xiàn)步驟

3.1 Ubuntu下安裝和配置基礎(chǔ)環(huán)境

最小化環(huán)境需求:win7虛擬機(jī) * 1(客戶端驗(yàn)證,測(cè)試),ubuntu虛擬機(jī) * 1(模擬Blot Server)

注:為避免報(bào)錯(cuò),建議在root賬戶下進(jìn)行實(shí)驗(yàn)。

3.1.1 在ubuntu 16.04上安裝apache2和openssl

apt-getinstallapache2 apt-getinstallopenssl

3.1.2 啟用Apache SSL模塊

a2enmodssl

3.1.3 啟用Apache mod_rewrite模塊

a2enmodrewrite

3.1.4 自簽名證書生成

證書使用openssl生成,具體生成過(guò)程請(qǐng)參考偽造HTTPS證書[3]和合天在線實(shí)現(xiàn)-HTTPS證書偽造[4]。最終本次實(shí)驗(yàn)使用https雙向認(rèn)證,即需要生成用于服務(wù)端和客戶端驗(yàn)證的證書文件和對(duì)應(yīng)的兩對(duì)公私鑰文件。

3.2 Apache下配置https雙向認(rèn)證步驟

3.2.1證書準(zhǔn)備(均在ubuntu環(huán)境下使用openssl產(chǎn)生)

以下為快速生成步驟及命令,詳細(xì)講解請(qǐng)參考[3],[4]。

(1) 服務(wù)端認(rèn)證所需證書

生成2048位的RSA密鑰 .key 文件

    openssl genrsa -out ciahive.com.key

生成證書簽名請(qǐng)求 .csr 文件

    openssl req -new -key ciahive.com.key -out ciahive.com.csr

注:需要根據(jù)提示依次填入配置信息,Common Name項(xiàng)需要和域名項(xiàng)對(duì)應(yīng)(即ciahive.com)。

生成自簽名證書 .crt 文件

    openssl x509 -req -days 36500 -in ciahive.com.csr -signkey ciahive.com.key -out ciahive.com.crt

(2) 客戶端認(rèn)證所需證書

步驟與(1)中步驟類似,以下為快捷命令:

  openssl req -new -SHA256 -newkey rsa:2048 -nodes -keyout client.key -out client.csr -subj "/C=CN/ST=Shanghai/L=Shanghai/O=11/OU=22/CN=client"  openssl x509 -req -days 365 -in client.csr -signkey client.key -out client.crt  openssl pkcs12 -export -cacerts -inkey client.key -in client.crt -out client.p12

(3) 最終備用證書列表如圖2:

怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)

圖 2

3.2.2配置HTTPS雙向認(rèn)證

(1) 確認(rèn)開啟Apache SSL模塊。

     a2enmod ssl

(2) 編輯SSL配置文件

    vim /etc/apache2/sites-enabled/default-ssl.conf

在打開的文件編輯頁(yè)面指定(服務(wù)器認(rèn)證)的私鑰文件和簽名證書的路徑。

SSLEngine on
SSLCertificateFile /XX/XX/XX/ciahive.com.crt
SSLcertificateKeyFile 
/xx/xx/xx/ciahive.com.key

開啟客戶端認(rèn)證,并指定用于客戶端證書的路徑

 SSLCACertificateFile /xx/xx/xx/client.crt

 SSLVerifyClient require
 SSLVerifyDepth 10

(3) 啟用Apache默認(rèn)的SSL虛擬主機(jī)

     a2ensite default-ssl

(4) 重啟Apache服務(wù)

     service apache2 restart

(5) 客戶端配置

1)、修改客戶端的Hosts文件

由于實(shí)驗(yàn)域名ciahive.com并未實(shí)際注冊(cè),因此需要通過(guò)本地hosts文件(windows系統(tǒng)下的hosts文件路徑為:C:\Windows\System32\Drivers\etc\hosts)進(jìn)行解析。在hosts文件中(修改需要管理員權(quán)限)加入Apache服務(wù)器的ip及對(duì)應(yīng)的域名ciahive.com。如圖3.

怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)

圖 3

2)、客戶端安裝服務(wù)器的自簽名證書ciahive.com.crt為受信任的根證書頒發(fā)機(jī)構(gòu),安裝結(jié)果如圖4。

怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)

圖 4

3)、向客戶端添加特定證書client.p12文件,用于服務(wù)器驗(yàn)證客戶端。安裝結(jié)果如圖5。

怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)

圖 5

3.2.3測(cè)試https雙向認(rèn)證配置

通過(guò)訪問(wèn)https://ciahive.com來(lái)測(cè)試https雙向認(rèn)證配置是否成功。以下為簡(jiǎn)易驗(yàn)證方法。

(1) 通過(guò)未配置ciahive.com.crt證書的客戶端1訪問(wèn)https://ciahive.com,應(yīng)該是不安全連接被攔截。如圖6。

怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)

圖 6

(2) 若客戶端只安裝了證書ciahive.com.crt,缺少client.p12證書的客戶端訪問(wèn)會(huì)直接連接失敗,結(jié)果如圖7。

怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)

圖 7

(3) 使用已完成兩個(gè)證書安裝的客戶端2訪問(wèn)https://ciahive.com,會(huì)首先提示進(jìn)行客戶端證書選擇,如圖 8。

怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)

圖 8

(4) 確認(rèn)使用client.p12作為客戶端證書后,與https://ciahive.com建立安全鏈接。成功頁(yè)面如圖 9。

怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)

圖 9

(5) 訪問(wèn)https://ciahive.com出現(xiàn)如圖 9的安全連接頁(yè)面后,表示https雙向認(rèn)證配置成功。

3.3 配置apache mod_rewrite規(guī)則實(shí)現(xiàn)流量分發(fā)功能

3.3.1配置Apache啟用mod_rewrite

(1) 開啟Apache mod_rewrite模塊

    a2enmod rewrite

(2) 編輯/etc/apache2/apache2.conf文件,開啟支持 .htaccess文件——用于編輯轉(zhuǎn)發(fā)規(guī)則。定位到如下位置:

    <Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

將AllowOverride None更改為AllowOverride All。

(3) 創(chuàng)建并編輯 .htaccess文件,文件保存路徑為:/var/www/html/。編寫測(cè)試規(guī)則。

1)、測(cè)試規(guī)則示例——將1.html重定向到2.html

    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteRule 1.html 2.html
    </IfModule>

2)、建立1.html空文件,在2.html里寫入內(nèi)容:

    <html>
        <body>
            Test is successful!
        </body>
    </html>

(4) 重啟apache服務(wù),測(cè)試網(wǎng)頁(yè)https://ciahive.com/1.html,若返回頁(yè)面為“Test is successful!”則測(cè)試通過(guò)。

3.3.2編輯規(guī)則,實(shí)現(xiàn)流量分發(fā)功能

具體的配置規(guī)則可以按需編輯,關(guān)于 .htaccess 編寫相關(guān)詳細(xì)技巧請(qǐng)參考[5]和[6]。

注:本次實(shí)驗(yàn)環(huán)境受限,僅僅使用兩臺(tái)虛擬主機(jī)進(jìn)行實(shí)驗(yàn),特編寫以下規(guī)則對(duì)CIA Hive的轉(zhuǎn)發(fā)思想進(jìn)行最簡(jiǎn)單的模擬。

具體的.htaccess模擬轉(zhuǎn)發(fā)規(guī)則如下:

    <IfModule mod_rewrite.c>
        RewriteEngine on  
        RewriteCond %{SERVER_PORT} !^443$
        RewriteCond %{REQUEST_URI} ^/0.html
        #訪問(wèn)0.html轉(zhuǎn)換為強(qiáng)制https訪問(wèn),且需要對(duì)客戶端進(jìn)行認(rèn)證。
        RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]
        #由于以配置https雙認(rèn)證,則只有被感染主機(jī)才擁有合法證書。
        #認(rèn)證通過(guò)后進(jìn)行重定向到payload地址(可以本地或其他遠(yuǎn)程主機(jī)),即類比CIA Hive中的Honey Server
        RewriteRule 0.html https://ciahive.com/.payload/remotepayload/payload1.html [L]
    </IfModule>

3.3.3實(shí)際測(cè)試

(1) 模擬的正常主機(jī)(無(wú)證書)

1)、訪問(wèn)其他頁(yè)面(除ciahive.com/0.html外所有ciahive.com及各目錄文件)均正常。參照?qǐng)D10。

怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)

圖 10

2)、訪問(wèn)ciahive.com/0.html時(shí)被強(qiáng)制使用https訪問(wèn),由于未獲得合法證書將提示連接失敗。參照?qǐng)D11。

怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)

圖 11

(2)、被感染主機(jī)(已被安裝ciahive.com.crt和client.p12兩個(gè)證書)

1)、訪問(wèn)其他頁(yè)面同正常主機(jī)。

2)、訪問(wèn)ciahive.com/0.html時(shí)被強(qiáng)制使用https訪問(wèn)。將提示選擇客戶端證書確認(rèn)(實(shí)際攻擊場(chǎng)景可以設(shè)計(jì)為默認(rèn),即不彈窗提示)后連接被重定向到https://ciahive.com/.payload/remotepayload/payload1.html頁(yè)面(模擬Honey Server)。參照?qǐng)D12 。

怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)

圖 12

四、實(shí)驗(yàn)總結(jié)

4.1本文復(fù)現(xiàn)關(guān)鍵:

(1) 深入理解X.509證書鏈和HTTPS雙向認(rèn)證原理。

(2) Apache及re_write模塊參數(shù)正確配置。

(3) 理解CIA Hive流量轉(zhuǎn)發(fā)過(guò)程,尤其是隱蔽服務(wù)器的功能。

(4) .htaccess中轉(zhuǎn)發(fā)規(guī)則的實(shí)現(xiàn)。

4.2總結(jié):

(1) 本次復(fù)現(xiàn)實(shí)驗(yàn)對(duì)于理解CIA Hive框架有很大幫助時(shí),同時(shí)在Apache+openssl環(huán)境搭建及其過(guò)程中遇到的各種問(wèn)題,當(dāng)問(wèn)題逐一被解決就形成了對(duì)整個(gè)流程的清晰認(rèn)識(shí)。

(2) 需要特別注意 X.509證書鏈及其基本原理。同時(shí)實(shí)驗(yàn)中采用的HTTPS的雙向認(rèn)證在公共站點(diǎn)基本不會(huì)開啟,因此攻擊者如果采用此類少數(shù)人關(guān)注的技術(shù)點(diǎn)實(shí)現(xiàn)攻擊目的是很難被發(fā)現(xiàn)的。

(3) 本次復(fù)現(xiàn)只在基礎(chǔ)學(xué)習(xí)理解上進(jìn)行了最簡(jiǎn)單的功能實(shí)現(xiàn),在.htaccess文件的轉(zhuǎn)發(fā)規(guī)則的設(shè)計(jì)和整各實(shí)驗(yàn)設(shè)計(jì)上都還有很大的提升空間。

感謝各位的閱讀,以上就是“怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)怎么用Apache mod_rewrite模擬實(shí)現(xiàn)CIA Hive流量分發(fā)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

文章名稱:怎么用Apachemod_rewrite模擬實(shí)現(xiàn)CIAHive流量分發(fā)
文章起源:http://bm7419.com/article18/jdiggp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、App開發(fā)、App設(shè)計(jì)、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計(jì)公司搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化