Loading...

文章背景图

WPScan 保姆级部署教程:WordPress安全扫描器检测插件主题漏洞和用户枚举

2026-11-07
0
- 字
- 分钟
|

一、项目简介

WPScan 是专门针对 WordPress CMS 的开源安全扫描器,由 WPScan 团队维护。它通过远程分析 WordPress 站点,识别 WordPress 核心版本、已安装插件和主题的版本、用户枚举、备份文件暴露、弱口令等安全问题,并实时查询 WordPress 漏洞数据库(WPScan Vulnerability Database)输出已知 CVE 漏洞信息。

WPScan 用 Ruby 编写,是渗透测试中 WordPress 站点枚举和漏洞发现的事实标准工具,也被 WordPress 官方安全插件采用。

官方网站:https://wpscan.com/

GitHub 仓库:https://github.com/wpscanteam/wpscan

WPScan 官方 Logo

二、功能特点

  • WordPress 版本识别:自动检测核心版本,关联已知漏洞。
  • 插件/主题枚举:枚举站点安装的插件和主题及其版本号,匹配漏洞库。
  • 用户枚举:通过作者归档、REST API 等方式枚举 WordPress 用户名。
  • 弱口令爆破:支持对枚举到的用户进行密码字典爆破。
  • 敏感文件检测:查找 wp-config.php 备份、debug.log、readme.html、目录列表等暴露信息。
  • 漏洞数据库实时查询:通过 API Token 实时获取最新 CVE 漏洞数据。
  • 代理与 stealthy 模式:支持 HTTP 代理(配合 Burp 抓包)和 stealthy 低噪音扫描。
  • Docker 镜像:官方提供 wpscanteam/wpscan 镜像,免 Ruby 环境直接用。

三、环境要求

  • 操作系统:Linux(推荐 Ubuntu/Kali)、macOS、Windows(WSL)。
  • Ruby 版本:>= 3.3(推荐最新稳定版)。
  • Curl 版本:>= 7.72(旧版有 segfault 问题)。
  • 编译依赖:build-essential、ruby-dev、libcurl(nokogiri 原生扩展需要)。
  • API Token:在 wpscan.com/register 注册获取,免费额度每天 25 次 API 请求。

四、安装部署步骤

4.1 方式一:Docker 运行(最快,推荐)

docker pull wpscanteam/wpscan

# 枚举用户
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db \
  wpscanteam/wpscan --url https://target.tld/ --enumerate u

# 持久化数据库更新
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db \
  wpscanteam/wpscan --update

4.2 方式二:Kali Linux 包管理器

sudo apt update
sudo apt install -y wpscan

4.3 方式三:RubyGems 安装

# 先安装编译依赖
sudo apt install -y build-essential ruby-dev libcurl4-openssl-dev

# 安装 wpscan
gem install wpscan

# 验证
wpscan --version

macOS 用户:brew install wpscanteam/tap/wpscan;若遇到 SIP 权限错误,用 sudo gem install -n /usr/local/bin wpscan。

4.4 更新漏洞数据库

wpscan --update

数据库默认存储在 ~/.cache/wpscan/db(新版 XDG 规范)或 ~/.wpscan/db(旧版兼容)。

4.5 配置 API Token

注册 WPScan 账号后获取 API Token,有两种配置方式:

# 方式一:命令行传入
wpscan --url https://target.tld --api-token YOUR_TOKEN

# 方式二:写入配置文件
mkdir -p ~/.config/wpscan
cat > ~/.config/wpscan/scan.yml <<'EOF'
cli_options:
  api_token: "YOUR_TOKEN"
  verbose: true
EOF

免费额度每天 25 次 API 请求,平均每个站点扫描约需 22 次(1 次核心 + 每插件 1 次 + 每主题 1 次)。

五、基础使用

5.1 基础扫描

wpscan --url https://target.tld

默认执行:版本检测、主题检测、敏感发现,平衡速度与准确性。

5.2 枚举选项

# 枚举所有插件
wpscan --url https://target.tld --enumerate ap

# 枚举有漏洞的插件
wpscan --url https://target.tld --enumerate vp

# 枚举用户
wpscan --url https://target.tld --enumerate u

# 枚举用户名范围(1-100)
wpscan --url https://target.tld --enumerate u1-100

# 枚举备份文件夹
wpscan --url https://target.tld --enumerate bf

# 组合:有漏洞插件 + 主题 + 用户
wpscan --url https://target.tld --enumerate vp,vt,u

5.3 弱口令爆破

wpscan --url https://target.tld \
  -P /path/to/passwords.txt \
  -U admin,editor,user1

5.4 配合代理(Burp 抓包)

wpscan --url https://target.tld --proxy http://127.0.0.1:8080

5.5 stealthy 模式

wpscan --stealthy --url https://target.tld

降低请求频率,减少被 WAF/IDS 发现的概率。

5.6 插件检测模式

# 被动模式(默认,快)
wpscan --url https://target.tld --plugins-detection passive
# 主动模式(更全但更慢)
wpscan --url https://target.tld --plugins-detection aggressive

六、常见问题 FAQ

Q1:gem install 报错 "Failed to build gem native extension"

缺少 Ruby 开发头文件和编译工具:sudo apt install build-essential ruby-dev libcurl4-openssl-dev。Nokogiri 还可能需要 libxml2-dev libxslt1-dev。

Q2:扫描时提示 API requests exhausted

免费额度每天 25 次已用完。可等次日重置,或升级企业版;未配备 Token 时 WPScan 仍能做枚举和版本识别,但不会输出 CVE 漏洞详情。

Q3:扫不到插件/主题

默认是被动模式,切换到 --plugins-detection aggressive;目标可能隐藏了插件路径,可配合自定义枚举目录参数。

Q4:如何只扫某个 IP 不被 CDN 干扰?

用 --url 指向真实源站 IP,并加 --host 参数指定 Host 头;或用 --disable-tls-checks 跳过证书验证。

Q5:合法使用边界

仅扫描你拥有或已获得书面授权的 WordPress 站点。未授权扫描和爆破违反《网络安全法》和计算机欺诈相关法律。

七、参考链接

评论交流

文章目录