WordPress Watcher自动化WPScan以扫描和报告易受攻击的WordPress站点
wpwatcher的Python项目详细描述
WPWatcher
自动扫描并报告易受攻击的Wordpress站点WPScan
在
特点
- 使用WPScan扫描多个站点
- Parse WPScan输出并将结果分成“Alerts”、“Warnings”、“Informations”和最终的“Errors”
- Handled VulnDB API限制
- 为每个配置的站点单独和全局定义报告电子邮件地址(wiki/Email-reports)
- 为每个配置的站点单独和全局定义误报字符串(wiki/False-positives)
- 为每个配置的站点单独和全局定义WPScan参数(wiki/WPScan-configuration)
- 将扫描报告发送到Syslog服务器(wiki/Syslog-output)
- 将原始WPScan输出保存到文件中
- 日志文件还可以列出所有发现(wiki/Output)
- 使用多个异步工人加快扫描速度
- 如果WPScan失败并建议忽略主重定向,则解析并follow URL redirection
- 按定义的时间间隔连续扫描站点并将脚本配置为linux服务(wiki/Linux-service)
- 附加警报取决于查找类型(SQL转储等)(match list)
- 跟踪已修复的问题
- 简单的库用法(wiki/Library-usage)
先决条件
- WPScan(本身需要Ruby和一些库)。在
- Python3
安装
与PyPi(稳定)
python3 -m pip install 'wpwatcher' --upgrade
安装没有syslog输出支持的wpatcher
wpwatcher
应该在您的PATH
中。在
Review the Wiki了解更多文档。在
试试看
简单用法
用默认配置扫描2个站点。在
更多完整示例
从文本文件加载站点,添加WPScan参数,如果WPScan失败,遵循重定向,使用5个异步工作线程,如果有任何带有完整WPScan输出的警报,则通过电子邮件发送自定义收件人。如果达到API限制,它将等待24小时后继续。在
wpwatcher --urls sites.txt \ --wpscan_args "--force --stealthy --api-token <TOKEN>"\ --follow_redirect \ --workers 5\ --send --attach \ --email_to collaborator1@office.ca collaborator2@office.ca \ --api_limit_wait
WPWatcher必须读取配置文件才能发送邮件报告。
这个示例假设您已经用邮件服务器设置填充了配置文件。在
检查数据库中的报表
wpwatcher --show <site>
配置
使用--conf File path
选择配置文件。可以指定多个文件。将用每个连续的文件覆盖密钥。在
从模板创建和编辑新的配置文件。在
wpwatcher --template_conf > wpwatcher.conf vim wpwatcher.conf
要在默认情况下加载配置文件,请将文件移动到以下位置:
- 对于Windows:
%APPDATA%\.wpwatcher\wpwatcher.conf
或{} - 对于Mac/Linux:
$HOME/.wpwatcher/wpwatcher.conf
或{}
配置示例
示例配置文件,包含功能齐全的wp_sites
条目、自定义WPScan路径和参数、vuln DB api限制处理、电子邮件和syslog报告
[wpwatcher]wp_sites=[ { "url":"exemple.com", "email_to":["site_owner@domain.com"], "false_positive_strings":[ "Yoast SEO 1.2.0-11.5 - Authenticated Stored XSS", "Yoast SEO <= 9.1 - Authenticated Race Condition"], "wpscan_args":["--stealthy"] }, { "url":"exemple2.com" } ]wpscan_path=/usr/local/rvm/gems/default/wrappers/wpscanwpscan_args=[ "--format", "json", "--no-banner", "--random-user-agent", "--disable-tls-checks", "--api-token", "YOUR_API_TOKEN" ]api_limit_wait=Yessend_email_report=Yesemail_to=["me@gmail.com"]from_email=me@gmail.comsmtp_user=me@gmail.comsmtp_server=smtp.gmail.com:587smtp_ssl=Yessmtp_auth=Yessmtp_pass=P@assW0rdsyslog_server=syslogserver.casyslog_port=514
电子邮件报告
每个站点生成一个报告,当扫描完一个网站后,这些报告将单独发送。在
有问题吗?在
如果您有任何问题,请创建一个新的问题。在
贡献
如果你喜欢这个项目,并认为你可以帮助它变得更好,有很多方法可以做到:
- 为新功能建议或错误创建新问题
- 落实现有问题
- 帮助改进文档
- 向你的同事、朋友、博客或任何其他渠道传播关于该项目的信息
- 还有什么你能想象得到的吗
- 任何贡献都会有很大的帮助
运行测试
pytest
作者
- 弗洛里安·罗斯(原著作者)
- 特里斯坦·兰德斯
- 项目
标签: