Arachni正朝着过时的态度,尝试其下一代继任者Ecsypno代号SCNR!
| 版本 | 1.6.1.3 |
|---|---|
| 首页 | http://arachni-scanner.com |
| 博客 | http://arachni-scanner.com/blog |
| github | http://github.com/arachni/arachni |
| 文档 | https://github.com/arachni/arachni/wiki |
| 代码文档 | http://rubydoc.info/github/arachni/arachni |
| 支持 | http://support.arachni-scanner.com |
| 作者 | tasos laskos(@zap0tek) |
| 叽叽喳喳 | @Arachniscanner |
| 版权 | 2010-2022 Ecsypno |
| 执照 | Arachni公共源许可证v1.0-(请参阅许可证文件) |
Arachni是一个功能丰富,模块化,高性能的红宝石框架,旨在帮助渗透测试人员和管理员评估Web应用程序的安全性。
它很聪明,它通过在扫描过程中监视和从Web应用程序的行为中学习和学习来进行训练,并能够使用许多因素进行荟萃分析,以便正确评估结果的可信度并智能地识别(或避免使用)错误的启示。
与其他扫描仪不同,它考虑了Web应用程序的动态性质,可以检测到穿过Web应用程序环境复杂性的路径时引起的变化,并能够相应地调整自身。这样,可以无缝处理非人类无法检测到的攻击/输入向量。
此外,由于其集成的浏览器环境,它还可以审核和检查客户端代码,并支持高度复杂的Web应用程序,这些应用程序大量使用JavaScript,HTML5,DOM Manipulation和Ajax。
最后,它的用途足够多,可以涵盖大量用例,从简单的命令行扫描仪实用程序到全球扫描仪的全球高性能网格,再到允许脚本审核的Ruby库,再到多用户多用户多扫描网络协作平台。
注意:尽管Arachni主要针对Web应用程序安全性,但可以通过添加自定义组件来轻松地用于通用刮擦,数据挖掘等。
允许Check , report和plugin开发人员轻松,快速地创建和部署其组件,并对他们施加的最小限制量,同时提供实现目标的必要基础架构。
此外,鼓励他们在统一的框架下充分利用红宝石语言,这将提高其生产力而不扼杀他们或使任务复杂化。
此外,同一框架可以用作任何其他Ruby库,并导致全新的扫描仪的开发,或帮助您创建高度自定义的扫描/审核场景和/或脚本扫描。
尽管该框架的某些部分非常复杂,但您将永远不必直接处理它们。从用户或组件开发人员的角度来看,所有内容始终显得简单明了,同时提供了功率,性能和灵活性。
从简单的命令行实用程序扫描仪到直观且用户友好的Web界面和协作平台,Arachni遵循至少令人惊讶的原则,并为您提供大量的反馈和指导。
Arachni旨在自动检测Web应用程序中的安全问题。它所期望的只是目标网站的URL,一段时间后它将向您介绍其发现。
autologin , login_script或proxy插件执行初始登录时)。Arachni包括一个集成的,真正的浏览器环境,以便对现代Web应用程序提供足够的覆盖范围,这些应用程序利用HTML5,JavaScript,DOM Manipulation,Ajax,Ajax等技术提供了足够的覆盖。
除了监视香草DOM和JavaScript环境外,Arachni的浏览器还将流行框架挂接,以使记录的数据更易于消化:
从本质上讲,这将Arachni变成DOM和JavaScript调试器,允许其监视DOM事件,JavaScript数据和执行流。结果,系统不仅可以触发和识别基于DOM的问题,而且还会伴随他们提供有关当时页面状态的大量信息。
相关信息包括:
DOMWindow )。decodeURIComponent() )。本质上,您可以访问与您最喜欢的调试器(例如Firebug)提供的大致相同的信息,就好像您设置了一个断点以在正确的时间进行确定问题一样。
浏览器群集是协调资源浏览器分析的原因,并允许系统执行通常以高性能方式消耗的操作。
配置选项包括:
由于其集成的浏览器环境,该系统可以为现代Web应用程序提供出色的覆盖范围。这使其可以像人类一样大量使用客户端代码(例如JavaScript)的复杂应用程序进行交互。
除此之外,它还知道哪些浏览器状态更改该应用程序已被编程为处理,并能够在程序上触发它们,以便为一组可能的情况提供覆盖范围。
通过检查所有可能的页面及其状态(使用客户端代码时)Arachni能够提取和审核以下元素及其输入:
<form>元素,而是通过JS代码关联的。<input>元素。http://example.com/#/?param=val¶m2=val2 ://example.com/#/?param=val¶m2=val2http://example.com/#/param/val/param2/val2Arachni旨在适合您的工作流程,并可以轻松地与现有的基础架构集成。
根据您在整个过程中需要的控制级别,您可以选择REST服务或自定义RPC协议。
两种方法都使您可以:
MessagePack序列化,以效果,效率和与第三方系统集成的易用性。<form>元素,而是通过JS代码关联的。<input>元素。GET和POST HTTP方法审核元素。Arachni是一个高度模块化的系统,采用多种不同类型的组成部分来履行其职责。
除了启用或禁用捆绑组件以根据需要调整系统的行为和功能外,还可以通过添加用户创建的组件来扩展功能,以适合几乎所有需求。
为了有效利用可用的带宽,Arachni仅通过使用适用的有效负载来执行基本平台指纹识别,并根据服务器端部署的技术量身定制审计过程。
目前,可以识别以下平台:
用户还可以选择指定额外的平台(例如DB服务器),以帮助系统提高效率。或者,可以完全禁用指纹。
最后,Arachni将始终在谨慎的一边犯错,并在无法识别特定平台时发送所有可用的有效载荷。
检查是执行安全检查和日志问题的系统组件。
主动检查通过其输入参与Web应用程序。
sql_injection ) - 基于错误的检测。sql_injection_differential )使用盲SQL注入。sql_injection_timing )的盲sql注入。no_sql_injection ) - 基于错误的漏洞检测。no_sql_injection_differential )使用盲nosql注入。csrf )。code_injection )。code_injection_timing )注入盲代码。ldap_injection )。path_traversal )。file_inclusion )。response_splitting )。os_cmd_injection )。os_cmd_injection_timing )注入盲os命令。rfi )。unvalidated_redirect )。unvalidated_redirect_dom )。xpath_injection )。xss )。xss_path )。xss_event )的事件属性中。xss_tag )中的XSS。xss_script_context )中。xss_dom )。xss_dom_script_context )。source_code_disclosure )xxe )。被动检查查找文件,文件夹和签名的存在。
allowed_methods )。backup_files )。backup_directories )common_admin_interfaces )。common_directories )。common_files )。http_put )。unencrypted_password_form )。webdav )。xst )。credit_card )。cvs_svn_users )。private_ip )。backdoors )。htaccess_limitinteresting_responses )。html_objects )。emails )。ssn )。directory_listing )。mixed_resource )。insecure_cookies )。http_only_cookies )。password_autocomplete )。origin_spoof_access_restriction_bypass )form_upload )localstart_asp )cookie_set_for_parent_domain )hsts )的Strict-Transport-Security标头。X-Frame-Options标题( x_frame_options )。insecure_cors_policy )。insecure_cross_domain_policy_access )insecure_cross_domain_policy_headers )insecure_client_access_policy ) html )。xml )。text )。json )marshal )yaml )afr )插件以模块化的方式为系统添加了额外的功能,这样,核心保持精益,并使任何人都可以添加任意功能。
proxy ) - 分析Web应用程序与浏览器之间的请求和响应,以协助AJAX审核,登录和/或限制审计范围。autologin )。login_script )。http_dicattack )的字典攻击者。form_dicattack )的字典攻击者。cookie_collector ) - 在建立更改时间表的同时,跟踪cookie。waf_detector ) - 建立正常行为的基准,并使用RDIFF分析来确定恶意输入是否会导致任何行为变化。beep_notify ) - 扫描完成时发出哔哔声。email_notify ) - 在扫描结束时通过SMTP发送通知(以及可选的报告)。vector_feed ) - 在向量数据中读取其创建要审核的元素。可用于根据矢量/元素进行极度专业/狭窄的审核。用于单位测试或其他事项。script ) - 在插件的范围下加载并运行外部红宝石脚本,用于调试和一般黑客。uncommon_headers ) - 日志不常见的标题。content_types ) - 日志辅助识别有趣(可能泄漏)文件的服务器响应的内容类型。vector_collector ) - 收集有关扫描范围内所有看到的输入向量的信息。headers_collector ) - 根据指定标准收集响应标题。exec ) - 在不同的扫描阶段调用外部可执行文件。metrics ) - 捕获有关扫描和Web应用程序多个方面的指标。restrict_to_dom_state ) - 根据URL片段将审核限制为单页的DOM状态。webhook_notify ) - 在扫描结束时通过HTTP发送Webhook有效载荷。rate_limiter ) - 费率限制HTTP请求。page_dump ) - 将页面数据作为yaml磁盘。 默认插件将对每次扫描进行运行,并将其放置在/plugins/defaults/下。
autothrottle ) - 在扫描过程中动态调整HTTP吞吐量以最大程度地带宽利用率。healthmap ) - 生成站点地图,显示每个爬行/审计URL的健康状况插件在/plugins/defaults/meta/执行扫描结果中的分析,以确定可信度或仅添加上下文信息或一般见解。
timing_attacks ) - 当受影响的审计页面返回异常高的响应时间时,通过计时攻击发现的问题提供了通知。它还指出了DOS攻击对执行重型处理的页面的危险。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
请警告,由于必须测试系统的网格/多实体功能,因此核心规格将需要机器的野兽。
注意:由于定时攻击测试,支票规格将需要数小时才能完成。
使用GitHub问题提交错误,并通过支持门户获得支持。
(在开始任何工作之前,请阅读有关使用源代码的说明。)
我们很乐意接受其他代码莫奈基人的帮助,这些是您需要遵循的步骤才能贡献代码:
git checkout -b <feature-name> experimental )启动特征分支。rake spec:core Core Libs或rake spec的核心)。Arachni公共源许可证v1.0-请参阅许可证文件以获取更多信息。