Revisión de herramientas gratuitas para pentesting de recursos web y más v2

Hace tiempo ya escribí sobre este, pero fue un poco escaso y confuso. Después decidí ampliar la lista de herramientas en la revisión, añadir estructura al artículo, tener en cuenta las críticas (muchas gracias Lefty por los consejos) y lo envié a un concurso en SecLab (y lo publiqué el enlace, pero por todas las razones comprensibles nadie lo vio). El concurso ha terminado, se han anunciado los resultados y con buena conciencia puedo publicarlo aquí en Habr.

Herramientas gratuitas para pentesters de aplicaciones web

En este artículo hablaré de las herramientas más populares para el pentesting (pruebas de penetración) de aplicaciones web según la estrategia de "caja negra".
Para esto, revisaremos las utilidades que ayudarán en este tipo de pruebas. Consideraremos las siguientes categorías de productos:

  1. Escáneres de red
  2. Escáneres de vulnerabilidades en scripts web
  3. Explotación
  4. Automatización de inyecciones
  5. Depuradores (sniffers, proxies locales, etc.)


Algunos productos tienen un "carácter" versátil, por lo que los clasificaré en la categoría donde tienen unmayor audiencia.mayor resultado (opinión subjetiva).

Escáneres de red.

La tarea principal es descubrir servicios de red disponibles, establecer sus versiones, determinar el sistema operativo, etc.

NmapRevisión de herramientas gratuitas para pentesting de recursos web y más v2
Nmap ("Network Mapper") es una utilidad gratuita de código abierto para el análisis de redes y auditoría de seguridad de sistemas. Los acérrimos detractores de la consola pueden utilizar Zenmap, que es la GUI para Nmap.
No es solo un escáner "inteligente", es una herramienta extensible seria (de "características inusuales" cuenta con un script para verificar si un nodo tiene el gusano "Stuxnet" (mencionado aquí). Un ejemplo típico de uso es:

nmap -A -T4 localhost

-A para determinar la versión del sistema operativo, escanear usando scripts y realizar trazado
-T4 configuración de control de tiempo (más alto — más rápido, de 0 a 5)
localhost — host objetivo
¿Algo un poco más contundente?

nmap -sS -sU -T4 -A -v -PE -PP -PS21,22,23,25,80,113,31339 -PA80,113,443,10042 -PO --script all localhost

Este es un conjunto de opciones del perfil "slow comprehensive scan" en Zenmap. Se tarda bastante, pero al final ofrece información más detallada sobre el sistema objetivo. Guía de referencia en ruso, si decidieron profundizar, y también recomiendo la traducción del artículo Guía para principiantes de Nmap.
Nmap ha recibido el estatus de “Producto de Seguridad del Año” por revistas y comunidades como Linux Journal, Info World, LinuxQuestions.Org y Codetalker Digest.
Un dato interesante es que Nmap se puede ver en las películas "Matrix: Reloaded", "Die Hard 4", "The Bourne Ultimatum", "Gottabych" y otros.

IP-ToolsRevisión de herramientas gratuitas para pentesting de recursos web y más v2
IP-Tools — una especie de conjunto de diversas utilidades de red, viene con GUI, y está "dedicado" a los usuarios de Windows.
Escáner de puertos, recursos compartidos (impresoras/carpeta compartida), WhoIs/Finger/Lookup, cliente telnet y mucho más. Simplemente una herramienta cómoda, rápida y funcional.

No tiene mucho sentido considerar otros productos, ya que hay muchas utilidades en este campo y todas operan con principios y funcionalidades similares. Sin embargo, nmap sigue siendo el más utilizado.

Escáneres de vulnerabilidades en scripts web

Intentan encontrar vulnerabilidades populares (SQL inj, XSS, LFI/RFI, etc.) o errores (archivos temporales no eliminados, indexación de directorios, etc.)

Acunetix Web Vulnerability ScannerRevisión de herramientas gratuitas para pentesting de recursos web y más v2
Acunetix Web Vulnerability Scanner — en el enlace se nota que es un escáner de xss, pero no es del todo así. La versión gratuita, disponible en el enlace, ofrece una funcionalidad bastante amplia. Normalmente, la persona que ha ejecutado este escáner por primera vez y recibe un informe sobre su recurso experimenta un pequeño shock, y entenderás por qué al hacerlo. Es un producto muy potente para analizar una variedad de vulnerabilidades en un sitio web y funciona no solo con los sitios que conocemos en php, sino también en otros lenguajes (aunque la diferencia de idioma no es un indicador). No vale la pena describir las instrucciones, ya que el escáner simplemente “captura” las acciones del usuario. Algo parecido a “siguiente, siguiente, siguiente, listo” en la instalación típica de algún software.

NiktoRevisión de herramientas gratuitas para pentesting de recursos web y más v2
Nikto es un escáner web de código abierto (GPL). Elimina el trabajo manual rutinario. Busca en el sitio objetivo scripts no eliminados (como alguna test.php, index_.php, etc.), herramientas de administración de bases de datos (/phpmyadmin/, /pma y similares) y demás, es decir, verifica el recurso en busca de los errores más comunes, generalmente causados por factores humanos.
Además, si encuentra algún script popular, lo verifica en busca de exploits disponibles (que están en la base).
Informa sobre métodos "indeseables" disponibles, como PUT y TRACE
Y así sucesivamente. Es muy conveniente si trabajas como auditor y realizas análisis de sitios a diario.
Entre las desventajas, me gustaría señalar el alto porcentaje de falsos positivos. Por ejemplo, si su sitio web devuelve siempre la página principal en lugar de un error 404 (cuando debería ocurrir), el escáner indicará que su sitio tiene todos los scripts y vulnerabilidades de su base de datos. En la práctica, esto no ocurre tan a menudo, pero como hecho, mucho depende de la estructura de su sitio web.
Uso clásico:

./nikto.pl -host localhost

Si necesita estar autenticado en el sitio, puede establecer la cookie en el archivo nikto.conf, la variable STATIC-COOKIE.

WiktoRevisión de herramientas gratuitas para pentesting de recursos web y más v2
Wikto — Nikto para Windows, pero con algunas adiciones, como lógica 'difusa' al comprobar el código por errores, uso de GHDB, obtención de enlaces y carpetas del recurso, y monitoreo en tiempo real de las solicitudes/respuestas HTTP. Wikto está escrito en C# y requiere .NET framework.

skipfishRevisión de herramientas gratuitas para pentesting de recursos web y más v2
skipfish — escáner de vulnerabilidades web de Michal Zalewski (conocido por su apodo lcamtuf). Está escrito en C, es multiplataforma (para Windows necesita Cygwin). Recorre recursivamente (y de forma muy lenta, alrededor de 20 a 40 horas, aunque la última vez funcionó durante 96 horas) todo el sitio y encuentra diversas brechas de seguridad. También genera una gran cantidad de tráfico (varios gigabytes entrantes/salientes). Pero todos los medios son válidos, especialmente si hay tiempo y recursos.
Uso típico:

./skipfish -o /home/reports www.example.com

En la carpeta 'reports' habrá un informe en html, ejemplo.

w3af Revisión de herramientas gratuitas para pentesting de recursos web y más v2
w3af — Web Application Attack and Audit Framework, escáner de vulnerabilidades web de código abierto. Tiene GUI, pero también se puede trabajar desde la consola. Más bien, es un marco con un montón de plugins.
Hablar de sus ventajas puede llevar tiempo, es mejor probarlo :)
El trabajo típico con él se reduce a elegir un perfil, especificar el objetivo y, propiamente dicho, ejecutar.

Mantra Security FrameworkRevisión de herramientas gratuitas para pentesting de recursos web y más v2
Mantra es un sueño que se hizo realidad. Colección de herramientas libres y abiertas para la seguridad informática, integradas en el navegador web.
Son muy útiles al probar aplicaciones web en todas las etapas.
Su uso se reduce a instalar y ejecutar el navegador.

De hecho, hay muchas más utilidades en esta categoría y es bastante difícil destacar una lista específica. A menudo, cada pentester determina su propio conjunto de herramientas necesarias.

Explotación

Para un uso más automatizado y conveniente de las vulnerabilidades en software y scripts, se escriben exploits que solo necesitan recibir parámetros para aprovechar la brecha de seguridad. También existen productos que eliminan la necesidad de buscar exploits manualmente, aplicándolos incluso "al vuelo". Esta es la categoría de la que hablaremos ahora.

Metasploit Framework Revisión de herramientas gratuitas para pentesting de recursos web y más v2
El Framework Metasploit® es un auténtico monstruo en nuestro campo. Tiene tantas capacidades que la guía se extendería a varios artículos. En esta ocasión, analizaremos el exploit automático (nmap + metasploit). La idea es que Nmap analizará el puerto que necesitamos, identificará el servicio y Metasploit intentará aplicar exploits en función de la clase del servicio (ftp, ssh, etc.). En lugar de una instrucción textual, incluiré un video bastante popular sobre el tema autopwn.

Reproducir video

También se puede automatizar el trabajo de un exploit específico. Por ejemplo:

msf > usar auxiliar/admin/cisco/vpn_3000_ftp_bypass
msf auxiliar(vpn_3000_ftp_bypass) > establecer RHOST [TARGET IP]
msf auxiliar(vpn_3000_ftp_bypass) > ejecutar

En realidad, las capacidades de este framework son muy amplias, así que, si decidiste profundizar, puedes ir a el enlace

ArmitageRevisión de herramientas gratuitas para pentesting de recursos web y más v2
Armitage es un GUI de ciberpunk OVA para Metasploit. Visualiza el objetivo, recomienda exploits y proporciona funcionalidades avanzadas de este framework. En general, es ideal para quienes prefieren que todo se vea bonito y efectivo.
Screencast:

Reproducir video

Tenable Nessus®Revisión de herramientas gratuitas para pentesting de recursos web y más v2
El escáner de vulnerabilidades Tenable Nessus® ofrece muchas funcionalidades, pero de él necesitamos una en particular: determinar para qué servicios hay exploits disponibles. La versión gratuita del producto es solo para "uso doméstico".

Uso:

  • Descargamos (para nuestro sistema), instalamos, registramos (la clave llega por correo).
  • Iniciamos el servidor y añadimos un usuario en Nessus Server Manager (el botón Administrar usuarios).
  • Accedemos a la dirección
    https://localhost:8834/

    y obtenemos un cliente flash en el navegador.

  • Escaneos -> Añadir -> llenamos los campos (elegimos el perfil de escaneo adecuado) y hacemos clic en Escanear.

Después de un rato, el informe de escaneo aparecerá en la pestaña Informes.
Para comprobar la vulnerabilidad práctica de los servicios a los exploits, se puede utilizar el Metasploit Framework descrito anteriormente o intentar encontrar un exploit (por ejemplo, en Explot-db, packet storm, explot search y otros) y utilizarlo manualmente contra su sistema.
IMHO: demasiado voluminoso. Lo mencioné como uno de los líderes en esta dirección en la industria del software.

Automatización de inyecciones.

La búsqueda de inyecciones es realizada por muchos escáneres de seguridad de aplicaciones web, pero en realidad son solo escáneres generales. También existen utilidades que se especializan en la búsqueda y explotación de inyecciones. De ellas hablaremos ahora.

sqlmapRevisión de herramientas gratuitas para pentesting de recursos web y más v2
sqlmap — herramienta de código abierto para la búsqueda y explotación de inyecciones SQL. Soporta bases de datos como: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase, SAP MaxDB.
El uso típico se reduce a la siguiente línea:

python sqlmap.py -u "http://example.com/index.php?action=news&id=1"
Hay suficientes manuales, incluidos en ruso. El software facilita enormemente el trabajo del pentester en este ámbito.
Agregaré una demostración oficial en video:

Reproducir video

bsqlbf-v2
bsqlbf-v2 — script en Perl, brute forcer para inyecciones SQL "ciegas". Funciona tanto con valores enteros en la URL como con cadenas (string).
Soporta bases de datos:

  • MS-SQL
  • MySQL
  • PostgreSQL
  • Oracle

Ejemplo de uso:

.\/bsqlbf-v2-3.pl -url www.somehost.com\/blah.php?u=5 -blind u -sql "select table_name from imformation_schema.tables limit 1 offset 0" -database 1 -type 1

-url www.somehost.com/blah.php?u=5 — Enlace con parámetros
-blind u — parámetro para la inyección (por defecto toma el último de la cadena de URL)
-sql "select table_name from information_schema.tables limit 1 offset 0" — nuestra consulta arbitraria a la base de datos
-database 1 — servidor de base de datos: MSSQL
-type 1 — tipo de ataque, inyección "ciega" basada en True y Error (por ejemplo, errores de sintaxis) respuestas

Depuradores

Estas herramientas son principalmente utilizadas por desarrolladores, en caso de problemas con los resultados de su código. Pero esta dirección también es útil en pentesting, ya que se pueden reemplazar los datos que necesitamos 'en el acto', analizar lo que se recibe en respuesta a nuestros parámetros de entrada (por ejemplo, durante el fuzzing), etc.

Burp Suite
Burp Suite — conjunto de utilidades que ayudan en las pruebas de penetración. En la red hay una buena revisión en ruso de Raz0r (aunque es del año 2008).
La versión gratuita incluye:

  • Burp Proxy — proxy local que permite modificar solicitudes ya formadas desde el navegador
  • Burp Spider — araña que busca archivos y directorios existentes
  • Burp Repeater — envío manual de solicitudes HTTP
  • Burp Sequencer — análisis de valores aleatorios en formularios
  • Burp Decoder — codificador-decodificador estándar (html, base64, hex, etc.), de los cuales hay miles que se pueden escribir rápidamente en algún lenguaje
  • Burp Comparer — componente para comparar cadenas

En principio, este paquete resuelve prácticamente todas las tareas relacionadas con esta área.

FiddlerRevisión de herramientas gratuitas para pentesting de recursos web y más v2
Fiddler — Fiddler es un proxy de depuración que registra todo el tráfico HTTP(S). Permite investigar este tráfico, establecer puntos de interrupción y 'jugar' con los datos entrantes o salientes.

También existe Firesheep, monstruo Wireshark y otros, la elección es del usuario.

Conclusión

Por supuesto, cada pentester tiene su propio arsenal y su conjunto de herramientas, ya que simplemente hay muchas. He intentado presentar algunas de las más cómodas y populares. Pero para que cualquier interesado pueda conocer también otras herramientas en este ámbito, proporcionaré enlaces a continuación.

Diversas listas/ranking de escáneres y herramientas

Distribuciones de Linux que ya incluyen un montón de herramientas para pentesting

upd: Documentación de BurpSuite en ruso por el equipo de 'Hack4Sec' (agregado AntonKuzmin)

P.S. No se puede pasar por alto a XSpider. No participa en la revisión, aunque es condicionalmente gratuito (me enteré cuando envié el artículo a SecLab, de hecho por eso (no por falta de conocimiento, y ni tenía la última versión 7.8) y no lo incluí en el artículo). Y se planeaba su revisión (tengo pruebas difíciles preparadas para ello), pero no sé si el mundo lo verá.

P.P.S. Parte del material del artículo se utilizará para su propósito original en la próxima presentación en CodeFest 2012 en la sección QA, en la que se discutirán herramientas no mencionadas aquí (gratuitas, por supuesto), así como se explicará el algoritmo sobre cómo usar qué, qué resultados esperar, qué configuraciones usar y varios trucos y consejos al trabajar (reflexiono sobre la presentación casi todos los días, trataré de compartir lo mejor que pueda sobre el tema).
Por cierto, en torno a este artículo hubo una sesión en Open InfoSec Days (tag en Habr, el sitio web), se puede saquear caravana echar un vistazo materiales.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster