¿Herramientas web o dónde comenzar un pentester?

Seguimos hablando de herramientas útiles para pentester. En un nuevo artículo, consideraremos herramientas para analizar la seguridad de las aplicaciones web.

Nuestro colega BeLove ya hizo una selección similar hace unos siete años. Es interesante ver qué herramientas han mantenido y fortalecido sus posiciones, y cuáles han retrocedido a un segundo plano y rara vez se usan ahora.


Tenga en cuenta que Burp Suite también se aplica aquí, pero habrá una publicación separada sobre él y sus útiles complementos.

Contenido:



Amasar


Amass es una herramienta Go para encontrar y enumerar subdominios DNS y mapear una red externa. Amass es un proyecto OWASP diseñado para mostrar cómo las organizaciones en Internet se ven como un observador externo. Amass recibe los nombres de subdominio de varias maneras; la herramienta utiliza tanto la enumeración recursiva de subdominios como la búsqueda de código abierto.

Para detectar segmentos de red interconectados y números de sistema autónomos, Amass utiliza las direcciones IP obtenidas durante la operación. Toda la información encontrada se utiliza para construir un mapa de red.

Pros:


  • Las técnicas de recopilación de información incluyen:
    * DNS: enumeración de subdominios en un diccionario, subdominios de fuerza bruta, enumeración "inteligente" utilizando mutaciones basadas en subdominios encontrados, consultas DNS inversas y búsqueda de servidores DNS donde es posible realizar una solicitud 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;

    * Buscar bases de datos de certificados TLS: Censys, CertDB, CertSpotter, Crtsh, Entrust;

    * Uso de las API de motores de búsqueda: BinaryEdge, BufferOver, CIRCL, HackerTarget, PassiveTotal, Robtex, SecurityTrails, Shodan, Twitter, Umbrella, URLScan;

    * Buscar en los archivos web de Internet: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;
  • Integración con Maltego;
  • Proporciona la cobertura más completa de la tarea de encontrar subdominios DNS.

Contras:


  • Con mayor precisión con amass.netdomains: intentará acceder a cada dirección IP en la infraestructura identificada y obtener nombres de dominio a partir de consultas DNS inversas y certificados TLS. Esta es una técnica "ruidosa", puede revelar sus acciones de inteligencia en la organización en estudio.
  • Alto consumo de memoria, puede consumir hasta 2 GB de RAM en diferentes configuraciones, lo que no permitirá ejecutar esta herramienta en la nube en un VDS barato.



Altdns


Altdns es una herramienta de Python para construir diccionarios para enumerar subdominios DNS. Le permite generar muchas variantes de subdominios utilizando mutaciones y permutaciones. Para hacer esto, usamos palabras que a menudo se encuentran en subdominios (por ejemplo: prueba, desarrollo, estadificación), todas las mutaciones y permutaciones se aplican a subdominios ya conocidos que se pueden ingresar a Altdns. El resultado es una lista de variaciones de subdominios que pueden existir, y esta lista se puede usar más tarde con la fuerza bruta de DNS.

Pros:


  • Funciona bien con grandes conjuntos de datos.

aquatone


aquatone : antes era mejor conocida como otra herramienta para encontrar subdominios, pero el propio autor abandonó esto en favor de la mencionada Amass. Aquatone ahora se ha reescrito en Go y está más dirigido a la exploración preliminar de sitios web. Para hacer esto, aquatone recorre los dominios especificados y busca sitios web en ellos en diferentes puertos, después de lo cual recopila toda la información sobre el sitio y toma una captura de pantalla. Conveniente para la inteligencia preliminar rápida en sitios web, después de lo cual puede seleccionar objetivos prioritarios para ataques.

Pros:


  • En la salida, crea un grupo de archivos y carpetas que son convenientes de usar cuando se trabaja con otras herramientas:
    * Informe HTML con capturas de pantalla recopiladas y agrupadas por encabezados de respuesta de similitud;

    * Un archivo con todas las URL en las que se encontraron sitios web;

    * Archivo con estadísticas y datos de página;

    * Una carpeta con archivos que contienen encabezados de respuesta de los objetivos encontrados;

    * Una carpeta con archivos que contienen el cuerpo de la respuesta de los objetivos encontrados;

    * Capturas de pantalla de sitios web encontrados;
  • Admite el trabajo con informes XML de Nmap y Masscan;
  • Utiliza Chrome / Chromium sin cabeza para representar capturas de pantalla.

Contras:


  • Puede atraer la atención de los sistemas de detección de intrusos, por lo que requiere configuración.

La captura de pantalla se tomó 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 la página de lanzamientos .

Captura de pantalla de aquatone v0.5.0

MassDNS


MassDNS es otra herramienta para encontrar subdominios DNS. Su principal diferencia es que realiza consultas DNS directamente a muchos solucionadores DNS diferentes y lo hace a una velocidad considerable.

Pros:


  • Rápido - capaz de resolver más de 350 mil nombres por segundo.

Contras:


  • MassDNS puede causar una carga significativa en los solucionadores de DNS usados, lo que puede llevar a la prohibición de estos servidores o quejas a su proveedor. Además, causará una gran carga en los servidores DNS de la compañía si los tienen y si son responsables de los dominios que está tratando de resolver.
  • La lista de resolvers está desactualizada ahora, sin embargo, si selecciona resolvers DNS rotos y agrega otros nuevos, todo estará bien.



nsec3map


nsec3map es una herramienta de Python para obtener una lista completa de dominios protegidos por DNSSEC.

Pros:


  • Detecta rápidamente hosts en zonas DNS con un número mínimo de consultas si el soporte DNSSEC está habilitado en la zona;
  • Incluye un complemento para John the Ripper, que se puede usar para descifrar los hashes NSEC3 recibidos.

Contras:


  • Muchos errores de DNS no se manejan correctamente;
  • No hay paralelización automática del procesamiento de registros NSEC: debe dividir el espacio de nombres manualmente;
  • Alto consumo de memoria.

Acunetix


Acunetix es un escáner de vulnerabilidades web que automatiza el proceso de verificación de la seguridad de las aplicaciones web. Prueba la aplicación para inyección SQL, XSS, XXE, SSRF y muchas otras vulnerabilidades web. Sin embargo, como cualquier otro escáner de muchas vulnerabilidades web, no reemplaza al pentester, porque no se pueden encontrar cadenas complejas de vulnerabilidades o vulnerabilidades en la lógica. Pero cubre muchas vulnerabilidades diferentes, incluidas varias CVE, que el pentester podría olvidar, por lo tanto, es muy conveniente para la exención de los controles de rutina.

Pros:


  • Bajos falsos positivos
  • Los resultados pueden exportarse como informes;
  • Realiza una gran cantidad de comprobaciones para diversas vulnerabilidades;
  • Escaneo paralelo de múltiples hosts.

Contras:


  • No existe un algoritmo de deduplicación (Acunetix considera que las páginas tienen la misma funcionalidad porque tienen URL diferentes), pero los desarrolladores están trabajando en ello;
  • Requiere la instalación en un servidor web separado, lo que complica la prueba de los sistemas cliente con una conexión VPN y el uso de un escáner en un segmento aislado de una red de cliente local;
  • El servicio investigado puede "hacer ruido", por ejemplo, enviar demasiados vectores de ataque a la forma de comunicación en el sitio, lo que complica en gran medida los procesos comerciales;
  • Es una solución patentada y, en consecuencia, no libre.



Dirsearch


Dirsearch es una herramienta de Python para directorios y archivos de fuerza bruta en sitios web.

Pros:


  • Puede distinguir páginas reales "200 OK" de páginas "200 OK", pero con el texto "página no encontrada";
  • Viene con un práctico diccionario que tiene un buen equilibrio entre tamaño y eficiencia de búsqueda. Contiene rutas estándar que son comunes a muchos CMS y pilas de tecnología;
  • Formato de diccionario propio, que le permite lograr una buena eficiencia y flexibilidad en la clasificación de archivos y directorios;
  • Salida conveniente: texto plano, JSON;
  • Capaz de acelerar: una pausa entre solicitudes, que es vital para cualquier servicio débil.

Contras:


  • Las extensiones deben transmitirse como una cadena, lo cual es inconveniente si necesita pasar muchas extensiones a la vez;
  • Para utilizar su diccionario, deberá modificarse ligeramente al formato de los diccionarios Dirsearch para obtener la máxima eficacia.



wfuzz


wfuzz - Fuzzer de Python para aplicaciones web. Probablemente uno de los fásers web más famosos. El principio es simple: wfuzz le permite escalonar cualquier lugar en la solicitud HTTP, lo que hace posible escalonar parámetros GET / POST, encabezados HTTP, incluidas cookies y otros encabezados de autenticación. Al mismo tiempo, es conveniente para directorios y archivos simples de fuerza bruta, lo que requiere un buen diccionario. También tiene un sistema de filtro flexible con el que puede filtrar las respuestas de un sitio web por varios parámetros, lo que le permite lograr resultados efectivos.

Pros:


  • Multifuncional: estructura modular, el montaje lleva varios minutos;
  • Conveniente mecanismo de filtrado y fuzzing;
  • Puede eliminar cualquier método HTTP, así como cualquier lugar en la solicitud HTTP.

Contras:


  • En desarrollo



ffuf


ffuf - El fuzzer web de Go, creado en la "imagen y semejanza" de wfuzz, le permite crear archivos, directorios, rutas URL, nombres y valores de parámetros GET / POST, encabezados HTTP, incluido el encabezado Host para la fuerza bruta de los hosts virtuales. Wfuzz difiere de su contraparte por la mayor velocidad y algunas características nuevas, por ejemplo, se admiten los diccionarios en formato Dirsearch.

Pros:


  • Los filtros son similares a los filtros wfuzz, le permiten configurar de manera flexible la fuerza bruta;
  • Permite difuminar los valores de los encabezados HTTP, los datos de solicitud POST y varias partes de la URL, incluidos los nombres y valores de los parámetros GET;
  • Puede especificar cualquier método HTTP.

Contras:


  • En desarrollo



gobuster


gobuster : una herramienta en Go para el reconocimiento, tiene dos modos de operación. El primero se utiliza para archivos y directorios de fuerza bruta en el sitio web, el segundo, para iterar a través de subdominios DNS. Inicialmente, la herramienta no admite la enumeración recursiva de archivos y directorios, lo que, por supuesto, ahorra tiempo, pero por otro lado, la fuerza bruta de cada nuevo punto final en el sitio web debe ejecutarse por separado.

Pros:


  • Alta velocidad de trabajo tanto para enumerar subdominios DNS como para archivos y directorios de fuerza bruta.

Contras:


  • La versión actual no admite la instalación de encabezados HTTP;
  • Por defecto, solo algunos de los códigos de estado HTTP se consideran válidos (200,204,301,302,307).



Arjun


Arjun es una herramienta para la fuerza bruta de los parámetros HTTP ocultos en los parámetros GET / POST, así como en JSON. El diccionario incorporado tiene 25,980 palabras que Ajrun revisa en casi 30 segundos. El truco es que Ajrun no verifica cada parámetro por separado, sino que verifica inmediatamente ~ 1000 parámetros a la vez y mira para ver si la respuesta ha cambiado. Si la respuesta ha cambiado, divide estos 1000 parámetros en dos partes y comprueba cuál de estas partes afecta la respuesta. Por lo tanto, utilizando una búsqueda binaria simple, puede encontrar un parámetro o varios parámetros ocultos que influyeron en la respuesta y, por lo tanto, pueden existir.

Pros:


  • Alta velocidad debido a la búsqueda binaria;
  • Soporte para parámetros GET / POST, así como parámetros en forma de JSON;

El complemento para Burp Suite, param-miner , que también es muy bueno para encontrar parámetros HTTP ocultos, funciona con un principio similar. Le contaremos más sobre esto en un próximo artículo sobre Burp y sus complementos.


Linkfinder


LinkFinder es un script de Python para encontrar enlaces en archivos JavaScript. Útil para encontrar puntos finales / URL ocultos u olvidados en una aplicación web.

Pros:


  • Rápido;
  • Hay un complemento especial para Chrome basado en LinkFinder.
.

Contras:


  • Conclusión final incómoda;
  • No analiza JavaScript en dinámica;
  • Una lógica bastante simple para encontrar enlaces: si JavaScript está de alguna manera ofuscado, o si los enlaces faltan inicialmente y se generan dinámicamente, entonces no podrá encontrar nada.



Jsparser


JSParser es un script de Python que usa Tornado y JSBeautifier para analizar URL relativas de archivos JavaScript. Muy útil para detectar solicitudes AJAX y compilar una lista de métodos API con los que interactúa la aplicación. Efectivamente emparejado con LinkFinder.

Pros:


  • Análisis rápido de archivos javascript.



sqlmap


sqlmap es probablemente una de las herramientas más famosas para analizar aplicaciones web. Sqlmap automatiza la búsqueda y operación de inyecciones SQL, trabaja con varios dialectos de SQL, tiene en su arsenal una gran cantidad de técnicas diferentes, que van desde la comilla "en la frente" y termina con vectores complejos para inyecciones SQL basadas en el tiempo. Además, tiene muchas más técnicas de explotación para varios DBMS, por lo tanto, es útil no solo como un escáner para inyecciones SQL, sino también como una poderosa herramienta para explotar inyecciones SQL ya encontradas.

Pros:


  • Una gran cantidad de diferentes técnicas y vectores;
  • Bajo número de falsos positivos;
  • Muchas posibilidades de ajuste fino, diversas técnicas, base de datos de destino, scripts de manipulación para evitar WAF;
  • Capacidad para volcar datos de salida;
  • Existen muchas opciones de operación diferentes, por ejemplo, para algunas bases de datos: carga / descarga automática de archivos, obtención de la capacidad de ejecutar comandos (RCE) y otras;
  • Soporte para la conexión directa a la base de datos utilizando los datos obtenidos durante el ataque;
  • Puede enviar un archivo de texto con los resultados de Burp a la entrada; no es necesario componer manualmente todos los atributos de la línea de comandos.

Contras:


  • Es difícil personalizar, por ejemplo, escribir algunos de sus cheques debido a la escasa documentación para esto;
  • Sin la configuración adecuada, realiza un conjunto incompleto de comprobaciones, que pueden ser engañosas.



NoSQLMap


NoSQLMap es una herramienta de Python para automatizar la búsqueda y operación de inyecciones NoSQL. Es conveniente usar no solo en bases de datos NoSQL, sino también directamente al auditar aplicaciones web que usan NoSQL.

Pros:


  • Al igual que sqlmap, no solo encuentra vulnerabilidades potenciales, sino que también verifica la posibilidad de su explotación para MongoDB y CouchDB.

Contras:


  • No es compatible con NoSQL para Redis, Cassandra, el desarrollo está en curso en esta dirección.


oxml_xxe


oxml_xxe es una herramienta para incrustar exploits XML XXE en varios tipos de archivos que utilizan el formato XML de alguna forma.

Pros:


  • Es compatible con muchos formatos comunes, como DOCX, ODT, SVG, XML.

Contras:


  • Soporte no totalmente implementado para PDF, JPEG, GIF;
  • Crea solo un archivo. Para resolver este problema, puede usar la herramienta docem , que puede crear una gran cantidad de archivos de carga útil en diferentes lugares.

Las utilidades anteriores hacen un gran trabajo al probar XXE al cargar documentos que contienen XML. Pero tampoco olvide que los controladores de formato XML se pueden encontrar en muchos otros casos, por ejemplo, XML se puede utilizar como formato de datos en lugar de JSON.

Por lo tanto, le recomendamos que preste atención al siguiente repositorio, que contiene una gran cantidad de cargas útiles diferentes: PayloadsAllTheThings .

tplmap


tplmap es una herramienta de Python para detectar y explotar automáticamente las vulnerabilidades de inyección de plantillas del lado del servidor; tiene configuraciones y marcas similares a sqlmap. Utiliza varias técnicas y vectores diferentes, incluida la inyección 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 motores diferentes para plantillas y algunas técnicas para encontrar eval () - inyecciones de código similares en Python, Ruby, PHP, JavaScript. En caso de operación exitosa, abre una consola interactiva.

Pros:


  • Una gran cantidad de diferentes técnicas y vectores;
  • Admite muchos motores para renderizar plantillas;
  • Muchas técnicas de operación.

Techo


CeWL es un generador de diccionarios Ruby, diseñado para extraer palabras únicas de un sitio web específico, sigue enlaces en un sitio a una profundidad específica. Un diccionario compilado de palabras únicas puede usarse luego para contraseñas de fuerza bruta en servicios o archivos y directorios de fuerza bruta en el mismo sitio web, o para atacar hashes recibidos usando hashcat o John the Ripper. Útil cuando se compila una lista "específica" de contraseñas potenciales.

Pros:


  • Fácil de usar

Contras:


  • Debe tener cuidado con la profundidad de la búsqueda para no capturar un dominio adicional.

Paso débil


Weakpass es un servicio que contiene muchos diccionarios con contraseñas únicas. Es extremadamente útil para diversas tareas relacionadas con la piratería de contraseñas, que van desde una simple cuenta de fuerza bruta en línea en los servicios de destino, que termina con una fuerza bruta sin conexión que recibió hashes usando hashcat o John The Ripper . Compuesto por aproximadamente 8 mil millones de contraseñas con una longitud de 4 a 25 caracteres.

Pros:


  • Contiene diccionarios específicos y diccionarios con las contraseñas más comunes: puede elegir un diccionario específico para sus propias necesidades;
  • Los diccionarios se actualizan y actualizan con nuevas contraseñas;
  • Los diccionarios están ordenados por rendimiento. Puede elegir una opción para la fuerza bruta en línea rápida y para una selección exhaustiva de contraseñas de un diccionario voluminoso con las últimas filtraciones;
  • Hay una calculadora que muestra la contraseña de tiempo bruto en su equipo.



En un grupo separado, nos gustaría colocar herramientas para las comprobaciones de CMS: WPScan, JoomScan y AEM hacker.

AEM_hacker


AEM hacker es una herramienta para identificar vulnerabilidades en las aplicaciones de Adobe Experience Manager (AEM).

Pros:


  • Puede identificar aplicaciones AEM a partir de la lista de URL enviadas en la entrada;
  • Contiene scripts para obtener RCE cargando un shell JSP o operando SSRF.

Joomscan


JoomScan es una herramienta de Perl para automatizar la detección de vulnerabilidades al implementar Joomla CMS.

Pros:


  • Capaz de encontrar fallas de configuración y problemas con la configuración del administrador;
  • Enumera versiones de Joomla y vulnerabilidades relacionadas, de manera similar para componentes individuales;
  • Contiene más de 1000 exploits para componentes de Joomla;
  • Salida de informes finales en formatos de texto y HTML.



Wpscan


WPScan , una herramienta para rastrear sitios en WordPress, tiene en su arsenal de vulnerabilidades tanto para el motor de WordPress como para algunos complementos.

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 fuerza bruta en sitios de WordPress.

Contras:


  • Sin la configuración adecuada, realiza un conjunto incompleto de comprobaciones, que pueden ser engañosas.



En general, diferentes personas prefieren diferentes herramientas para el trabajo: todas son buenas a su manera, y lo que le gusta a una persona puede no ser adecuado para otra. Si crees que hemos ignorado inmerecidamente alguna buena utilidad, ¡escríbelo en los comentarios!

Source: https://habr.com/ru/post/452836/


All Articles