WordPress站点的渗透过程

  • Post author:
  • Post category:其他


实验环境

  • 操作机 :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的用户页面,获取了一个用户名。

我们再输入已存在的用户名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扫描,看看有哪些不同?



版权声明:本文为whatiwhere原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。