hablando de herramientas útiles para el pentester. En este nuevo artículo, examinaremos herramientas para analizar la seguridad de aplicaciones web.
Nuestro colega ya había hecho una hace aproximadamente siete años. Es interesante ver qué herramientas han mantenido y fortalecido sus posiciones, y cuáles han quedado atrás y se utilizan raramente en la actualidad.

Cabe destacar que Burp Suite también se incluye aquí, pero sobre él y sus útiles complementos habrá una publicación separada.
Contenido:
Amass
— herramienta en Go para buscar y enumerar subdominios DNS y mapear redes externas. Amass es un proyecto de OWASP, creado para mostrar cómo se ven las organizaciones en Internet desde la perspectiva de un observador externo. Amass obtiene nombres de subdominios de diversas maneras, utilizando tanto la enumeración recursiva como la búsqueda en fuentes abiertas.
Para detectar segmentos de red relacionados y números de sistemas autónomos, Amass utiliza direcciones IP obtenidas durante su funcionamiento. Toda la información encontrada se utiliza para construir un mapa de la red.
Pros:
- Las técnicas de recopilación de información incluyen:
* DNS — enumeración de subdominios a partir de un diccionario, fuerza bruta en subdominios, enumeración 'inteligente' usando mutaciones basadas en subdominios encontrados, consultas DNS inversas y búsqueda de servidores DNS que permitan hacer solicitudes de transferencia de zona (AXFR);* Búsqueda en fuentes abiertas — Ask, Baidu, Bing, CommonCrawl, DNSDB, DNSDumpster, DNSTable, Dogpile, Exalead, FindSubdomains, Google, IPv4Info, Netcraft, PTRArchive, Riddler, SiteDossier, ThreatCrowd, VirusTotal, Yahoo;
* Búsqueda en bases de datos de certificados TLS — Censys, CertDB, CertSpotter, Crtsh, Entrust;
* Uso de API de motores de búsqueda — BinaryEdge, BufferOver, CIRCL, HackerTarget, PassiveTotal, Robtex, SecurityTrails, Shodan, Twitter, Umbrella, URLScan;
* Búsqueda en archivos web de Internet: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;
- Integración con Maltego;
- Proporciona la cobertura más completa para la tarea de búsqueda de subdominios DNS.
Desventajas:
- Ten cuidado con amass.netdomains — intentará contactar cada dirección IP en la infraestructura identificada y obtener nombres de dominio de consultas DNS inversas y certificados TLS. Esta es una técnica 'ruidosa', puede revelar tus actividades de reconocimiento en la organización investigada.
- Alto consumo de memoria, puede consumir hasta 2 GB de RAM en diversas configuraciones, lo que no permitirá ejecutar esta herramienta en la nube en un VDS barato.

Altdns
— herramienta en Python para crear diccionarios para la enumeración de subdominios DNS. Permite generar múltiples variantes de subdominios mediante mutaciones y permutaciones. Para ello se utilizan palabras que comúnmente aparecen en subdominios (por ejemplo: test, dev, staging), todas las mutaciones y permutaciones se aplican a subdominios ya conocidos que se pueden proporcionar como entrada a Altdns. Como resultado se obtiene una lista de variaciones de subdominios que pueden existir, y esta lista se puede usar posteriormente en un ataque de fuerza bruta DNS.
Pros:
- Funciona bien con grandes conjuntos de datos.
aquatone
— anteriormente era más conocido como otra herramienta para la búsqueda de subdominios, pero su autor optó por dejarlo a favor del mencionado Amass. Ahora aquatone ha sido reescrito en Go y está más centrado en la exploración preliminar de sitios web. Para ello, aquatone recorre los dominios especificados y busca en ellos sitios web en diferentes puertos, luego recopila toda la información sobre el sitio y toma una captura de pantalla. Es útil para una rápida exploración preliminar de sitios web, tras lo cual se pueden seleccionar objetivos prioritarios para los ataques.
Pros:
- Como resultado, crea un grupo de archivos y carpetas que son convenientes para usar en trabajos posteriores con otras herramientas:
* Informe HTML con las capturas de pantalla recopiladas y agrupadas por similitud de los encabezados de respuesta;* Archivo con todas las URL donde se encontraron sitios web;
* Archivo con estadísticas y datos de la página;
* Carpeta con archivos que contienen los encabezados de respuesta de los objetivos encontrados;
* Carpeta con archivos que contienen el cuerpo de respuesta de los objetivos encontrados;
* Capturas de pantalla de los sitios web encontrados;
- Admite el trabajo con informes XML de Nmap y Masscan;
- Utiliza headless Chrome/Chromium para renderizar las capturas de pantalla.
Desventajas:
- Puede llamar la atención de sistemas de detección de intrusiones, por lo que requiere configuración.
La captura de pantalla se hizo para una de las versiones antiguas de aquatone (v0.5.0), en la que se implementó la búsqueda de subdominios DNS. Las versiones antiguas se pueden encontrar en .

MassDNS
— otra herramienta para la búsqueda de subdominios DNS. Su principal diferencia es que realiza consultas DNS directamente a múltiples resolutores DNS diferentes y lo hace a una velocidad considerable.
Pros:
- Rápido: capaz de resolver más de 350 mil nombres por segundo.
Desventajas:
- MassDNS puede causar una carga significativa en los resolvers de DNS utilizados, lo que puede llevar a un bloqueo en estos servidores o a que su proveedor reciba quejas. Además, generará una carga considerable en los servidores DNS de la empresa, si los tienen y son responsables de los dominios que está intentando resolver.
- La lista de resolvers está actualmente desactualizada, sin embargo, si se eliminan los resolvers de DNS no funcionales y se añaden nuevos conocidos, todo irá bien.

Captura de pantalla de aquatone v0.5.0
nsec3map
— herramienta en Python para obtener una lista completa de dominios protegidos por DNSSEC.
Pros:
- Detecta rápidamente hosts en zonas DNS con un mínimo de consultas, si la zona tiene habilitado el soporte para DNSSEC;
- Incluye un plugin para John the Ripper, que se puede usar para descifrar los hashes NSEC3 obtenidos.
Desventajas:
- Muchos errores de DNS se manejan incorrectamente;
- No hay paralelización automática en el procesamiento de registros NSEC, lo que obliga a dividir el espacio de nombres manualmente;
- Alto consumo de memoria.
Acunetix
— escáner de vulnerabilidades web que automatiza el proceso de verificación de la seguridad de aplicaciones web. Prueba la aplicación en busca de inyecciones SQL, XSS, XXE, SSRF y muchas otras vulnerabilidades web. Sin embargo, como cualquier otro escáner de múltiples vulnerabilidades web, no reemplaza a un pentester, ya que no podrá encontrar cadenas de vulnerabilidades complejas o vulnerabilidades lógicas. Aun así, cubre muchas vulnerabilidades diferentes, incluidas diversas CVE, que un pentester podría haber olvidado, lo que lo hace muy conveniente para liberar de verificaciones rutinarias.
Pros:
- Bajo nivel de falsos positivos;
- Los resultados se pueden exportar en forma de informes;
- Realiza un gran número de verificaciones sobre diferentes vulnerabilidades;
- Escaneo paralelo de múltiples hosts.
Desventajas:
- No hay un algoritmo de deduplicación (páginas con funcionalidad idéntica serán consideradas diferentes por Acunetix, ya que tienen diferentes URL), pero los desarrolladores están trabajando en ello;
- Requiere instalación en un servidor web separado, lo que complica las pruebas de sistemas clientes con conexión VPN y el uso del escáner en un segmento aislado de la red local del cliente;
- Puede 'ruidoso' el servicio en investigación, por ejemplo, enviar demasiados vectores de ataque en el formulario de contacto en el sitio web, complicando enormemente los procesos comerciales.
- Es una solución propietaria y, por lo tanto, no gratuita.

Dirsearch
— herramienta en Python para el bruteforce de directorios y archivos en sitios web.
Pros:
- Puede distinguir entre las verdaderas páginas "200 OK" y las páginas "200 OK" que contienen el texto "página no encontrada";
- Viene con un diccionario fácil de usar, que tiene un buen equilibrio entre tamaño y eficiencia de búsqueda. Contiene rutas estándar comunes en muchos CMS y pilas tecnológicas;
- Su propio formato de diccionario que permite alcanzar una buena eficiencia y flexibilidad al переборе de archivos y directorios;
- Salida conveniente — texto plano, JSON;
- Puede hacer throttling — pausas entre solicitudes, lo que es vital para cualquier servicio débil.
Desventajas:
- Las extensiones deben ser pasadas como una cadena, lo que es incómodo si necesitas pasar muchas extensiones a la vez;
- Para utilizar su propio diccionario, debe hacerse algunos ajustes al formato de diccionarios Dirsearch para una máxima eficiencia.

wfuzz
— fuzzing de aplicaciones web en Python. Probablemente, uno de los fuzzers web más conocidos. El principio es simple: wfuzz permite fuzzear cualquier parte de la solicitud HTTP, lo que permite fuzzear parámetros GET/POST, encabezados HTTP, incluidas cookies y otros encabezados de autenticación. También es útil para el bruteforce de directorios y archivos simples, para lo cual se necesita un buen diccionario. Además, cuenta con un sistema de filtros flexible que permite filtrar las respuestas del sitio web según varios parámetros, lo que contribuye a obtener resultados efectivos.
Pros:
- Multifuncional — estructura modular, la configuración toma unos minutos;
- Mecanismo de filtrado y fuzzing conveniente;
- Se puede fuzzear cualquier método HTTP, así como cualquier parte de la solicitud HTTP.
Desventajas:
- En desarrollo.

ffuf
— fuzzer web en Go, creado a imagen y semejanza de wfuzz, permite brutear archivos, directorios, rutas URL, nombres y valores de parámetros GET/POST, encabezados HTTP, incluidos el encabezado Host para el bruteforce de hosts virtuales. A diferencia de su homólogo wfuzz, se distingue por una mayor velocidad y algunas nuevas características, como el soporte para diccionarios en formato Dirsearch.
Pros:
- Los filtros son similares a los filtros de wfuzz, permiten configurar el bruteforce de manera flexible;
- Permite fuzzear valores de encabezados HTTP, datos de solicitudes POST y diversas partes de la URL, incluidos nombres y valores de parámetros GET;
- Se puede especificar cualquier método HTTP.
Desventajas:
- En desarrollo.

gobuster
— herramienta en Go para la exploración, tiene dos modos de operación. El primero se utiliza para hacer fuerza bruta de archivos y directorios en el sitio web, el segundo — para enumerar subdominios DNS. La herramienta no soporta por defecto la enumeración recursiva de archivos y directorios, lo que, por supuesto, ahorra tiempo, pero por otro lado, cada nuevo endpoint en el sitio web debe ser atacado por separado.
Pros:
- Alta velocidad de operación tanto para la enumeración de subdominios DNS como para la fuerza bruta de archivos y directorios.
Desventajas:
- La versión actual no soporta la configuración de encabezados HTTP;
- Por defecto considera válidos solo algunos códigos de estado HTTP (200, 204, 301, 302, 307).

Arjun
— herramienta para la fuerza bruta de parámetros HTTP ocultos en parámetros GET/POST, así como en JSON. El diccionario incorporado tiene 25,980 palabras, que Ajrun verifica en casi 30 segundos. La clave es que Ajrun no verifica cada parámetro por separado, sino que comprueba alrededor de ~1000 parámetros a la vez y observa si la respuesta ha cambiado. Si la respuesta cambia, divide esos 1000 parámetros en dos partes y verifica cuál de esas partes afecta la respuesta. De este modo, mediante una simple búsqueda binaria, se encuentra el parámetro o varios parámetros ocultos que afectaban la respuesta y, por lo tanto, pueden existir.
Pros:
- Alta velocidad de operación gracias a la búsqueda binaria;
- Soporte para parámetros GET/POST, así como parámetros en formato JSON;
De manera similar funciona el complemento para Burp Suite — , que también es muy eficaz en la búsqueda de parámetros HTTP ocultos. Hablaremos más sobre él en un próximo artículo sobre Burp y sus complementos.

LinkFinder
— script en Python para buscar enlaces en archivos JavaScript. Es útil para encontrar endpoints/URLs ocultos o olvidados en la aplicación web.
Pros:
- Rápido;
- Hay un complemento especial para Chrome basado en LinkFinder.
.
Desventajas:
- Salida final incómoda;
- No analiza JavaScript de forma dinámica;
- Lógica de búsqueda de enlaces bastante simple: si JavaScript está ofuscado de alguna manera, o los enlaces no están presentes originalmente y se generan dinámicamente, no podrá encontrar nada.

JSParser
— script en Python que utiliza y para analizar URLs relativas de archivos JavaScript. Muy útil para detectar solicitudes AJAX y formar una lista de los métodos API con los que interactúa la aplicación. Funciona eficazmente en conjunto con LinkFinder.
Pros:
- Análisis rápido de archivos JavaScript.

sqlmap
— quizás una de las herramientas más conocidas para el análisis de aplicaciones web. Sqlmap automatiza la búsqueda y explotación de inyecciones SQL, trabaja con varios dialectos de SQL y cuenta con una gran cantidad de técnicas, desde el ataque directo con comillas hasta complejos vectores para inyecciones SQL basadas en tiempo. Además, cuenta con múltiples técnicas de explotación adicional para diferentes SGBD, por lo que es útil no solo como escáner de inyecciones SQL, sino también como una potente herramienta para explotar inyecciones SQL ya descubiertas.
Pros:
- Gran cantidad de técnicas y vectores variados;
- Bajo número de falsos positivos;
- Muchas posibilidades de personalización, diferentes técnicas, base de datos objetivo, scripts de manipulación para eludir WAF;
- Posibilidad de crear un volcado de datos de salida;
- Muchas oportunidades de explotación, por ejemplo, para algunas bases de datos — carga/descarga automática de archivos, ejecución de comandos (RCE) y más;
- Soporte para conexión directa a la base de datos utilizando los datos obtenidos durante el ataque;
- Se puede proporcionar un archivo de texto con los resultados de Burp — no es necesario configurar manualmente todos los atributos de la línea de comandos.
Desventajas:
- Difícil de personalizar, por ejemplo, escribir comprobaciones propias debido a la escasa documentación para esto;
- Sin la configuración adecuada, realiza un conjunto incompleto de comprobaciones, lo que puede ser engañoso.

NoSQLMap
— herramienta en Python para automatizar la búsqueda y explotación de inyecciones NoSQL. Es conveniente usar no solo en bases de datos NoSQL, sino también directamente durante la auditoría de aplicaciones web que utilizan NoSQL.
Pros:
- Al igual que sqlmap, permite no solo encontrar vulnerabilidades potenciales, sino también comprobar la posibilidad de su explotación para MongoDB y CouchDB.
Desventajas:
- No soporta NoSQL para Redis, Cassandra, actualmente se está trabajando en este aspecto.
oxml_xxe
— herramienta para insertar exploits XXE XML en varios tipos de archivos que utilizan XML en alguna forma.
Pros:
- Soporta muchos formatos comunes, como DOCX, ODT, SVG, XML.
Desventajas:
- El soporte para PDF, JPEG, GIF no está completamente implementado;
- Solo crea un archivo. Para solucionar este problema, se puede utilizar la herramienta , que puede crear una gran cantidad de archivos con payloads en diferentes ubicaciones.
Las utilidades mencionadas anteriormente son excelentes para probar XXE en el caso de cargar documentos que contienen XML. Pero no olvides que los procesadores de formatos XML pueden encontrarse en muchas otras situaciones, por ejemplo, XML puede utilizarse como un formato de datos en lugar de JSON.
Por lo tanto, te recomendamos prestar atención al siguiente repositorio, que contiene una gran cantidad de payloads variados: .
tplmap
— una herramienta en Python para la detección y explotación automática de vulnerabilidades de Server-Side Template Injection, tiene configuraciones y banderas similares a sqlmap. Utiliza varias técnicas y vectores diferentes, incluyendo inyecciones a ciegas, y también tiene técnicas para ejecutar código y cargar/descargar archivos arbitrarios. Además, tiene en su arsenal técnicas para una docena de diferentes motores de plantillas y algunas técnicas para buscar inyecciones de código similares a eval() en Python, Ruby, PHP y JavaScript. En caso de explotación exitosa, abre una consola interactiva.
Pros:
- Gran cantidad de técnicas y vectores variados;
- Soporta múltiples motores para renderizar plantillas;
- Muchas técnicas de explotación.
CeWL
— un generador de diccionarios en Ruby, creado para extraer palabras únicas de un sitio web especificado, navega a través de los enlaces en el sitio a una profundidad indicada. El diccionario formado con palabras únicas puede ser utilizado posteriormente para ataques de fuerza bruta en servicios o para forzar archivos y directorios en el mismo sitio web, o para atacar los hashes obtenidos con hashcat o John the Ripper. Es útil al compilar una lista 'objetivo' de contraseñas potenciales.
Pros:
- Fácil de usar.
Desventajas:
- Debes tener cuidado con la profundidad de búsqueda para no capturar otro dominio innecesariamente.
Weakpass
— un servicio que contiene múltiples diccionarios con contraseñas únicas. Extremadamente útil para diversas tareas relacionadas con el hackeo de contraseñas, desde ataques de fuerza bruta en cuentas de servicios objetivo hasta ataques offline de hashes obtenidos con o . Contiene alrededor de 8 mil millones de contraseñas con longitudes que varían de 4 a 25 caracteres.
Pros:
- Incluye tanto diccionarios específicos como diccionarios con las contraseñas más comunes; puedes elegir un diccionario específico según tus necesidades;
- Los diccionarios se actualizan y enriquecen con nuevas contraseñas;
- Los diccionarios están ordenados por eficacia. Se puede elegir una opción tanto para un rápido brute force en línea como para una selección minuciosa de contraseñas de un extenso diccionario con las últimas filtraciones;
- Hay una calculadora que muestra el tiempo de brute force de las contraseñas en tu hardware.

Nos gustaría destacar una categoría separada para herramientas de verificación de CMS: WPScan, JoomScan y AEM hacker.
AEM_hacker
— herramienta para identificar vulnerabilidades en aplicaciones de Adobe Experience Manager (AEM).
Pros:
- Puede identificar aplicaciones AEM de la lista de URLs que se le proporcionen;
- Contiene scripts para obtener RCE mediante la carga de un shell JSP o explotando SSRF.
JoomScan
— herramienta en Perl para automatizar la detección de vulnerabilidades en la implementación de Joomla CMS.
Pros:
- Capaz de identificar defectos de configuración y problemas en la configuración del administrador;
- Enumera las versiones de Joomla y sus vulnerabilidades asociadas, así como de componentes individuales;
- Contiene más de 1000 exploits para componentes de Joomla;
- Genera informes finales en formatos de texto y HTML.

WPScan
— herramienta para escanear sitios en WordPress, cuenta con vulnerabilidades tanto para el propio motor de WordPress como para algunos plugins.
Pros:
- Capaz de enumerar no solo plugins y temas inseguros de WordPress, sino también obtener una lista de usuarios y archivos TimThumb;
- Puede realizar ataques de brute force en sitios de WordPress.
Desventajas:
- Sin la configuración adecuada, realiza un conjunto incompleto de comprobaciones, lo que puede ser engañoso.

En general, diferentes personas prefieren trabajar con diferentes herramientas: todas son buenas a su manera, y lo que le gusta a una persona puede no ser adecuado para otra. Si consideras que hemos pasado por alto alguna buena utilidad, ¡escríbenos al respecto en los comentarios!
Fuente: habr.com
