Arachni es una solución modular, de alto rendimiento y con todas las funciones Marco de rubí destinado a ayudar a los administradores y evaluadores de penetración a evaluar la seguridad de las aplicaciones web.
Es inteligente, se entrena a sí mismo monitoreando y aprendiendo del comportamiento de la aplicación web durante el proceso de escaneo y es capaz de realizar metanálisis utilizando una serie de factores para evaluar correctamente la confiabilidad de los resultados e identificar (o evitar) de manera inteligente datos falsos. -positivos.
A diferencia de otros escáneres, tiene en cuenta la naturaleza dinámica de las aplicaciones web, puede detectar cambios causados mientras viaja por los caminos de la complejidad ciclomática de una aplicación web y es capaz de ajustarse en consecuencia. De esta manera, los vectores de ataque/entrada que de otro modo serían indetectables para personas no humanas se pueden manejar sin problemas.
Además, debido a su entorno de navegador integrado, 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, manipulación DOM y AJAX.
Características
General
- Soporte para tarros de galletas/cadenas de cookies.
- Soporte de encabezado personalizado.
- Soporte SSL con opciones detalladas.
- Suplantación de agente de usuario.
- Soporte de proxy para SOCKS4, SOCKS4A, SOCKS5, HTTP/1.1 y HTTP/1.0.
- Autenticación de proxy.
- Autenticación del sitio (basada en SSL, basada en formularios, Cookie-Jar, Basic-Digest, NTLMv1, Kerberos y otros).
- Detección automática de cierre de sesión y reinicio de sesión durante el análisis (cuando el inicio de sesión inicial se realizó a través del
autologin
,login_script
oproxy
complementos). - Detección personalizada de páginas 404.
- Abstracción de la interfaz de usuario:
- Pausar/reanudar la funcionalidad.
- Soporte de hibernación: suspender y restaurar desde el disco.
- Solicitudes HTTP asíncronas de alto rendimiento.
- Con concurrencia ajustable.
- Con la capacidad de detectar automáticamente el estado del servidor y ajustar su concurrencia automáticamente.
- Soporte para valores de entrada predeterminados personalizados, usando pares de patrones (que se compararán con los nombres de entrada) y valores que se usarán para completar las entradas coincidentes.
Entorno de navegador integrado
Arachni incluye un entorno de navegador real integrado con el fin de proporcionar cobertura suficiente a aplicaciones web modernas que hacen uso de tecnologías como HTML5, JavaScript, manipulación DOM, AJAX, etc.
Además de monitorear los entornos DOM y JavaScript, los navegadores de Arachni también se conectan a marcos populares para hacer que los datos registrados sean más fáciles de digerir:
En esencia, esto convierte a Arachni en un depurador de DOM y JavaScript, lo que le permite monitorear eventos DOM y datos de JavaScript y flujos de ejecución. Como resultado, el sistema no sólo puede activar e identificar problemas basados en DOM, sino que también 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:
- Página DOM, como código HTML.
- Con una lista de transiciones DOM necesarias para restaurar el estado de la página al que tenía en el momento en que se registró.
- DOM original (es decir, antes de la acción que provocó que se registrara la página), como código HTML.
- Con una lista de transiciones DOM.
- Sumideros de flujo de datos: cada sumidero es un método JS que recibió un argumento contaminado.
- Objeto principal del método (ej.:
DOMWindow
). - Firma del método (ej.:
decodeURIComponent()
). - Lista de argumentos.
- Con la mancha identificada ubicada de forma recursiva en los objetos incluidos.
- Código fuente del método.
- Seguimiento de pila JS.
- Objeto principal del método (ej.:
- Sumideros de flujo de ejecución: cada sumidero es una carga útil JS ejecutada con éxito, según lo inyectan las comprobaciones de seguridad.
- Incluye un seguimiento de pila JS.
- Los seguimientos de pila de JavaScript incluyen:
- Nombres de métodos.
- Ubicaciones de los métodos.
- Códigos fuente del método.
- Listas de argumentos.
En esencia, tiene acceso a aproximadamente la misma información que proporcionaría su depurador favorito (por ejemplo, FireBug), como si hubiera establecido un punto de interrupción en el momento adecuado para identificar un problema.
Clúster de navegadores
El clúster de navegador es lo que coordina el análisis de los recursos del navegador y permite que el sistema realice operaciones que normalmente consumirían bastante tiempo en un modo de alto rendimiento.
Las opciones de configuración incluyen:
- Tamaño de grupo ajustable, es decir, la cantidad de trabajadores del navegador a utilizar.
- Tiempo de espera para cada trabajo.
- TTL del trabajador contado en trabajos: los trabajadores que exceden el TTL reaparecen el proceso del navegador.
- Posibilidad de desactivar la carga de imágenes.
- Ancho y alto de pantalla regulable.
- Se puede utilizar para analizar aplicaciones móviles y responsivas.
- Posibilidad de esperar hasta que ciertos elementos aparezcan en la página.
- Datos de almacenamiento local configurables.
Cobertura
El sistema puede proporcionar una gran cobertura a las aplicaciones web modernas gracias a su entorno de navegador integrado. Esto le permite interactuar con aplicaciones complejas que hacen un uso intensivo del código del lado del cliente (como JavaScript) tal como lo haría un humano.
Además de eso, también sabe qué cambios de estado del navegador ha sido programada para manejar la aplicación y puede activarlos mediante programación para brindar cobertura para un conjunto completo de escenarios posibles.
Al inspeccionar todas las páginas posibles y sus estados (cuando se usa código del lado del cliente), Arachni puede extraer y auditar los siguientes elementos y sus entradas:
- Formularios
- Junto con aquellos que requieren interacción a través de un navegador real debido a eventos DOM.
- Formularios de interfaz de usuario
- Grupos de entradas y botones que no pertenecen a un HTML
<form>
elemento, sino que se asocian mediante código JS.
- Grupos de entradas y botones que no pertenecen a un HTML
- Entradas de interfaz de usuario
- Huérfano
<input>
elementos con eventos DOM asociados.
- Huérfano
- Enlaces
- Junto con aquellos que tienen parámetros del lado del cliente en su fragmento, es decir:
http://example.com/#/?param=val¶m2=val2
- Con soporte para reglas de reescritura.
- Junto con aquellos que tienen parámetros del lado del cliente en su fragmento, es decir:
- LinkTemplates: permite la extracción de entradas arbitrarias de rutas genéricas, basadas en plantillas proporcionadas por el usuario, útil cuando las reglas de reescritura no están disponibles.
- Junto con aquellos que tienen parámetros del lado del cliente en sus fragmentos de URL, es deci
r:http://example.com/#/param/val/param2/val2
- Junto con aquellos que tienen parámetros del lado del cliente en sus fragmentos de URL, es deci
- Galletas
- También admite cookies anidadas, que contienen pares clave-valor dentro de cookies individuales.
- Encabezados
- Elementos genéricos del lado del cliente que tienen eventos DOM asociados.
- Parámetros de solicitud AJAX.
- Datos de solicitud JSON.
- Datos de solicitud XML.
Abierto arquitectura distribuida
Arachni está diseñado para adaptarse a su flujo de trabajo e integrarse fácilmente con su infraestructura existente.
Dependiendo del nivel de control que requiera sobre el proceso, puede elegir el servicio REST o el protocolo RPC personalizado.
Ambos enfoques le permiten:
- Supervise y administre escaneos de forma remota.
- Realice múltiples análisis al mismo tiempo: cada análisis está compartimentado en su propio proceso de sistema operativo para aprovechar:
- Arquitecturas multinúcleo/SMP.
- Programación/restricciones a nivel de sistema operativo.
- Propagación de fallas en espacio aislado.
- Comunicarse a través de un canal seguro.
API DESCANSO
- API muy simple y directa.
- Fácil interoperabilidad con sistemas que no son Ruby.
- Opera a través de HTTP.
- Utiliza JSON para formatear mensajes.
- Monitoreo de escaneo con estado.
- Las sesiones únicas solo reciben automáticamente actualizaciones cuando sondean el progreso, en lugar de datos completos.
API RPC
- Alto rendimiento/bajo ancho de banda Protocolo de comunicación.
MessagePack
serialización para rendimiento, eficiencia y facilidad de integración con sistemas de terceros.
- Red:
- Autosanación.
- Aumente o reduzca la escala mediante nodos de conexión y desconexión en caliente.
- Puede ampliarse infinitamente agregando nodos para aumentar la capacidad de escaneo.
- Equilibrio de carga (siempre activo): todas las instancias son proporcionadas automáticamente por el miembro de Grid menos cargado.
- Con opción de exclusión/anulación por escaneo opcional.
- (Opcional) Modo de alto rendimiento: combina los recursos de múltiples nodos para realizar escaneos de múltiples instancias.
- Habilitado por escaneo.
Configuración del alcance
- Filtros para páginas redundantes como galerías, catálogos, etc. basados en expresiones regulares y contadores.
- Opcionalmente, puede detectar e ignorar páginas redundantes automáticamente.
- Filtros de exclusión de URL que utilizan expresiones regulares.
- Filtros de exclusión de páginas basados en el contenido, utilizando expresiones regulares.
- Filtros de inclusión de URL mediante expresiones regulares.
- Se puede obligar a seguir solo rutas HTTPS y no cambiar a HTTP.
- Opcionalmente puede seguir subdominios.
- Límite de recuento de páginas ajustable.
- Límite de redireccionamiento ajustable.
- Límite de profundidad de directorio ajustable.
- Límite de profundidad DOM ajustable.
- Ajuste mediante reglas de reescritura de URL.
- Puede leer rutas de múltiples archivos proporcionados por el usuario (para restringir y ampliar el alcance).
Auditoría
- Puede auditar:
- Formularios
- Puede actualizar automáticamente los tokens nonce.
- Puede enviarlos a través del entorno del navegador integrado.
- Formularios de interfaz de usuario
- Grupos de entradas y botones que no pertenecen a un HTML
<form>
elemento, sino que se asocian mediante código JS.
- Grupos de entradas y botones que no pertenecen a un HTML
- Entradas de interfaz de usuario
- Huérfano
<input>
elementos con eventos DOM asociados.
- Huérfano
- Enlaces
- Puede cargarlos a través del entorno del navegador integrado.
- Plantillas de enlaces
- Puede cargarlos a través del entorno del navegador integrado.
- Galletas
- Puede cargarlos a través del entorno del navegador integrado.
- Encabezados
- Elementos DOM genéricos del lado del cliente.
- Datos de solicitud JSON.
- Datos de solicitud XML.
- Formularios
- Puede ignorar páginas binarias/que no sean de texto.
- Puede auditar elementos usando ambos
GET
yPOST
Métodos HTTP. - Puede inyectar cargas útiles sin formato y codificadas en HTTP.
- Puede enviar todos los enlaces y formularios de la página junto con las permutaciones de cookies para proporcionar una amplia cobertura de auditoría de cookies.
- Puede excluir vectores de entrada específicos por nombre.
- Puede incluir vectores de entrada específicos por nombre.
Inyección SQL
Las comprobaciones activas involucran a la aplicación web a través de sus entradas.
- Inyección SQL (
sql_injection
) — Detección basada en errores.- Oráculo
- interbase
- PostgreSQL
- mysql
- MSSQL
- CEM
- SQLite
- DB2
- informax
- pájaro de fuego
- Base de datos SAP máx.
- Sybase
- Base frontal
- Ingre
- HSQLDB
- Acceso MS
Componentes
Arachni es un sistema altamente modular que emplea varios componentes de distintos tipos para realizar sus funciones.
Además de habilitar o deshabilitar los componentes incluidos para ajustar el comportamiento y las características del sistema según sea necesario, la funcionalidad se puede ampliar mediante la adición de componentes creados por el usuario para satisfacer casi todas las necesidades.
Plataformas, servidores web, lenguajes de programación y marcos compatibles
Actualmente se pueden identificar las siguientes plataformas:
- Sistemas operativos
- BSD
- linux
- Unix
- ventanas
- Solaris
- servidores web
- apache
- IIS
- nginx
- Gato
- Embarcadero
- gunicornio
- Lenguajes de programación
- PHP
- ÁSPID
- aspx
- Java
- Pitón
- Rubí
- Marcos
- Estante
- pastelPHP
- Rieles
- Django
- ASP.NETMVC
- JSF
- cerezapy
- nette
- Symfony
Estado del desarrollo
Sin embargo, los desarrolladores recomendaron utilizar otros escáneres ya que el proyecto no recibió ninguna actualización en los últimos años.
Licencia
Licencia de fuente pública de Arachni v1.0.
Recursos y descargas
Etiquetas
Escáner de vulnerabilidades Ciberseguridad pentesting de seguridad Código abierto Ruby Frameworks programación Linux Kali Linux Ubuntu Debian Manjaro macos desarrollo web Autohospedado Basado en la web Pruebas de línea de comandos hacking ético hacking