实验环境
- 操作机 :Kali 2017
- 操作机IP:172.16.11.2
- 目标机:Windows 7
- 目标机IP:172.16.12.2
实验目的
- 学习WordPress站点的渗透过程
- 掌握WordPress后台暴力破解方法
- 知晓弱密码对网站的危害
实验工具
WPscan:WordPress站点漏洞扫描探测工具,用于探测站点存在的漏洞情况,可检测插件的漏洞
WordBrutepress:WordPress后台用户、密码爆破工具,可支持低版本XML-RPC爆破
实验内容
WordPress简述
WordPress是使用PHP语言开发的博客平台,现今已逐步演变为一款内容管理系统(CMS)。其插件多,易安装,易使用的特点使之成为世界上最受欢迎的CMS之一,同样也成为了渗透测试人员的众矢之的。
WordPress是一个开源项目,来自世界各地的优秀的开发人员和白帽子都在致力于提高其安全性。但是由于使用了旧版本或者存在漏洞的插件和主题,很多WordPress站点都存在安全风险。
课程介绍
本系列实验我们将从信息收集入手,利用工具获取WordPress和其插件的版本信息,再针对信息收集获得的信息,去查找和验证相应的漏洞。
通过爆破后台、主站漏洞利用、插件漏洞利用、后台获取WebShell等不同角度去发现目标站点的漏洞,从而达到脱离漏洞本体,学会如何渗透WordPress目标站点,降低站点面临的风险。
实验步骤
本节课我们通过信息收集,发现目标站点的用户名,利用username去尝试暴力破解,登录目标站点的后台
第1步 信息收集
首先,准备工作,依次执行命令
# cd /home/ichunqiu/
# wget http://file.ichunqiu.com/453rgtfk/tools.zip
# unzip tools.zip
将实验文件下载并解压至/home/ichunqiu/目录下
然后将data.zip(wpscan的离线更新包)移动至/usr/share/wpscan/目录下,并解压(选择A覆盖原本的文件)
# mv data.zip /usr/share/wpscan/
# unzip data.zip
针对WordPress站点,我们可以收集如下信息:
- 识别指纹
WordPress默认安装情况下,根目录会留有开发人员编写的readme.html文件,通过访问该文件,我们可以大概的知道站点的WordPress版本号。
打开浏览器,访问
http://172.16.12.2:8080/readme.html
可知版本号为4.3
如果管理删除了该文件,我们该如何判断呢?
WPscan是一款针对WordPress的漏洞扫描工具,其指纹识别功能不仅能够获取WordPress的版本号,还能识别其插件的版本号
WPscan维护着一份漏洞信息库,我们首先需要更新漏洞数据信息,我们采用离线的方式更新漏洞信息库。
首先将下载最新的数据包(实验文件内的data.zip),将其复制到/usr/share/wpscan/目录下,使用unzip data.zip将其解压(请覆盖原本的数据)
使用如下命令开始扫描:
wpscan --url http://172.16.12.2:8080/
wpscan运行的时候会提示更新,默认N放弃在线更新
我们可以获取以下信息
* WordPress 版本号:4.3.1
* 插件版本号
* CVE信息
此处我们获取了目标服务器的版本信息、WordPress版本号、以及对应CVE漏洞信息等。在后续课程中我们会一一介绍如何利用
- wp-admin登录尝试
/wp-admin/是WordPress的默认管理员目录,打开
http://172.16.12.2:8080/wp-admin
,页面自动跳转至登录页面。 我们随机输入一个username 和 password 尝试登录一下。
可以看见出现报错:无效的用户名 (Invalid username),所以我们需要先获取用户名。
-
用户枚举
-
?author=1 遍历用户名 默认安装的WordPress 站点是能够遍历用户名的,使用浏览器访问
http://172.16.12.2:8080/?author=1
-
?author=1 遍历用户名 默认安装的WordPress 站点是能够遍历用户名的,使用浏览器访问
页面自动跳转至author为1的用户页面,获取了一个用户名。
我们再输入已存在的用户名zhangsan,密码任意
会提示密码无效
通过两次不同的返回信息,我们可以看出,目标后台确实存在一个zhangsan的用户。
当?author=1遍历用户名不好使得时候可以采用这种方法
若管理员修改了默认目录路径,则需要通过目录爆破等方式查找后台地址
我们已经有了用户名和后台路径,自然会想到后台暴力破解,所以接下来我们来讲解如何爆破WorPress后台登录密码
第2步 暴力破解
WordPress爆破事实上有两种,第一种是使用工具或脚本对登录页面进行登录尝试,第二种是利用xmlrpc接口,POST登录数据信息,来判断账户密码是否可用
- WPscan爆破
WPscan包含WordPress黑盒测试所需的各种功能,上面我们已经使用了WPscan的扫描功能了。接下来,我们来使用其爆破功能。
使用wpscan -h 获取帮助
帮助手册上举例了各种使用方法
我们输入如下命令开始爆破:
wpscan --url http://172.16.12.2:8080/ --wordlist /home/ichunqiu/wordbrutepress/password.lst --username zhangsan
成功爆破密码qwer1234
爆破是否成功很大取决于字典是否强大,从另一方面来说,我们设置密码时要足够强
- XMLRPC爆破
xmlrpc 是 WordPress 中进行远程调用的接口,低版本中曾曝出可利用 xmlrpc 调用接口中的 system.multicall提高爆破效率,通过 xmlrpc可以将多个密码组合在一次请求中提交,可以减少请求次数,从而规避日志的监测。
该接口只允许POST提交请求,我们大概看看包内容
请求头中包含了登录信息
具体原理请参考
WordPress 利用 XMLRPC 爆破
由上面的WPscan扫描结果可知目标站点存在该接口,而3.4.1 这个版本在影响范文之内的 我们使用工具开始爆破
命令行切换到下载的工具目录,
执行命令如下:
python WordBrutepress.py -X -t http://172.16.12.2:8080/ -u zhangsan -w /home/ichunqiu/wordbrutepress/password.lst
执行结果:
使用获取的密码成功登陆后台
实验结果分析与总结
通过本节课的讲解,相信大家对WordPress的后台爆破已经有所了解。 在接下来的课程中,我们将并结合经典的案例,讲解如进一步利用信息收集所获取的信息。尽情期待~
思考
-
使用XMLRPC对
http://172.16.12.2:8081/
进行爆破是否能够成功? - 请在本地搭建不同版本的WordPress,用WPscan扫描,看看有哪些不同?