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个站点。在

^{pr2}$

更多完整示例
从文本文件加载站点,添加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或{}

参见: All configuration options

配置示例

示例配置文件,包含功能齐全的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

电子邮件报告

每个站点生成一个报告,当扫描完一个网站后,这些报告将单独发送。在

WPWatcher Report List

WPWatcher Report

有问题吗?在

如果您有任何问题,请创建一个新的问题。在

贡献

如果你喜欢这个项目,并认为你可以帮助它变得更好,有很多方法可以做到:

  • 为新功能建议或错误创建新问题
  • 落实现有问题
  • 帮助改进文档
  • 向你的同事、朋友、博客或任何其他渠道传播关于该项目的信息
  • 还有什么你能想象得到的吗
  • 任何贡献都会有很大的帮助

运行测试

pytest

作者

  • 弗洛里安·罗斯(原著作者)
  • 特里斯坦·兰德斯

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Dropbox java登录   java如何将“abcd1234”转换为INT1234   java如何实现compareTo()?   java如何查看SWT示例(Eclipse)源代码?   java内存直接映射到字符串   传递字符串时java Android应用程序崩溃   java是将Android游标(sqlite)提取到数组中以在AlertDialog中使用的最有效的方法。建设者   java如何检查udp/多播端口是否打开且可用?   如何在Java中创建弱引用?   java相同的异常针对不同的异常   swing Java JFrame问题与对话框   Eclipse Mars与Maven和SVN之间的java冲突?   如何在Java+swt中将对象停靠到父窗口?   如何区分Java输入类型?   java在Spring批处理中读取一个项目并将项目列表写入文件   java如何减少数据库表行整数值   java NullPointerException,即使对象不为null   如果站点地图的URL数超过maxnumber,则java会将其拆分为多个站点地图   java JFR显示LmaxDisruptor引擎内部的CPU利用率很高