Arachni se dirige hacia la obsolescencia, ¡pruebe su sucesor de próxima generación Ecsypno Codename SCNR!
| Versión | 1.6.1.3 |
|---|---|
| Página principal | http://arachni-scanner.com |
| Blog | http://arachni-scanner.com/blog |
| Github | http://github.com/arachni/arachni |
| Documentación | https://github.com/arachni/arachni/wiki |
| Documentación del código | http://rubydoc.info/github/arachni/arachni |
| Apoyo | http://support.arachni-scanner.com |
| Autor | Tasos Laskos (@Zap0tek) |
| Gorjeo | @Arachniscanner |
| Derechos de autor | 2010-2022 Ecsypno |
| Licencia | Licencia de fuente pública de Arachni V1.0 - (ver archivo de licencia) |
Arachni es un marco Ruby de alto rendimiento completo, modular y de alto rendimiento destinado a ayudar a los probadores y administradores de penetración a evaluar la seguridad de las aplicaciones web.
Es inteligente, se capacita monitoreando y aprendiendo del comportamiento de la aplicación web durante el proceso de exploración y es capaz de realizar un metanálisis utilizando una serie de factores para evaluar correctamente la confiabilidad de los resultados e identificar (o evitar) falsos positivos.
A diferencia de otros escáneres, tiene en cuenta la naturaleza dinámica de las aplicaciones web, puede detectar cambios causados mientras viajan a través de las rutas de la complejidad ciclomática de una aplicación web y puede ajustarse en consecuencia. De esta manera, los vectores de ataque/entrada que de otro modo serían indetectables por los no humanos pueden manejarse sin problemas.
Además, debido a su entorno integrado de navegador, también puede auditar e inspeccionar el código del lado del cliente, así como admitir aplicaciones web altamente complicadas que hacen un uso intensivo de tecnologías como JavaScript, HTML5, DOM Manipulación y AJAX.
Finalmente, es lo suficientemente versátil como para cubrir una gran cantidad de casos de uso, que van desde una simple utilidad del escáner de línea de comandos, hasta una cuadrícula global de escáneres de alto rendimiento, hasta una biblioteca Ruby que permite auditorías con guión, hasta una plataforma de colaboración web múltiple de múltiples usuarios.
Nota : A pesar del hecho de que Arachni está dirigido principalmente a la seguridad de las aplicaciones web, se puede utilizar fácilmente para raspar, minería de datos, etc. con la adición de componentes personalizados.
Los desarrolladores Check , report y plugin pueden crear e implementar fácilmente sus componentes con la cantidad mínima de restricciones impuestas sobre ellos, mientras se les proporciona la infraestructura necesaria para lograr sus objetivos.
Además, se les alienta a aprovechar al máximo el lenguaje de Ruby bajo un marco unificado que aumentará su productividad sin sofocarlos o complicar sus tareas.
Además, ese mismo marco se puede utilizar como cualquier otra biblioteca de Ruby y conducir al desarrollo de escáneres nuevos o ayudarlo a crear escenarios de escaneo/auditoría altamente personalizados y/o escaneos escritos.
Aunque algunas partes del marco son bastante complejas, nunca tendrá que tratarlas directamente. Desde el punto de vista del desarrollador de un usuario o un componente, todo parece simple y directo todo el tiempo proporcionando potencia, rendimiento y flexibilidad.
Desde el simple escáner de utilidad de línea de comandos hasta la plataforma de interfaz y colaboración intuitiva y fácil de usar, Arachni sigue el principio de menor sorpresa y le proporciona muchos comentarios y orientación.
Arachni está diseñado para detectar automáticamente problemas de seguridad en aplicaciones web. Todo lo que espera es la URL del sitio web objetivo y después de un tiempo le presentará sus hallazgos.
autologin , login_script o proxy ).Arachni incluye un entorno integrado de navegador real para proporcionar una cobertura suficiente a las aplicaciones web modernas que utilizan tecnologías como HTML5, JavaScript, Manipulación DOM, AJAX, etc.
Además del monitoreo de los entornos Vanilla DOM y JavaScript, los navegadores de Arachni también conectan a los marcos populares para hacer que los datos registrados sean más fáciles de digerir:
En esencia, esto convierte a Arachni en un depurador DOM y JavaScript, lo que le permite monitorear los eventos DOM y los datos y los flujos de ejecución de JavaScript. Como resultado, el sistema no solo puede activar e identificar problemas basados en DOM, sino que los acompañará con una gran cantidad de información sobre el estado de la página en ese momento.
La información relevante incluye:
DOMWindow ).decodeURIComponent() ).En esencia, tiene acceso a la misma información que su depurador favorito (por ejemplo, Firebug) proporcionaría, como si hubiera establecido un punto de ruptura en el momento adecuado para identificar un problema.
El clúster del navegador es lo que coordina el análisis del navegador de los recursos y permite que el sistema realice operaciones que normalmente llevarían mucho tiempo de manera de alto rendimiento.
Las opciones de configuración incluyen:
El sistema puede proporcionar una gran cobertura a las aplicaciones web modernas debido a su entorno integrado de navegador. Esto le permite interactuar con aplicaciones complejas que hacen un uso pesado del código del lado del cliente (como JavaScript) como lo haría un humano.
Además de eso, también sabe qué cambia el estado del navegador la aplicación ha sido programada para manejar y puede activarlos programáticamente para proporcionar cobertura para un conjunto completo de posibles escenarios.
Al inspeccionar todas las páginas posibles y sus estados (cuando se usa el código del lado del cliente) Arachni puede extraer y auditar los siguientes elementos y sus entradas:
<form> , pero en su lugar se asocian a través del código JS.<input> con eventos DOM asociados.http://example.com/#/?param=val¶m2=val2http://example.com/#/param/val/param2/val2Arachni está diseñado para encajar en su flujo de trabajo e integrarse fácilmente con su infraestructura existente.
Dependiendo del nivel de control que necesita sobre el proceso, puede elegir el servicio REST o el protocolo RPC personalizado.
Ambos enfoques te permiten:
MessagePack para rendimiento, eficiencia y facilidad de integración con sistemas de terceros.<form> , pero en su lugar se asocian a través del código JS.<input> con eventos DOM asociados.GET y POST HTTP?Arachni es un sistema altamente modular, que emplea varios componentes de tipos distintos para realizar sus deberes.
Además de habilitar o deshabilitar los componentes agrupados para ajustar el comportamiento y las características del sistema según sea necesario, la funcionalidad se puede extender mediante la adición de componentes creados por el usuario para adaptarse a casi todas las necesidades.
Para hacer un uso eficiente del ancho de banda disponible, Arachni realiza huellas dactilares de plataforma rudimentarias y adapta el proceso de auditoría a las tecnologías implementadas del lado del servidor solo utilizando cargas útiles aplicables.
Actualmente, se pueden identificar las siguientes plataformas:
El usuario también tiene la opción de especificar plataformas adicionales (como un servidor DB) para ayudar al sistema a ser lo más eficiente posible. Alternativamente, las huellas digitales se pueden deshabilitar por completo.
Finalmente, Arachni siempre se equivocará por la precaución y enviará todas las cargas útiles disponibles cuando no identifique plataformas específicas.
Las verificaciones son componentes del sistema que realizan comprobaciones de seguridad y problemas de registro.
Las verificaciones activas involucran la aplicación web a través de sus entradas.
sql_injection ) - Detección basada en errores.sql_injection_differential ).sql_injection_timing ).no_sql_injection ) - Detección de vulnerabilidad basada en errores.no_sql_injection_differential ).csrf ).code_injection ).code_injection_timing ).ldap_injection ).path_traversal ).file_inclusion ).response_splitting ).os_cmd_injection ).os_cmd_injection_timing ).rfi ).unvalidated_redirect ).unvalidated_redirect_dom ).xpath_injection ).xss ).xss_path ).xss_event ).xss_tag ).xss_script_context ).xss_dom ).xss_dom_script_context ).source_code_disclosure )xxe ).Los controles pasivos buscan la existencia de archivos, carpetas y firmas.
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_limit ).interesting_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 )Strict-Transport-Security para sitios HTTPS ( hsts ).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 )Los complementos agregan funcionalidad adicional al sistema de manera modular, de esta manera el núcleo permanece delgado y facilita que cualquiera agregue funcionalidad arbitraria.
proxy ): analiza las solicitudes y respuestas entre la aplicación web y el navegador que asisten en auditorías AJAX, inicia sesión y/o restringe el alcance de la auditoría.autologin ).login_script ).http_dicattack ).form_dicattack ).cookie_collector ): realiza un seguimiento de las cookies mientras establece una línea de tiempo de cambios.waf_detector ): establece una línea de base del comportamiento normal y utiliza el análisis RDIFF para determinar si las entradas maliciosas causan cambios de comportamiento.beep_notify ) - Beeps cuando termina el escaneo.email_notify ): envía una notificación (y opcionalmente un informe) a través de SMTP al final del escaneo.vector_feed ): se lee en datos vectoriales de los que crea elementos para ser auditados. Se puede utilizar para realizar auditorías extremadamente especializadas/estrechas por vector/elemento. Útil para pruebas de unidad o un mil millones de otras cosas.script ): carga y ejecuta un script rubí externo bajo el alcance de un complemento, utilizado para depurar y hackerías generales.uncommon_headers ) - registra encabezados poco comunes.content_types ): registra los tipos de contenido de las respuestas del servidor que ayudan en la identificación de archivos interesantes (posiblemente filtrados).vector_collector ): recopila información sobre todos los vectores de entrada vistos que están dentro del alcance de escaneo.headers_collector ): recopila encabezados de respuesta basados en criterios especificados.exec ): llama a ejecutables externos en diferentes etapas de escaneo.metrics ): captura métricas sobre múltiples aspectos del escaneo y la aplicación web.restrict_to_dom_state ) - restringe la auditoría al estado DOM de una sola página, basado en un fragmento de URL.webhook_notify ): envía una carga útil de Webhook a través de HTTP al final del escaneo.rate_limiter ) - Limita las solicitudes HTTP.page_dump ) - Vuelve los datos de la página al disco como YAML. Los complementos predeterminados se ejecutarán para cada escaneo y se colocan en /plugins/defaults/ .
autothrottle ): ajusta dinámicamente el rendimiento HTTP durante el escaneo para obtener la máxima utilización de ancho de banda.healthmap ): genera mapa del sitio que muestra la salud de cada URL rastreada/auditada Complementos en /plugins/defaults/meta/ realización de análisis en los resultados de escaneo para determinar la confiabilidad o simplemente agregar información de contexto o ideas generales.
timing_attacks ): proporciona un aviso para los problemas descubiertos por los ataques de cronometraje cuando las páginas auditadas afectadas devolvieron tiempos de respuesta inusualmente altos para empezar. También señala el peligro de ataques de DOS contra páginas que realizan un procesamiento de servicio pesado.discovery ): realiza la detección de anomalías en temas registrados por verificaciones de descubrimiento y advierte sobre la posibilidad de falsos positivos cuando corresponda.uniformity ): informa entradas que son uniformemente vulnerables en una serie de páginas que sugieren la falta de un punto central de desinfección de entrada.El entrenador es lo que permite a Arachni aprender del escaneo que realiza e incorpora ese conocimiento, sobre la marcha, durante la auditoría.
Los controles tienen la capacidad de forzar individualmente el marco a aprender de las respuestas HTTP que van a inducir.
Sin embargo, esto generalmente no se requiere, ya que Arachni es consciente de qué solicitudes tienen más probabilidades de descubrir nuevos elementos o vectores de ataque y se adaptarán en consecuencia.
Aún así, este puede ser un activo invaluable para las verificaciones de fuzzadores.
Puede ejecutar rake spec para ejecutar todas las especificaciones o puede ejecutarlas selectivamente utilizando lo siguiente:
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
Tenga en cuenta que las especificaciones básicas requerirán una bestia de una máquina debido a la necesidad de probar las características de la cuadrícula/múltiples instancias del sistema.
Nota : Las especificaciones de verificación tardarán muchas horas en completarse debido a las pruebas de ataque de tiempo.
Envíe errores utilizando problemas de GitHub y obtenga soporte a través del portal de soporte.
(Antes de comenzar cualquier trabajo, lea las instrucciones para trabajar con el código fuente).
Nos complace aceptar la ayuda de otros monkeys de código y estos son los pasos que debe seguir para contribuir con código:
git checkout -b <feature-name> experimental ).rake spec:core para las libs de núcleo o rake spec para todo).Licencia de fuente pública de Arachni V1.0 - Consulte el archivo de licencia para obtener más información.