【Arachni】之Web 应用程序安全扫描程序(附下载)

概要

Arachni 是一个功能齐全、模块化、高性能的 Ruby 框架,旨在 帮助渗透测试人员和管理员评估 Web 应用程序的安全性。

它很聪明,它通过监控和学习 Web 应用程序来训练自己 扫描过程中的行为,并且能够使用许多 因素,以便正确评估结果的可信度并智能地 识别(或避免)误报。

与其他扫描仪不同,它考虑了 Web 应用程序的动态特性, 可以检测在 Web 应用程序的路径中移动时引起的更改 圈复杂度,并能够相应地进行自我调整。这样,攻击/输入 非人类无法检测到的载体可以无缝处理。

此外,由于其集成的浏览器环境,它还可以进行审计和检查 客户端代码,以及支持高度复杂的 Web 应用程序,这些应用程序使 大量使用 JavaScript、HTML5、DOM 操作和 AJAX 等技术。

最后,它的用途广泛,足以涵盖大量用例,包括 一个简单的命令行扫描程序实用程序,到全球高性能网格 扫描器,到允许脚本化审计的 Ruby 库,到多用户 多扫描 Web 协作平台。

注意:尽管 Arachni 主要针对 Web 应用程序 安全性,它可以很容易地用于通用抓取、数据挖掘等。 添加自定义组件。

Arachni提供:

稳定、高效、高性能的框架

Check,开发人员可以轻松快速地创建和 以最少的限制部署其组件, 同时提供必要的基础设施来实现他们的目标。reportplugin

此外,我们鼓励他们充分利用 Ruby 语言 一个统一的框架,可以在不扼杀他们的情况下提高他们的生产力 或使他们的任务复杂化。

此外,该框架可以用作任何其他 Ruby 库和铅 开发全新的扫描仪或帮助您创建高度定制的扫描仪 扫描/审核方案和/或脚本化扫描。

单纯

尽管框架的某些部分相当复杂,但您永远不必直接处理它们。 从用户或组件开发人员的角度来看,一切似乎都很简单 直截了当,同时提供动力、性能和灵活性。

从简单的命令行实用程序扫描程序到直观且用户友好的扫描程序 Web界面和协作平台,Arachni遵循最少的原则 惊喜,并为您提供大量反馈和指导。

简单来说

Arachni 旨在自动检测 Web 应用程序中的安全问题。 它所期望的只是目标网站的 URL,一段时间后它就会出现 你和它的发现。

特征

常规

  • Cookie-jar/cookie-string 支持。
  • 自定义标头支持。
  • 具有细粒度选项的 SSL 支持。
  • 用户代理欺骗。
  • 对 SOCKS4、SOCKS4A、SOCKS5、HTTP/1.1 和 HTTP/1.0 的代理支持。
  • 代理身份验证。
  • 站点身份验证(基于 SSL、基于表单、Cookie-Jar、Basic-Digest、NTLMv1、Kerberos 等)。
  • 扫描期间自动注销检测并重新登录(当初始 登录是通过 或插件执行的。autologinlogin_scriptproxy
  • 自定义 404 页面检测。
  • UI抽象
  • 命令行界面。
  • Web 用户界面。
  • 暂停/恢复功能。
  • 休眠支持 — 挂起到磁盘并从磁盘还原。
  • 高性能异步 HTTP 请求。
    • 具有可调节的并发性。
    • 能够自动检测服务器运行状况并调整其并发性 自然而然。
  • 支持自定义默认输入值,使用成对的模式(待匹配 对输入名称)和用于填充匹配输入的值。

集成浏览器环境

Arachni 包括一个集成的、真实的浏览器环境,以便提供 足以覆盖使用技术的现代 Web 应用程序 如HTML5、JavaScript、DOM操作、AJAX等。

除了对原版DOM和JavaScript环境的监控外, Arachni的浏览器还挂接到流行的框架中,以生成记录的数据 更容易消化:

  • JQuery
  • AngularJS的
  • 更多内容即将推出…

从本质上讲,这将 Arachni 变成了一个 DOM 和 JavaScript 调试器,允许它 监视 DOM 事件以及 JavaScript 数据和执行流。结果,不仅 系统可以触发和识别基于 DOM 的问题,但它会伴随它们 包含有关当时页面状态的大量信息。

相关信息包括:

  • Page DOM,作为 HTML 代码。
    • 带有恢复状态所需的 DOM 转换列表 页面添加到记录时的页面。
  • 原始 DOM(即在导致页面被记录的操作之前), 作为 HTML 代码。
    • 带有 DOM 转换列表。
  • 数据流接收器 — 每个接收器都是一个接收受污染参数的 JS 方法。
    • 方法的父对象(例如:)。DOMWindow
    • 方法签名(例如:)。decodeURIComponent()
    • 参数列表。
      • 将识别的污点递归地定位在包含的对象中。
    • 方法源代码。
    • JS 堆栈跟踪。
  • 执行流接收器 — 每个接收器都是一个成功执行的 JS 有效负载, 由安全检查注入。
    • 包括 JS 堆栈跟踪。
  • JavaScript 堆栈跟踪包括:
    • 方法名称。
    • 方法位置。
    • 方法源代码。
    • 参数列表。

从本质上讲,您可以访问与您最喜欢的信息大致相同的信息 调试器(例如,FireBug)将提供,就好像您已将断点 设置为 在正确的时间进行识别问题。

浏览器集群

浏览器集群是协调浏览器对资源和 允许系统执行通常相当耗时的操作 以高性能的方式消费。

配置选项包括:

  • 可调整的池大小,即要使用的浏览器工作线程的数量。
  • 每个作业的超时。
  • 工作线程 TTL 计入作业 — 超过 TTL 的工作线程具有其浏览器 进程重生。
  • 能够禁用加载图像。
  • 可调节屏幕宽度和高度。
    • 可用于分析响应式应用程序和移动应用程序。
  • 能够等到某些元素出现在页面中。
  • 可配置的本地存储数据。

覆盖

该系统可以为现代 Web 应用程序提供很大的覆盖范围,因为它 集成的浏览器环境。这允许它与复杂的应用程序进行交互 像人类一样大量使用客户端代码(如 JavaScript)。

除此之外,它还知道哪个浏览器状态会更改应用程序 已被编程为处理并能够以编程方式触发它们 以便为一整套可能的情况提供覆盖。

通过检查所有可能的页面及其状态(使用客户端代码时) Arachni 能够提取和审核以下元素及其输入:

  • 形式
    • 以及由于 DOM 事件而需要通过真实浏览器进行交互的那些。
  • 用户界面表单
    • 不属于 HTML 元素但 而是通过 JS 代码关联。<form>
  • 用户界面输入
    • 具有关联 DOM 事件的孤立元素。<input>
  • 链接
    • 以及在其片段中具有客户端参数的那些,即:http://example.com/#/?param=val&param2=val2
    • 支持重写规则。
  • LinkTemplates — 允许从泛型路径中提取任意输入, 基于用户提供的模板 — 在重写规则不可用时很有用。
    • 以及在其 URL 片段中具有客户端参数的那些,即:http://example.com/#/param/val/param2/val2
  • 饼干
    • 还支持嵌套 Cookie,在单个 Cookie 中包含键值对。
  • 具有关联 DOM 事件的通用客户端元素。
  • AJAX 请求参数。
  • JSON 请求数据。
  • XML 请求数据。

开放式分布式架构

Arachni 旨在适应您的工作流程,并轻松与您的 现有基础设施。

根据您需要对流程的控制级别,您可以 选择 REST 服务或自定义 RPC 协议。

这两种方法都允许您:

  • 远程监控和管理扫描。
  • 同时执行多个扫描 — 每个扫描都划分为 它自己的操作系统进程可以利用:
    • 多核/SMP 架构。
    • 操作系统级别的调度/限制。
    • 沙盒故障传播。
  • 通过安全通道进行通信。

REST 接口

  • 非常简单明了的 API。
  • 与非 Ruby 系统轻松互操作。
    • 通过 HTTP 操作。
    • 使用 JSON 设置消息格式。
  • 有状态扫描监视。
    • 唯一会话仅在轮询进度时自动接收更新, 而不是完整的数据。

RPC 接口

  • 高性能/低带宽通信协议。
    • MessagePack序列化以提高性能、效率和易用性 与第三方系统集成。
  • 网 格:
    • 自我修复。
    • 通过热插拔/热拔出节点进行纵向扩展/缩减。
      • 可以通过添加节点来无限扩展,以增加扫描容量。
    • (始终在线)负载均衡 — 自动提供所有实例 由负担最轻的网格成员提供。
      • 具有可选的每次扫描选择退出/覆盖。
    • (可选)高性能模式 — 结合 多个节点来执行多实例扫描。
      • 在每次扫描的基础上启用。

作用域配置

  • 基于常规的冗余页面(如画廊、目录等)的过滤器 表达式和计数器。
    • 可以选择自动检测和忽略冗余页面。
  • 使用正则表达式的 URL 排除过滤器。
  • 使用正则表达式根据内容进行页面排除筛选。
  • 使用正则表达式的 URL 包含过滤器。
  • 可以强制只遵循 HTTPS 路径,而不降级到 HTTP。
  • 可以选择关注子域。
  • 可调整页数限制。
  • 可调整重定向限制。
  • 可调整目录深度限制。
  • 可调节的 DOM 深度限制。
  • 使用 URL 重写规则进行调整。
  • 可以从多个用户提供的文件中读取路径(以限制和扩展 范围)。

审计

  • 可以审核:
    • 形式
      • 可以自动刷新随机数令牌。
      • 可以通过集成的浏览器环境提交它们。
    • 用户界面表单
      • 不属于 HTML 元素的输入和按钮组 而是通过 JS 代码关联。<form>
    • 用户界面输入
      • 具有关联 DOM 事件的孤立元素。<input>
    • 链接
      • 可以通过集成的浏览器环境加载它们。
    • 链接模板
      • 可以通过集成的浏览器环境加载它们。
    • 饼干
      • 可以通过集成的浏览器环境加载它们。
    • 通用客户端 DOM 元素。
    • JSON 请求数据。
    • XML 请求数据。
  • 可以忽略二进制/非文本页面。
  • 可以使用 HTTP 方法和 HTTP 方法审核元素。GETPOST
  • 可以注入原始负载和 HTTP 编码的有效负载。
  • 可以提交页面的所有链接和表格以及 cookie 排列以提供广泛的 cookie 审计覆盖范围。
  • 可以按名称排除特定的输入向量。
  • 可以按名称包含特定的输入向量。

组件

Arachni 是一个高度模块化的系统,采用不同的几个组件 类型来履行其职责。

除了启用或禁用捆绑组件外,还可以调整 系统的行为和功能 根据需要,可以通过 添加用户创建的组件,以满足几乎所有需求。

平台指纹打印机

为了有效利用可用带宽,Arachni 执行 基本的平台指纹识别,并针对服务器端定制审计流程 仅使用适用的有效负载来部署技术。

目前,可以识别以下平台:

操作系统:

  • BSD
  • Linux
  • Unix
  • Windows
  • Solaris

Web 服务器:

  • Apache
  • IIS
  • Nginx
  • Tomcat
  • Jetty
  • Gunicorn

编程语言:

  • PHP
  • ASP
  • ASPX
  • Java
  • Python
  • Ruby

框架:

  • Rack
  • CakePHP
  • Rails
  • Django
  • ASP.NET MVC
  • JSF
  • CherryPy
  • Nette
  • Symfony

用户还可以选择指定额外的平台(如数据库服务器) 以帮助系统尽可能高效。或者,指纹识别 可以完全禁用。

最后,Arachni 将始终谨慎行事,并发送所有可用的 有效载荷,当它无法识别特定平台时。

检查

检查是执行安全检查和记录问题的系统组件。

积极

主动检查通过其输入与 Web 应用程序互动。

SQL 注入 () — 基于错误的检测。sql_injection

  • Oracle
  • InterBase
  • PostgreSQL
  • MySQL
  • MSSQL
  • EMC
  • SQLite
  • DB2
  • Informix
  • Firebird
  • SaP Max DB
  • Sybase
  • Frontbase
  • Ingres
  • HSQLDB
  • MS Access
  • 使用差分分析()的盲SQL注入。sql_injection_differential
  • 使用定时攻击 () 的盲 SQL 注入。sql_injection_timing
  • MySQL
  • PostgreSQL
  • MSSQL
  • NoSQL 注入 () — 基于错误的漏洞检测。no_sql_injection
    • MongoDB的
  • 使用差分分析的盲 NoSQL 注入 ()。no_sql_injection_differential
  • CSRF 检测 ()。csrf
  • 代码注入 ()。code_injection
  • PHP
  • Ruby
  • Python
  • Java
  • ASP
  • 使用定时攻击的盲代码注入 ()。code_injection_timing
  • PHP
  • Ruby
  • Python
  • Java
  • ASP
  • LDAP 注入 ()。ldap_injection
  • 路径遍历 ()。path_traversal
  • *nix
  • Windows
  • Java
  • 文件包含 ()。file_inclusion
  • *nix
  • Windows
  • Java
  • PHP
  • Perl
  • 响应拆分 ()。response_splitting
  • 操作系统命令注入 ()。os_cmd_injection
  • *nix
  • *BSD
  • IBM AIX
  • Windows

使用定时攻击 () 的盲操作系统命令注入。os_cmd_injection_timing

  • Linux
  • *BSD
  • Solaris
  • Windows
  • 远程文件包含 ()。rfi
  • 未经验证的重定向 ()。unvalidated_redirect
  • 未经验证的 DOM 重定向 ()。unvalidated_redirect_dom
  • XPath 注入 ()。xpath_injection
  • Generic
  • PHP
  • Java
  • dotNET
  • libXML2
  • XSS ()。xss
  • 路径 XSS ()。xss_path
  • HTML 元素 () 的事件属性中的 XSS。xss_event
  • HTML 标记中的 XSS ()。xss_tag
  • 脚本上下文 () 中的 XSS。xss_script_context
  • DOM XSS ().xss_dom
  • DOM XSS 脚本上下文 ()。xss_dom_script_context
  • 源代码泄露 (source_code_disclosure)
  • XML 外部实体 ()。xxe
  • Linux
  • *BSD
  • Solaris
  • Windows
被动

被动检查查找文件、文件夹和签名是否存在。

  • 允许的 HTTP 方法 ()。allowed_methods
  • 备份文件 ()。backup_files
  • 备份目录 (backup_directories)
  • 常用管理界面 ()。common_admin_interfaces
  • 公共目录 ()。common_directories
  • 常用文件 ()。common_files
  • HTTP PUT () 中。http_put
  • 密码表单的传输层保护不足 ()。unencrypted_password_form
  • WebDAV 检测 ()。webdav
  • HTTP TRACE 检测 ()。xst
  • 信用卡号码披露 ()。credit_card
  • CVS/SVN 用户披露 ()。cvs_svn_users
  • 私有 IP 地址泄露 ()。private_ip
  • 常见后门 ()。backdoors
  • .htaccess LIMIT 配置错误 ()。htaccess_limit
  • 有趣的回应()。interesting_responses
  • HTML 对象 grepper ()。html_objects
  • 电子邮件地址泄露 ()。emails
  • 美国社会安全号码披露 ()。ssn
  • 强制目录列表 ()。directory_listing
  • 混合资源/脚本 ()。mixed_resource
  • 不安全的 Cookie ()。insecure_cookies
  • HttpOnly Cookie ()。http_only_cookies
  • 自动完成密码表单字段 ()。password_autocomplete
  • 源欺骗访问限制绕过 (origin_spoof_access_restriction_bypass)
  • 基于表单的上传 (form_upload)
  • localstart.asp (localstart_asp)
  • 为父域设置的 Cookie (cookie_set_for_parent_domain)
  • 缺少 HTTPS 站点的标头 ()。Strict-Transport-Securityhsts
  • 缺少标头 ()。X-Frame-Optionsx_frame_options
  • 不安全的 CORS 策略 ()。insecure_cors_policy
  • 不安全的跨域策略 (allow-access-from) (insecure_cross_domain_policy_access)
  • 不安全的跨域策略 (allow-http-request-headers-from) (insecure_cross_domain_policy_headers)
  • 不安全的客户端访问策略 (insecure_client_access_policy)

记住输出文件格式如下:

  • Standard output
  • HTML (zip) ().html
  • XML ().xml
  • Text ().text
  • JSON (json)
  • Marshal (marshal)
  • YAML (yaml)
  • AFR (afr)
  • 默认的 Arachni 框架报告格式。

插件

插件以模块化方式为系统添加额外的功能,这样 核心保持精简,使任何人都可以轻松添加任意功能。

  • 被动代理 () — 分析 Web 应用和 协助 AJAX 审计、登录和/或限制审计范围的浏览器。proxy
  • 基于表单的登录 ()。autologin
  • 基于脚本的登录 ()。login_script
  • HTTP 身份验证 () 的字典攻击者。http_dicattack
  • 基于表单的身份验证的字典攻击者 ()。form_dicattack
  • Cookie collector () — 在建立更改时间线的同时跟踪 Cookie。cookie_collector
  • WAF(Web 应用程序防火墙)检测器 () — 建立 正常行为,并使用 rDiff 分析来确定恶意输入是否会导致任何行为更改。waf_detector
  • BeepNotify () — 扫描完成时发出哔哔声。beep_notify
  • EmailNotify () — 通过 SMTP 发送通知(以及可选的报告),地址为 扫描结束。email_notify
  • VectorFeed () — 读取矢量数据,从中创建要 审计。可用于在每个向量/元素的基础上执行极其专业/狭窄的审核。 对于单元测试或无数其他事情很有用。vector_feed
  • Script () — 在插件范围内加载并运行外部 Ruby 脚本, 用于调试和一般黑客攻击。script
  • Uncommon headers () — 记录不常见的标头。uncommon_headers
  • Content-types () — 记录服务器响应的内容类型,有助于 识别有趣的(可能泄露的)文件。content_types
  • Vector collector () — 收集有关所有可见的输入向量的信息 在扫描范围内。vector_collector
  • Headers collector () — 根据指定的条件收集响应标头。headers_collector
  • Exec () — 在不同的扫描阶段调用外部可执行文件。exec
  • 指标 () — 捕获有关扫描和 Web 应用程序的多个方面的指标。metrics
  • 限制为 DOM 状态 () — 将审计限制为单个页面的 DOM 状态,基于 URL 片段。restrict_to_dom_state
  • Webhook notify () — 在扫描结束时通过 HTTP 发送 webhook 有效负载。webhook_notify
  • 速率限制器 () — 对 HTTP 请求进行速率限制。rate_limiter
  • Page dump () — 将页面数据作为 YAML 转储到磁盘。page_dump
违约

默认插件将在每次扫描时运行,并放置在 下。/plugins/defaults/

  • AutoThrottle () — 在扫描期间动态调整 HTTP 吞吐量 最大带宽利用率。autothrottle
  • Healthmap () — 生成站点地图,显示每个已抓取/审核的 URL 的运行状况healthmap

下面的插件对扫描结果进行分析 以确定可信度或仅添加上下文信息或一般见解。/plugins/defaults/meta/

  • TimingAttacks () — 为定时攻击发现的问题提供通知 当受影响的审核页面返回异常高的响应时间时。 它还指出了针对执行繁重处理的页面的 DoS 攻击的危险。timing_attacks
  • 发现 () — 对发现记录的问题执行异常检测 检查并警告误报的可能性(如果适用)。discovery
  • 均匀性 () — 报告在数字中均匀易受攻击的输入 的页面暗示缺乏输入清理的中心点。uniformity

培训器子系统

训练器使 Arachni 能够从它执行的扫描中学习,并且 在审计期间即时整合这些知识。

检查能够单独强制框架从 它们将诱导的 HTTP 响应。

但是,这通常不是必需的,因为 Arachni 知道哪些请求 更有可能发现新的元素或攻击媒介,并会自我适应 因此。

尽管如此,这仍然是模糊检查的宝贵资产。

安装

用法

运行规范

您可以运行以运行所有规范,也可以使用以下命令有选择地运行它们:rake spec

rake spec:core            # for the core libraries
rake spec:checks          # for the checks
rake spec:plugins         # for the plugins
rake spec:reports         # for the reports
rake spec:path_extractors # for the path extractors

请注意,由于 需要测试系统的网格/多实例功能。

注意由于时序攻击测试,检查规格将需要数小时才能完成。

资源下载
下载价格5 龙纹银币
VIP免费

原文链接:https://duduziy.com/437.html,转载请注明出处。 郑重声明: 本站所有内容仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 我们不承担任何技术及版权问题,且不对任何资源负法律责任。 如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。 如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

0

评论0

显示验证码
没有账号?注册  忘记密码?