当前位置: 首页 > news >正文

Centos7下安装ruby2.7.8环境、WPScan的安装及使用介绍

前一段自己搭建了一个基于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的步骤:

  1. 添加 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
    
  2. 下载 仓库提供的 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 替换为您想要的版本号。

  3. 安装环境准备
    安装解决ruby语言的环境依赖库。

    sudo yum install gcc gcc-c++ gdbm-devel readline-devel openssl-devel wget -y
    
  4. 安装 RubyGems
    通常情况下,通过安装 Ruby,RubyGems 也会被一同安装。但如果需要手动安装 RubyGems,可以使用以下命令:

     tar -zxvf ruby-2.7.8.tar.gzcd ruby-2.7.8./configure --prefix=/usr/local/ruby --enable-sharedmake && make install
    
  5. 设置环境变量(如果需要):
    如果您安装了多个 Ruby 版本,可能需要设置 GEM_HOMEPATH 环境变量来指定使用哪个 Ruby 版本的 RubyGems。

    export RUBY_HOME=/usr/local/ruby
    export PATH=$RUBY_HOME/bin:$RUBY_HOME/lib:$PATH
    

    将上述命令添加到您的 ~/.bashrc~/.bash_profile 文件中,然后重新加载配置文件或重新打开终端。

    source ~/.bashrc
    
  6. 测试 Ruby 安装是否成功
    如果您需要安装 Ruby 开发包或其他相关包,可以使用以下命令:

     ruby -vgem -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-tablehtmlentities),并使用--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网站的安全性,确保其免受潜在的风险和攻击。

相关文章:

  • 项目登录方案选型
  • 10分钟快速开始SkyWalking结合Springboot项目
  • 在两台CentOS 7服务器(IP地址分别为192.168.8.171和192.168.8.183)上部署MinIO集群。
  • nginx高级配置详解
  • Spring6学习技术|事务
  • 二. 系统性能评价(2分)
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • 七大查找算法详解并附代码实现
  • Python爬虫-付费代理推荐和使用
  • 主从复制实现Redis集群
  • 远程连接 vscode 出错 “远程主机可能不符合 glibc 和 libstdc++ VS Code 服务器的先决条件”
  • Unity零基础到进阶 | Unity中的 RectTransformUtility 方法整理汇总
  • IP对讲终端SV-6002(防水)
  • java.lang.Class应用
  • QSettings使用示例
  • 分享的文章《人生如棋》
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • Android系统模拟器绘制实现概述
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Flannel解读
  • gf框架之分页模块(五) - 自定义分页
  • HTTP中的ETag在移动客户端的应用
  • Java超时控制的实现
  • miaov-React 最佳入门
  • Netty源码解析1-Buffer
  • SpringBoot 实战 (三) | 配置文件详解
  • Vue.js-Day01
  • 从零搭建Koa2 Server
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 诡异!React stopPropagation失灵
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 力扣(LeetCode)21
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  •  一套莫尔斯电报听写、翻译系统
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 7行Python代码的人脸识别
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • #Z0458. 树的中心2
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (转)setTimeout 和 setInterval 的区别
  • .net 发送邮件
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .net反混淆脱壳工具de4dot的使用
  • .NET中 MVC 工厂模式浅析
  • .Net转前端开发-启航篇,如何定制博客园主题
  • [ C++ ] STL---stack与queue