前一段自己搭建了一个基于Wordpress搭建的博客,为了测试一下博客网站是否存在漏洞,网上搜索了一下主要采用WPScan工具。它是一个针对 WordPress 核心、插件和主题的漏洞扫描器,它可以帮助网站管理员检查其 WordPress 站点是否存在已知的安全问题。但是,WPScan 依赖于 Ruby,因此首先需要在系统中安装 Ruby,还需要安装 RubyGems,它是 Ruby 的包管理器。
接下来在 CentOS 7 上来部署WPScan工具,因为WPScan的部署需要用到ruby2.6版本以上。CentOS 7默认的Ruby版本为2.0 ,Ruby的最新版本已经到3.3.0. Ruby下载官网,我这边选择了2.7.8的版本。
一、安装Ruby2.7.8环境
首先安装 Ruby 2.7 或更高版本,需要使用第三方仓库,因为默认的 CentOS 仓库可能不包含最新版本的 Ruby。以下是安装Ruby 2.7的步骤:
-
添加 Remi 仓库:
Remi 提供了多个版本的 Ruby,包括最新版本。首先,您需要添加 Remi 的 PHP 和 MySQL 仓库,因为 Ruby 2.5+ 通常与这些技术一起提供。sudo yum install epel-release sudo yum install yum-utils sudo yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/ sudo yum-config-manager --add-repo https://rpms.remirepo.net/enterprise/remi-release-7.rpm
-
下载 仓库提供的 Ruby2.7.8版本:
卸载机器上自带的ruby rubygems
sudo yum remove ruby rubygems -y
下载Ruby2.7.8。
sudo wget https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.tar.gz
这将安装 Ruby 2.5 版本。如果您需要安装不同的版本,只需将
2.5
替换为您想要的版本号。 -
安装环境准备:
安装解决ruby语言的环境依赖库。sudo yum install gcc gcc-c++ gdbm-devel readline-devel openssl-devel wget -y
-
安装 RubyGems:
通常情况下,通过安装 Ruby,RubyGems 也会被一同安装。但如果需要手动安装 RubyGems,可以使用以下命令:tar -zxvf ruby-2.7.8.tar.gz cd ruby-2.7.8 ./configure --prefix=/usr/local/ruby --enable-shared make && make install
-
设置环境变量(如果需要):
如果您安装了多个 Ruby 版本,可能需要设置GEM_HOME
和PATH
环境变量来指定使用哪个 Ruby 版本的 RubyGems。export RUBY_HOME=/usr/local/ruby export PATH=$RUBY_HOME/bin:$RUBY_HOME/lib:$PATH
将上述命令添加到您的
~/.bashrc
或~/.bash_profile
文件中,然后重新加载配置文件或重新打开终端。source ~/.bashrc
-
测试 Ruby 安装是否成功:
如果您需要安装 Ruby 开发包或其他相关包,可以使用以下命令:ruby -v gem -v
二、安装WPScan工具
采用Ruby的gem安装WPScan,可以使用以下命令:
gem install wpscan
三、使用WPScan工具
WPScan是一款强大的WordPress安全扫描工具,可以帮助网站管理员评估和增强其WordPress网站的安全性。本文将深入介绍如何使用WPScan扫描单个目标,并结合实际例子,帮助读者理解和应用该工具。
1.WPScan扫描单个网站
确认目标:
在开始扫描之前,首先需要确认扫描的目标。目标可以是一个特定的WordPress网站,您需要获取其URL。
示例应用:
假设我们要扫描一个名为"http://example.com"的WordPress网站。我们将使用该URL作为扫描的目标。
启动WPScan:
在确认目标后,打开终端或命令行界面,并输入以下命令来启动WPScan:
wpscan --url http://example.com
上述命令中的--url
选项后跟着目标WordPress网站的URL。
扫描选项:
WPScan提供了多个选项,可以根据需要配置扫描的深度和灵敏度。以下是一些常用的扫描选项:
--enumerate
:启用特定类型的枚举扫描,如用户、插件和主题。--plugins-detection
:设置插件检测的模式,如默认、被动或侵入式。--detection-mode
:设置扫描的侦测模式,如快速、默认或深度。
示例应用: 在我们的例子中,我们可以使用以下命令配置扫描选项:
wpscan --url http://example.com --enumerate u,p,t --plugins-detection aggressive --detection-mode aggressive
上述命令中,我们启用了用户、插件和主题的枚举扫描,并将插件检测和扫描模式都设置为"aggressive"。
扫描结果分析:
WPScan将开始扫描目标WordPress网站,并显示扫描结果。结果包括发现的漏洞、插件和主题的信息,以及其他有关目标网站的详细内容。
示例应用:
扫描完成后,WPScan将显示扫描结果的摘要。您可以逐一查看每个漏洞、插件或主题的详细信息,并根据需要采取相应的措施。
例如,如果WPScan检测到某个插件存在已知的漏洞,您可以考虑升级插件或寻找替代方案来修复该漏洞。
导出扫描结果:
WPScan允许将扫描结果导出到不同的格式,以便进行进一步的分析和报告。
示例应用:
要将扫描结果导出为文本文件,可以使用以下命令:
wpscan --url http://example.com --output example_scan.txt --format txt
该命令将扫描结果保存到名为example_scan.txt
的文本文件中,以供后续分析和记录。
总结:
通过上述步骤,您可以使用WPScan扫描单个目标的WordPress网站。从确认目标到启动WPScan、配置扫描选项、分析扫描结果以及导出结果,这些步骤为您提供了全面的指导。
需要注意的是,使用WPScan进行安全评估时,请始终遵循合法和道德的准则。确保您获得了适当的授权,并且仅在合法的环境中使用WPScan。
示例应用中的命令和选项只是一个简单的示例,实际的使用场景可能因特定需求、操作系统、环境等因素而有所不同。在实际操作中,请参考WPScan的官方文档和GitHub存储库,以获取最新的命令和选项。
2.WPScan扫描多个目标
WPScan是一款功能强大的WordPress安全扫描工具,可以帮助网站管理员评估和增强其WordPress网站的安全性。本文将深入介绍如何使用WPScan扫描多个目标,并结合实际例子,帮助读者理解和应用该工具。
确认目标列表:
在开始扫描之前,首先需要确认扫描的目标列表。目标列表可以包含多个WordPress网站的URL。
示例应用:
假设我们要扫描以下三个WordPress网站:
- 网站A: http://example.com
- 网站B: http://testsite.com
- 网站C: http://demo.com
我们将使用这三个URL作为扫描的目标列表。
启动WPScan批量扫描:
WPScan提供了批量扫描功能,可以通过提供目标列表文件来扫描多个目标。首先,将目标列表保存到一个文本文件中,每个URL占一行。
示例应用:
创建一个名为targets.txt
的文本文件,并将上述三个目标URL添加到文件中,每个URL占一行。
http://example.com
http://testsite.com
http://demo.com
然后,在终端或命令行界面中,使用以下命令来启动WPScan的批量扫描:
wpscan --url-list targets.txt
WPScan将读取targets.txt
文件中的目标URL,并逐个进行扫描。
扫描选项和配置:
WPScan提供了多个选项和配置,可以根据需要自定义批量扫描的深度和灵敏度。您可以使用各种扫描选项来优化扫描结果。
示例应用:
在我们的例子中,我们可以使用以下命令来配置扫描选项:
wpscan --url-list targets.txt --enumerate u,p,t --plugins-detection aggressive --detection-mode aggressive
上述命令中,我们启用了用户、插件和主题的枚举扫描,并将插件检测和扫描模式都设置为"aggressive"。
扫描结果分析:
WPScan将按顺序扫描目标列表中的每个WordPress网站,并显示扫描结果。结果包括发现的漏洞、插件和主题的信息,以及其他有关目标网站的详细内容。
示例应用:
扫描完成后,WPScan将显示每个目标的扫描结果的摘要。您可以逐一查看每个目标的漏洞、插件或主题的详细信息,并根据需要采取相应的措施。
例如,如果WPScan检测到某个目标网站的某个插件存在已知的漏洞,您可以考虑升级插件或寻找替代方案来修复该漏洞。
导出扫描结果:
WPScan允许将扫描结果导出到不同的格式,以便进行进一步的分析和报告。
示例应用:
要将扫描结果导出为文本文件,可以使用以下命令:
wpscan --url-list targets.txt --output batch_scan.txt --format txt
该命令将扫描结果保存到名为batch_scan.txt
的文本文件中,以供后续分析和记录。
总结:
通过上述步骤,您可以使用WPScan扫描多个目标的WordPress网站。从确认目标列表到启动WPScan批量扫描、配置扫描选项、分析扫描结果以及导出结果,这些步骤为您提供了全面的指导。
3.使用参数和选项
WPScan是一款广泛使用的WordPress安全扫描工具,它提供了一系列的参数和选项,以帮助用户进行全面的安全评估和漏洞扫描。本文将深入介绍WPScan的一些常用参数和选项,并结合实际例子,帮助读者理解和应用这些功能。
--url
:指定目标URL
这是WPScan最基本的参数,用于指定要扫描的目标WordPress网站的URL。
示例应用:
wpscan --url http://example.com
上述命令将扫描名为"http://example.com"的WordPress网站。
--enumerate
:枚举功能
WPScan提供了多个枚举功能,用于收集有关目标网站的信息,如用户、插件、主题等。
示例应用:
wpscan --url http://example.com --enumerate u,p,t
上述命令将启用用户(u
)、插件(p
)和主题(t
)的枚举扫描。
--plugins-detection
:插件检测级别
这个选项用于指定插件检测的级别,包括默认、主动和侵入性三个级别。
示例应用:
wpscan --url http://example.com --plugins-detection aggressive
上述命令将以侵入性的方式检测目标网站的插件。
--detection-mode
:扫描模式
WPScan提供了多种扫描模式,包括默认、被动和侵入性模式,用于控制扫描的深度和灵敏度。
示例应用:
wpscan --url http://example.com --detection-mode aggressive
上述命令将以侵入性的模式进行深度扫描。
--exclude-content-based
:排除内容
这个选项用于指定要排除的内容类型,以加快扫描速度。
示例应用:
wpscan --url http://example.com --exclude-content-based "attachments,timthumbs"
上述命令将排除附件和TimThumb图像处理程序的扫描。
--proxy
:代理设置
如果您需要通过代理服务器进行扫描,可以使用此选项设置代理。
示例应用:
wpscan --url http://example.com --proxy http://proxyserver.com:8080
上述命令将通过代理服务器进行扫描。
--output
:输出格式和文件
WPScan允许将扫描结果以不同的格式输出到文件中,如文本、JSON等。
示例应用:
wpscan --url http://example.com --output scan_results.txt --format txt
上述命令将扫描结果保存为文本文件"scan_results.txt"。
--follow-redirection
:跟随重定向
如果目标网站有重定向,您可以使用此选项来跟随重定向并扫描最终目标。
示例应用:
wpscan --url http://example.com --follow-redirection
上述命令将跟随重定向并扫描重定向后的目标。
--random-user-agent
:随机User-Agent
WPScan提供了随机生成User-Agent的选项,用于模拟不同的用户代理。
示例应用:
wpscan --url http://example.com --random-user-agent
上述命令将随机生成User-Agent进行扫描。
输出和报告生成
WPScan作为一款强大的WordPress安全扫描工具,不仅提供了详尽的扫描功能,还支持生成详细的输出和报告,帮助用户理解扫描结果并采取相应的安全措施。本文将深入探讨WPScan的输出和报告生成功能,并结合实际示例,帮助读者更好地理解和应用这些功能。
输出选项
WPScan提供了多种输出选项,使用户能够按照自己的需求获取扫描结果。以下是一些常用的输出选项:
--output
:将扫描结果保存到文件中。--format
:指定输出格式,如txt、json、xml等。--no-banner
:不显示WPScan的横幅信息。
示例应用:
wpscan --url http://example.com --output scan_results.txt --format txt --no-banner
上述命令将扫描结果保存为文本文件"scan_results.txt",并以纯文本格式显示,同时不显示WPScan的横幅信息。
默认输出
当不指定输出选项时,WPScan会以默认的方式将扫描结果输出到终端。默认输出包括以下几个部分:
- 概要信息:显示扫描的目标URL、扫描开始时间、扫描的插件和主题数量等。
- 漏洞信息:列出发现的漏洞及其严重程度。
- 发现的用户:显示扫描期间发现的用户信息。
- 发现的插件和主题:列出扫描期间发现的插件和主题信息。
示例输出:
[+] URL: http://example.com/
[+] Started: 2023-12-24 10:00:00
[+] Interesting Finding: Vulnerable Plugin (PluginName) - Critical
[+] Interesting Finding: Vulnerable Theme (ThemeName) - High
[+] Identified User: admin
[+] Identified User: editor
[+] Identified Plugin: Plugin1
[+] Identified Plugin: Plugin2
[+] Identified Theme: Theme1
[+] Identified Theme: Theme2
详细报告
WPScan还支持生成详细的HTML报告,以便更好地展示扫描结果。生成报告的功能需要安装额外的依赖(如Ruby Gems中的terminal-table
和htmlentities
),并使用--generate-report
参数来指定报告生成的路径。
示例应用:
wpscan --url http://example.com --generate-report wpscan_report.html
上述命令将生成一个名为"wpscan_report.html"的HTML报告,其中包含了扫描结果的详细信息。
报告内容
WPScan生成的HTML报告包含了丰富的内容,涵盖了扫描的各个方面,如目标信息、漏洞详情、插件和主题信息等。报告还以图表和表格的形式直观地展示了扫描结果。
示例报告内容:
-
目标信息:显示扫描的目标URL、扫描开始时间和结束时间等。
-
漏洞详情:列出所有发现的漏洞及其详细信息,包括漏洞名称、CVE编号、严重程度等。
-
用户信息:显示扫描期间发现的用户信息。
-
插件和主题:列出扫描期间发现的插件和主题信息,包括名称、版本号、漏洞等级等。
-
图表和统计信息:以图表和表格的形式展示扫描结果的概要信息和统计数据,如漏洞分布、漏洞严重程度等等。
以上只是WPScan输出和报告生成的一些示例,实际使用中还有更多选项和功能可供选择。通过灵活运用这些选项和功能,用户可以根据需要获取详细的扫描结果,并生成形式多样的报告,以便更好地理解和应对安全风险。
需要注意的是,WPScan仅提供扫描结果和报告,用户仍需根据扫描结果采取相应的安全措施,修复漏洞和加固网站。扫描结果仅作为参考,用户应自行评估漏洞的严重程度和风险,并根据实际情况进行修复和改进。
希望本文对您理解WPScan的输出和报告生成功能,并在实际应用中提供帮助。通过合理利用WPScan的输出和报告功能,您将能更好地评估和加强WordPress网站的安全性,确保其免受潜在的风险和攻击。