Wapiti - Escáner de vulnerabilidad web
Wapiti es un escáner de vulnerabilidades web escrito en Python.
http://wapiti-scanner.github.io/
Requisitos
Para funcionar correctamente, Wapiti necesita Python 3.10 o 3.11
Todas las dependencias del módulo Python se instalarán automáticamente si usa el script setup.py o pip install wapiti3.
Consulte INSTALL.md para obtener más detalles sobre la instalación.
La ejecución de Wapiti en Windows se puede lograr mediante el uso de WSL.
como funciona
Wapiti funciona como un escáner de vulnerabilidades de "caja negra", lo que significa que no estudiará el código fuente de las aplicaciones web, sino que funcionará como un fuzzer, escaneando las páginas de la aplicación web implementada, extrayendo enlaces y formularios y atacando los scripts. enviando cargas útiles y buscando mensajes de error, cadenas especiales o comportamientos anormales.
Características generales
- Genera informes de vulnerabilidad en varios formatos (HTML, XML, JSON, TXT, CSV).
- Puede suspender y reanudar un análisis o un ataque (mecanismo de sesión que utiliza bases de datos sqlite3).
- Puede darle colores en la terminal para resaltar vulnerabilidades.
- Diferentes niveles de verbosidad.
- Manera rápida y fácil de activar/desactivar módulos de ataque.
- Agregar una carga útil puede ser tan fácil como agregar una línea a un archivo de texto.
- Número configurable de tareas simultáneas para realizar solicitudes HTTP.
Funciones de navegación
- Admite servidores proxy HTTP, HTTPS y SOCKS5.
- Autenticación HTTP en el destino (Básica, Digest, NTLM)
- Autenticación mediante el llenado de formularios de inicio de sesión.
- Capacidad de restringir el alcance del análisis (dominio, carpeta, página, URL).
- Eliminación automática de uno o más parámetros en las URL.
- Múltiples salvaguardias contra bucles sin fin de escaneo (por ejemplo, límite de valores para un parámetro).
- Posibilidad de configurar las primeras URL para explorar (incluso si no están dentro del alcance).
- Puede excluir algunas URL del análisis y los ataques (por ejemplo: URL de cierre de sesión).
- Importe cookies desde su navegador Chrome o Firefox o utilizando la herramienta wapiti-getcookie.
- Puede activar/desactivar la verificación de certificados SSL.
- Extraiga URL de archivos Flash SWF.
- Intente extraer URL de javascript (intérprete JS muy básico).
- Compatible con HTML5 (comprende las etiquetas HTML recientes).
- Varias opciones para controlar el comportamiento y los límites del rastreador.
- Saltarse algunos nombres de parámetros durante el ataque.
- Establecer un tiempo máximo para el proceso de escaneo.
- Agregar algunos encabezados HTTP personalizados o configurar un agente de usuario personalizado.
- Uso de un navegador sin cabeza Firefox para rastrear
- Cargar su propio código Python para casos de autenticación complicados (consulte la opción --form-script)
- Agregar URL o RUTA personalizada para actualizar la base de datos de Wappalyzer
- Escanee las API REST con un archivo OpenAPI (swagger)
Ataques apoyados
- Inyecciones SQL (basadas en errores, booleanas, basadas en tiempo) e inyecciones XPath
- Inyecciones LDAP (basadas en errores y booleanas)
- Cross Site Scripting (XSS) reflejado y permanente
- Detección de divulgación de archivos (inclusión local y remota, requerir, fopen, readfile...)
- Detección de ejecución de comandos (eval(), system(), passtru()...)
- Inyección XXE (entidad externa Xml)
- Inyección CRLF
- Busque archivos potencialmente peligrosos en el servidor (gracias a Nikto db)
- Omitir configuraciones débiles de htaccess
- Buscar copias (copia de seguridad) de scripts en el servidor
- Neurosis de guerra
- Enumeración de carpetas y archivos (como DirBuster)
- Falsificación de solicitudes del lado del servidor (mediante el uso de un sitio web externo de Wapiti)
- Abrir redirecciones
- Detección de métodos HTTP poco comunes (como PUT)
- Evaluador CSP Básico
- Formulario de inicio de sesión de Brute Force (usando una lista de diccionario)
- Comprobación de encabezados de seguridad HTTP
- Comprobación de indicadores de seguridad de cookies (indicadores seguros y de solo http)
- Detección básica de falsificación de solicitudes entre sitios (CSRF)
- La toma de huellas dactilares de aplicaciones web utilizando la base de datos Wappalyzer proporciona información CVE relacionada
- Enumeración de módulos CMS para Wordpress, Drupal, Joomla, SPIP, etc.
- Detección de adquisiciones de subdominios
- Detección de Log4Shell (CVE-2021-44228)
- Detección de Spring4Shell (CVE-2020-5398)
- Verifique las redirecciones https
- Compruebe si hay vulnerabilidades en la carga de archivos
- Detección de dispositivos de red.
- Inyecte cargas útiles dentro del cuerpo JSON también
Wapiti admite métodos HTTP GET y POST para ataques. También admite multiparte y puede inyectar cargas útiles en nombres de archivos (cargar). Muestra una advertencia cuando se encuentra una anomalía (por ejemplo, 500 errores y tiempos de espera). Marca la diferencia entre vulnerabilidades XSS permanentes y reflejadas.
Nombres de módulos
Los ataques antes mencionados están vinculados a los siguientes nombres de módulos:
- copia de seguridad (buscar copias de scripts y archivos en el servidor web)
- brute_login_form (formulario de inicio de sesión de Fuerza Bruta usando una lista de diccionario)
- buster (módulo similar a DirBuster)
- cms (Escanear para detectar CMS y sus versiones)
- cookieflags (Comprueba los indicadores Secure y HttpOnly)
- crlf (inyección CR-LF en encabezados HTTP)
- csp (Detecta falta de CSP o configuración de CSP débil)
- csrf (Detecta formularios no protegidos contra CSRF o que utilizan tokens anti-CSRF débiles)
- exec (Ejecución de código o inyección de comando)
- archivo (recorrido de ruta, inclusión de archivos, etc.)
- htaccess (restricciones de htaccess mal configuradas)
- htp (Identificar tecnologías web utilizadas en la base de datos HashThePlanet)
- http_header (verifique los encabezados de seguridad HTTP)
- https_redirect (Comprueba las redirecciones https)
- ldap (detección de inyección LDAP basada en errores y booleana)
- log4shell (Detecta sitios web vulnerables a CVE-2021-44228)
- métodos (busque métodos HTTP poco comunes disponibles como PUT)
- network_device (busque archivos comunes para detectar dispositivos de red)
- nikto (busque vulnerabilidades conocidas probando la existencia de URL y verificando las respuestas)
- permanentexss (volver a escanear todo el objetivo después de la ejecución del módulo xss en busca de cargas útiles previamente contaminadas)
- redirigir (Abrir redirecciones)
- Shellshock (Prueba el ataque Shellshock, ver Wikipedia)
- spring4shell (Detecta sitios web vulnerables a CVE-2020-5398)
- sql (detección de inyección de SQL basada en errores y booleanos)
- ssl (Evalúa la seguridad de la configuración del certificado SSL/TLS, requiere sslscan)
- ssrf (falsificación de solicitudes del lado del servidor)
- adquisición (adquisición de subdominio)
- timesql (vulnerabilidades de inyección SQL detectadas con metodología basada en tiempo)
- subir (vulnerabilidades de carga de archivos)
- wapp (No es un módulo de ataque, recupera tecnologías web con versiones y categorías en uso en el objetivo, busca los CVE correspondientes)
- wp_enum (Enumerar complementos y temas en un sitio web de Wordpress)
- xss (módulo de inyección XSS)
- xxe (ataque de entidad externa XML)
Los nombres de los módulos se pueden dar como una lista separada por comas usando la opción "-m" o "--module".
Cómo obtener los mejores resultados
Para encontrar más vulnerabilidades (ya que algunos ataques se basan en errores), puede modificar la configuración de su servidor web.
Por ejemplo, puede establecer los siguientes valores en su configuración de PHP:
modo_seguro = Desactivado
display_errors = Activado (recomendado)
magic_quotes_gpc = Desactivado
enable_url_fopen = Activado
mysql.trace_mode=Activado
Dónde conseguir ayuda
En el mensaje, simplemente escriba el siguiente comando para obtener el uso básico:
wapití -h
También puede consultar la página de manual (wapiti.1 o wapiti.1.html) para obtener más detalles sobre cada opción.
También tenemos una wiki oficial que es más exhaustiva: https://github.com/wapiti-scanner/wapiti/wiki
Si tienes otra pregunta, primero consulta las preguntas frecuentes.
Si encuentra un error, complete un problema: https://github.com/wapiti-scanner/wapiti/issues
Cómo ayudar al proyecto Wapiti
Puede :
- Apoye el proyecto haciendo una donación ( http://sf.net/donate/index.php?group_id=168625 )
- Crear o mejorar módulos de ataque.
- Crear o mejorar generadores y plantillas de informes.
- Enviar correcciones de errores, parches...
- Escribe algunas GUI
- Cree una herramienta para convertir archivos PCAP a archivos de sesión Wapiti sqlite3
- Habla de Wapiti a tu alrededor
Licencias
Wapiti se publica bajo la Licencia Pública General GNU versión 2 (GPL). El código fuente está disponible en Github.
Creado por Nicolás SURRIBAS.
Patrocinadores
Cibervigilancia https://cyberwatch.fr/
Seguridad para todos https://securityforeveryone.com/
Descargo de responsabilidad
Wapiti es un software de ciberseguridad. Realiza evaluaciones de seguridad en un objetivo proporcionado, lo que puede provocar fallos de funcionamiento y fallos en el objetivo, así como una posible pérdida de datos.
El uso de Wapiti para atacar a un objetivo sin el consentimiento previo de su propietario es ilegal. Es responsabilidad del usuario final obedecer todas las leyes locales aplicables.
Los desarrolladores y las personas involucradas en el proyecto Wapiti no asumen ninguna responsabilidad y no son responsables de ningún mal uso o daño causado por este programa.