
WordPress安全扫描器,用于检测漏洞、枚举插件/主题/用户,并检查弱密码。与WPScan API集成以获取实时漏洞数据。
WordPress 安全扫描器
WPScan WordPress 漏洞数据库 - WordPress 安全插件
Stream error in the HTTP/2 framing layer使用渗透测试发行版(如 Kali Linux)时,建议通过包管理器(如果可用)安装/更新 wpscan。
brew install wpscanteam/tap/wpscan
WPScan 依赖包含原生扩展的 gem(例如 yajl-ruby、nokogiri、ffi),因此在使用 gem install wpscan 之前,必须安装可用的 C 工具链和 Ruby 开发头文件。否则,安装会失败,出现类似 Failed to build gem native extension 或 make: x86_64-linux-gnu-gcc: No such file or directory 的错误(参见 #1844)。
sudo apt install build-essential ruby-dev
sudo dnf install @development-tools ruby-devel
sudo pacman -S base-devel ruby
sudo apk add build-base ruby-dev
xcode-select --install)。然后安装 gem:
gem install wpscan
在 MacOSX 上,如果由于 Apple 的系统完整性保护(SIP)而引发 Gem::FilePermissionError,请安装 RVM 并重新安装 wpscan,或者运行 sudo gem install -n /usr/local/bin wpscan(参见 #1286)
你可以通过 wpscan --update 更新本地数据库。
更新 WPScan 本身可以通过 gem update wpscan 或包管理器完成(对于像 Kali Linux 这样的发行版非常重要:apt-get update && apt-get upgrade),具体取决于 WPScan 的(预)安装方式。
使用 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 --url https://target.tld/ --enumerate u1-100
** 将 u1-100 替换为你选择的用户名范围。
该镜像在构建时内置了一份本地数据库副本。由于上述示例命令使用了 --rm,在运行期间执行的任何数据库更新都会在容器退出时丢弃,因此下一次运行将再次从(可能过时的)内置副本开始。
挂载一个命名卷到 /wpscan/.cache/wpscan/db(容器中 wpscan 用户的缓存目录)可以跨运行保留数据库,这样 wpscan --update 只会重新下载校验和实际发生变化的文件,并且 5 天过期提示的行为与本地安装相同:
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --update
首次使用时,如果命名卷不存在,将自动创建。
完整的用户文档可以在以下位置找到:https://github.com/wpscanteam/wpscan/wiki/WPScan-User-Documentation
wpscan --url blog.tld 这将使用默认选项扫描博客,在速度和准确性之间取得良好平衡。它会进行版本检测、主题检测以及有趣发现的发现。要枚举插件、主题、用户、备份文件夹等,请使用 -e 选项(例如,-e ap 表示所有插件,-e vp 表示易受攻击的插件,-e bf 表示备份文件夹)。
如果需要更隐蔽的方法,则可以使用 wpscan --stealthy --url blog.tld。因此,使用 --enumerate 选项时,请记得相应设置 --plugins-detection,因为其默认值为 'passive'。
更多选项,请打开终端并输入 wpscan --help(如果你是从源代码构建 wpscan,则应在 git 仓库之外输入命令)。
数据库位置遵循 XDG 基本目录规范:
~/.cache/wpscan/db(如果设置了 $XDG_CACHE_HOME,则为 $XDG_CACHE_HOME/wpscan/db)~/.wpscan/db(旧路径,为向后兼容而保留)运行时文件(如默认的 HTTP 缓存和 cookie jar)在设置了 $TMPDIR 时存储于 $TMPDIR/wpscan 下。否则,它们使用相同的用户级 XDG 缓存目录,例如 ~/.cache/wpscan/cache 和 ~/.cache/wpscan/cookie_jar.txt。这些默认值可以通过 --cache-dir 和 --cookie-jar 覆盖。
要将现有安装迁移到 XDG 路径:
mv ~/.wpscan ~/.cache/wpscan
WPScan CLI 工具使用 WordPress 漏洞数据库 API 实时检索 WordPress 漏洞数据。为了使 WPScan 检索漏洞数据,必须通过 --api-token 选项或配置文件(如下所述)提供 API 令牌。可以通过在 WPScan.com 上注册账户来获取 API 令牌。
每天免费提供最多 25 次 API 请求,足以每天扫描大多数 WordPress 网站。当每天的 25 次 API 请求用完后,WPScan 将正常运行,但不包含任何漏洞数据。
WPScan 可以从配置文件中加载所有选项(包括 --url),检查以下位置(顺序:先到先得):
$XDG_CONFIG_HOME/wpscan/scan.json(如果设置了 XDG_CONFIG_HOME)$XDG_CONFIG_HOME/wpscan/scan.yml(如果设置了 XDG_CONFIG_HOME)~/.config/wpscan/scan.json(如果未设置 XDG_CONFIG_HOME)~/.config/wpscan/scan.yml(如果未设置 XDG_CONFIG_HOME)~/.wpscan/scan.json~/.wpscan/scan.ymlpwd/.wpscan/scan.jsonpwd/.wpscan/scan.yml如果这些文件存在,将加载 cli_options 键中的选项,如果重复出现则覆盖。
例如:
~/.config/wpscan/scan.yml:
cli_options:
proxy: 'http://127.0.0.1:8080'
verbose: true
pwd/.wpscan/scan.yml:
cli_options:
proxy: 'socks5://127.0.0.1:9090'
url: 'http://target.tld'
在当前目录(pwd)下运行 wpscan 等同于 wpscan -v --proxy socks5://127.0.0.1:9090 --url http://target.tld
其他命令行选项可以使用蛇形命名法添加。例如:
cli_options:
user_agent: "Testing UA"
max_threads: 1
headers: "Custom-Header: aaaa; Another Header: bbb"
上述功能对于将 API 令牌保存在配置文件中而无需每次通过 CLI 提供非常有用。为此,创建包含以下内容的 ~/.config/wpscan/scan.yml 文件:
cli_options:
api_token: 'YOUR_API_TOKEN'
如果存在环境变量 WPSCAN_API_TOKEN,则 API 令牌将自动从该变量加载。如果同时提供了 --api-token CLI 选项,则将使用 CLI 提供的值。
如果你遇到 WPScan API 连接问题,可以在 https://status.wpscan.com/ 查看服务状态。当发生 API 连接错误时,WPScan 会在错误消息中包含状态页面的链接。
wpscan --url https://target.tld/ --enumerate u
枚举用户名范围
wpscan --url https://target.tld/ --enumerate u1-100
** 将 u1-100 替换为你选择的用户名范围。
wpscan --url https://target.tld/ --enumerate bf
这将检查流行 WordPress 备份插件创建的备份文件夹。这些文件夹可能包含敏感数据,如数据库转储、配置文件或完整站点备份。
WPScan 软件(以下简称“WPScan”)采用双重许可 - 版权所有 2011-2019 WPScan 团队。
涉及 WPScan 商业化的情况需要商业非免费许可证。否则,可以根据以下条款免费使用 WPScan。
1.1 “许可证”指本文档。
1.2 “贡献者”指创建、为创建做出贡献或拥有 WPScan 的每个个人或法律实体。
1.3 “WPScan 团队”指 WPScan 的核心开发者。
商业用途是指以商业优势或货币补偿为目的的使用。
商业化的示例情况包括:
不需要商业许可证(因此在以下条款范围内)的示例情况包括(但不限于):
如果你需要购买商业许可证,或者不确定是否需要购买商业许可证,请联系我们 - [email protected]。
免费使用条款和条件:
在以下条件下允许再分发:
在不与再分发条款冲突的前提下,允许复制。
在不与再分发条款冲突的前提下,允许修改。
任何贡献均视为贡献者授予 WPScan 团队无限、非排他性的权利,以重复使用、修改和重新许可贡献者的内容。
WPScan 按“现状”提供,不附带任何支持、更新或维护。支持、更新和维护可由 WPScan 团队自行决定是否提供。
WPScan 根据本许可证按“现状”提供,不附带任何明示、暗示或法定的保证,包括但不限于对 WPScan 无缺陷、适销性、适用于特定目的或不侵权的保证。
在法律允许的范围内,WPScan 按“现状”提供。WPScan 团队在任何情况下均不对因 WPScan 的行为、故障、错误和/或 WPScan 与终端设备、计算机、其他软件或任何第三方、终端设备、计算机或服务之间的任何其他交互而产生的任何损害、成本、费用或任何其他支付承担责任。
未经事先双方同意对网站运行 WPScan 可能在你所在国家属违法行为。WPScan 团队不承担任何责任,并且对 WPScan 的任何误用或造成的损害概不负责。
“wpscan”一词是注册商标。本许可证不授予使用“wpscan”商标或 WPScan 标志的权利。