Identificar correctamente las tecnologías subyacentes que se ejecutan en un sitio web brinda a los pentesters una ventaja considerable al preparar un ataque. Ya sea que estés probando las defensas de una gran corporación o jugando el último CTF (Capture The Flag), descubrir qué tecnologías utiliza un sitio es una habilidad crucial para el pen-tester.
Conocer la tecnología y la base de código utilizada para construir un sitio puede acelerar las cosas al eliminar posibles vectores de ataque o exploits que sabemos que no funcionarán. Pero también puede reducir las posibilidades de que se detecte tu penetración al generar menos alarmas.
Hoy exploraremos una herramienta llamada WebTech para sacar a la luz estas tecnologías.
1. Qué es WebTech
WebTech es una herramienta Python de código abierto utilizada para identificar tecnologías web. Puedes utilizarlo de varias maneras, incluso como una herramienta de línea de comandos, como una extensión de Burp Suite y como una biblioteca de Python para secuencias de comandos.
Hay otras herramientas disponibles para lograr este objetivo, como Wappalyzer , una extensión de navegador de uso común u otras alternativas en línea como W3Techs o esta de Pentest-Tools . Pero WebTech destaca de una manera que es extremadamente modular y fácil de usar, especialmente cuando se trata de secuencias de comandos Python (scripting).
La fase de reconocimiento es esencial en el proceso de hacking ético o prueba de penetración. El viejo dicho “mide dos veces, corta una vez” se mantiene aquí.
2. Instalar y usar
Para usar WebTech, primero debemos instalarlo. Si bien puedes usar WebTech en cualquier sistema operativo que admita Python, te mostraré aquí cómo funciona en Parrot OS (o cualquier otra distribución basada en Debian).
Primero, asegúrate de tener Python instalado en tu dispositivo; podemos verificar con el comando which
:
which python
Si no ves ningún resultado de esto, instálalo con el administrador de paquetes:
apt-get install python
Luego, instala pip
, un sistema de administración de paquetes para Python, con el siguiente comando:
apt-get install python-pip
Ahora finalmente podemos instalar WebTech:
pip install webtech
Simplemente escribe webtech
en la terminal para mostrar su uso y opciones:
webtech
El uso más básico de la herramienta es con el indicador -u
para especificar una URL para escanear:
webtech -u https://esgeeks.com/
Aquí podemos ver las tecnologías que detectó que utiliza el sitio, a veces también algunos encabezados interesantes. Esta información puede ser útil al preparar un ataque, ya que reducir las variables adicionales innecesarias puede disminuir drásticamente el tiempo necesario para tener éxito.
Esta herramienta también nos permite especificar un agente de usuario personalizado, que a veces se puede utilizar para sondear el sitio en busca de diferentes respuestas dependiendo de cómo esté configurado. Los agentes de usuario son un medio para identificar el navegador y el sistema operativo en el servidor web, enviado como una cadena de texto en los encabezados HTTP.
Aquí hay una base de datos de prácticamente cualquier agente de usuario que puedas pensar para ayudarte con tu sondeo.
Encuentra el agente de usuario que deseas probar y agrégalo a esta cadena después de tu URL --ua = ''
. Así es como se ve:
webtech -u https://esgeeks.com/ --ua='Mozilla/5.0 (Linux; Android 6.0.1; SM-G920V Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36'
Aquí configuramos el agente de usuario para que imite un Samsung Galaxy S6, aunque no obtuvimos resultados diferentes. A veces, por ejemplo, si hay un error en un navegador específico, el servidor enviará una respuesta diferente dependiendo del agente del usuario.
También podríamos establecer un agente de usuario aleatorio si quisiéramos, usando el indicador --random-user-agent
, que seleccionará aleatoriamente un agente de usuario para usar.
El uso de la línea de comandos de WebTech es definitivamente útil al identificar las tecnologías subyacentes de un sitio web, pero lo que realmente destaca es su capacidad para ser utilizado en scripts.
3. Scripting con WebTech
Puedes usar WebTech en cualquier script de Python simplemente importando la biblioteca. Esta flexibilidad es la característica más útil de la herramienta, en mi opinión, ya que puedes integrarla en cualquier otro script donde sea importante determinar en qué se basa un sitio web.
Por ejemplo, WebTech podría usarse como parte de un script de huellas digitales más grande junto con escaneos de puertos y enumeración de servicios. También sería útil en scripts de exploits, donde los detalles del exploit cambian ligeramente dependiendo de la plataforma.
Escribamos un script de demostración rápida para mostrarlo en acción. Crea un archivo Python con el editor de texto que prefieras; en este caso, usaré nano
, ya que es fácil:
nano scan.py
La primera línea debe indicarle al script cómo ejecutarlo apuntando a nuestro binario de Python:
#!/usr/bin/python
A continuación, necesitamos una declaración import
para importar la biblioteca WebTech:
import webtech
Entonces podemos comenzar una nueva instancia con la variable wt
:
wt = webtech.WebTech()
E iniciar un análisis de la URL deseada (también tuve que establecer un tiempo de espera breve o no funcionaría) y guárdalo en la variable de results
:
results = wt.start_from_url('https://esgeeks.com/', timeout=1)
Finalmente, podemos imprimir los resultados del escaneo en la pantalla:
print results
El script final debería verse así:
#!/usr/bin/python
import webtech
wt = webtech.WebTech()
results = wt.start_from_url('https://esgeeks.com/', timeout=1)
print results
Ahora podemos ejecutar nuestro script con el comando python
que configuramos arriba:
Aquí podemos ver que hemos obtenido los mismos resultados que antes. Ten en cuenta que esto era solo una simple prueba de concepto: podríamos hacer esto mucho más robusto si quisiéramos.
Lo que esto hace es demostrar cuán potencialmente útil podría ser WebTech al integrarlo en otros scripts o herramientas.
4. Terminando
En este artículo, aprendimos sobre WebTech, una herramienta de Python utilizada para identificar tecnologías de sitios web.
Vimos cómo instalarlo con pip
y ejecutarlo desde la línea de comandos con facilidad. También exploramos su verdadero poder, la capacidad de ser utilizado como una biblioteca de Python, escribiendo nuestro pequeño script. WebTech facilita conocer tu objetivo durante la fase de reconocimiento, brindándote la ventaja al planificar un ataque.
¿Te ha gustado este artículo? Sigue este blog en su fanpage de Facebook, Twitter, Instagram y/o YouTube para que no te pierdas del mejor contenido informático y hacking!