WPScan使用完整教程之记一次对WordPress的渗透过程

渣渣一枚,萌新一个,会划水,会喊六六

个人博客:http://www.cnblogs.com/miraitowa/

本次简单的记录优下自己关于WPScan渗透实战的案例,以及对于WPScan的一些使用方法,有什么错误的地方希望各位大佬指正(Orz)

一:什么是WPScan

WPScan是一个扫描 WordPress 漏洞的黑盒子扫描器,它可以为所有 Web 开发人员扫描 WordPress 漏洞并在他们开发前找到并解决问题。

我们还使用了 Nikto ,它是一款非常棒的Web 服务器评估工具,我们认为这个工具应该成为所有针对 WordPress网站进行的渗透测试的一部分。

Wordpress作为三大建站模板之一,在全世界范围内有大量的用户,这也导致白帽子都会去跟踪 WordPress的安全漏洞,Wordpress自诞生起

也出现了很多漏洞.Wordpress还可以使用插件、主题。于是Wordpress本身很难挖掘什么安全问题的时候,安全研究者开始研究其插件、主题的

漏洞。通过插件,主题的漏洞去渗透Wordpress站点,于是WPScan应运而生,收集 Wordpress的各种漏洞,形成一个Wordpress专用扫描器。

该扫描器可以实现获取站点用户名,获取安装的所有插件、主题,以及存在漏洞的插件、主题,并提供漏洞信息。同时还可以实现对未加防护的

Wordpress站点暴力破解用户名密码。

WPScan已经被预安装在以下Linux系统中:

1: BackBox Linux

2: Kali Linux

3: Pentoo

4: SamuraiWTF

5:BlackArch

二:预备知识之WPscan安装与使用

由于Windows不支持WPScan。最新版本的WPScan可以在LinuxMac上下载使用:

在Ubuntu上安装

sudo apt-get install libcurl4-openssl-dev libxml2 libxml2-dev libxslt1-dev ruby-dev build-essential libgmp-dev zlib1g-dev

在Debian上安装

sudo apt-get install gcc git ruby ruby-dev libcurl4-openssl-dev make zlib1g-dev

在Fedora上安装

sudo dnf install gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel libcurl-devel patch rpm-build

在Arch Linux上安装

pacman -Syu ruby
pacman -Syu libyaml

在macOS上安装

需要Apple Xcode,命令行工具和libffi(能够安装FFI gem具体安装过程请点击这里

常用参数选项:

--update  更新到最新版本

--url   | -u <target url>  要扫描的`WordPress`站点.

--force | -f   不检查网站运行的是不是`WordPress`

--enumerate | -e [option(s)]  枚举

option:

u 枚举用户名,默认从1-10

u[10-20] 枚举用户名,配置从10-20

p 枚举插件

vp 只枚举有漏洞的插件

ap 枚举所有插件,时间较长

tt 列举缩略图相关的文件

t 枚举主题信息

vt 只枚举存在漏洞的主题

at 枚举所有主题,时间较长

可以指定多个扫描选项,例:"-e tt,p"

如果没有指定选项,默认选项为:"vt,tt,u,vp"

--exclude-content-based "<regexp or string>"

当使用枚举选项时,可以使用该参数做一些过滤,基于正则或者字符串,可以不写正则分隔符,但要用单引号或双引号包裹

--config-file | -c <config file使用指定的配置文件

--user-agent | -a <User-Agent指定User-Agent

--cookie <String指定cookie

--random-agent | -r 使用随机User-Agent

--follow-redirection 如果目标包含一个重定向,则直接跟随跳转

--batch 无需用户交互,都使用默认行为

--no-color 不要采用彩色输出

--wp-content-dir <wp content dirWPScan会去发现wp-content目录,用户可手动指定

--wp-plugins-dir <wp plugins dir指定wp插件目录,默认是wp-content/plugins

--proxy <[protocol://]host:port设置一个代理,可以使用HTTP、SOCKS4、SOCKS4A、SOCKS5,如果未设置默认是HTTP协议

--proxy-auth <username:password设置代理登陆信息

--basic-auth <username:password设置基础认证信息

--wordlist | -w <wordlist指定密码字典

--username | -U <username指定爆破的用户名

--usernames <path-to-file指定爆破用户名字典

--threads | -t <number of threads指定多线程

--cache-ttl <cache-ttl设置 cache TTL

--request-timeout <request-timeout请求超时时间

--connect-timeout <connect-timeout连接超时时间

--max-threads <max-threads最大线程数

--throttle <milliseconds当线程数设置为1时,设置两个请求之间的间隔

--help | -h 输出帮助信息

--verbose | -v 输出Verbose

--version 输出当前版本

三:渗透站点演示

环境准备

kali linux

Debian 9

WPScan(linux中已经与安装)

渗透过程

1:安装及更新数据漏洞库

你可以使用下列命令在自己的设备中安装WPScan

git clone https://github.com/wpscanteam/wpscan.git

更新漏洞库,使用命令:wpscan --update

2:扫描WordPress漏洞

接下来使用下面的命令来扫描可能存在的漏洞网站:

wpscan --url [wordpress url]

z这里我直接用一个不认识的人的站点为例子进行演示(是我的好友HHHHH)

wpscan --url https://www.xxxxx.wiki/

3:扫描wordpress用户

我们可以对其用户进行枚举:

wpscan --url https://www.xxxxxxx.wiki/ --enumerate u

得到的用户信息:

4:暴力破解得到密码

在进行暴力破解攻击之前,我们需要创建对应的字典文件

wpscan --url https://www.xxxxx.wiki/ -e u --wordlist /root/桌面/password.txt

效果图如下:

5:扫描插件漏洞

插件可以扩展WordPress站点的功能,但很多插件中都存在安全漏洞,而这也会给攻击者提供可乘之机。

我们可以使用下列命令扫描WordPress站点中安装的插件:

wpscan -u https://www.xxxxx.wiki/ -enumerate p

我们可以看到该网站中安装了easy-wp-smtp,theme-my-login插件:

接下来,我们可以使用下列命令来扫描目标插件中的安全漏洞:

wpscan --url https://www.xxxxx.wiki/ --enumerate vp

效果演示:

6:主题漏洞扫描

使用下列命令对主题进行扫描:

wpscan --url https://www.xxxxx.wiki --enumerate t

发现一个主题:

使用下列命令扫描主题中存在的漏洞:

wpscan --url https://www.xxxxxx.wiki --enumerate vt

7:TimThumbs文件漏洞扫描

wpscan -u https://www.xxxxxx.wiki/ -enumerate tt

四:WordPress的防护措施

1:关于密码爆出防护措施

如果你想要避免WordPress用户列表被列举,不要把用户名作为昵称,并且不要使用已经被大众知道的用户名。最好的方式是选择一个包含随机字

符的名字做用户名并且使用其他名字作为昵称。 WPScan扫描URL来获取用户名,所以如果你不使用这个用户名,你肯定不会被WPScan搜索到。

防止暴力破解的最好方式是限制一个IP地址的尝试登录次数。WordPress有很多插件可以实现这个功能。列如有一个插件叫

Brute Force Login Protection(当然你也可以写一个脚本防止爆出个人密码)

2:如何防范扫描插件、主题、TimThumb文件

使用Block Bad Queries (BBQ)插件,就可以屏蔽和禁止这类扫描

点击收藏 | 2 关注 | 1
登录 后跟帖