03 febrero 2014

mkspoof: Agilizando escenarios MITM

Nos ha tenido que pasar a todos que para realizar un análisis, presentar unos resultados o crear un escenario "tipo" nos hemos visto envueltos en un bucle sin fin donde introducimos una y otra vez los mismos comandos.

Hoy os acerco un script desarrollado en Perl y adaptado a las herramientas incluidas en Kali Linux que suelo utilizar en análisis donde es necesario ejecutar un ataque MITM (man-in-the-middle):


Como veis arriba, si ejecutáis el script sin introducir ningún parámetro os devolverá la leyenda con las posibilidades de las distintas configuraciones de la herramienta que se resumen en lo siguiente:

Entorno MITM

Utilizará como base la herramienta arpspoof para generar paquetes ARP y envenenar en los dos sentidos a las máquinas que defináis a través de los parámetros interfaz de red ( -i ), víctima1( -h1 ) y víctima2 ( -h2 ), por ejemplo:

./mkspoof.pl -i=eth0 -h1=192.168.0.1 -h2=192.168.0.110 -ssl

Al ejecutar el comando se creará un nuevo directorio con la fecha y hora de ejecución y donde se recogerán los resultados devueltos por las siguientes herramientas que se inician en combinación con la técnica de ARP spoofing:
  • Driftnet. Inspecciona el tráfico y almacena contenido multimedia en el directorio de salida.
  • Wireshark. No necesita presentaciones..., analizador de paquetes que capturará todo el tráfico de red que traspase la interfaz de red especificada. Guarda la salida en un fichero .pcap en el directorio de salida.
Finalmente, a través de su último parámetro permite encadenar el comportamiento anterior con las siguientes  combinaciones de herramientas:
  • -ssl
    • Opción orientada a interceptar tráfico HTTPS
    • Configura una redirección por iptables para dirigir el tráfico HTTP por la herramienta sslstrip y de esta manera intentar forzar el contenido HTTPS a HTTP. Guarda la salida en un fichero "captura_http.txt"
    • Ejecuta urlsnarf para capturar todos los enlaces seguidos durante la sesión.
  • -dns 
    • Opción orientada a combinar el ARP Spoofing con un DNS Spoofing
    • Ejecuta la herramienta dnsspoof. Leerá la resolución de nombres de un fichero "dns_hosts_spoof.txt" que debe encontrarse en el mismo directorio que el script. Si el fichero no existe será creado por la herramienta con datos de prueba.
    • Ejecuta urlsnarf para capturar todos los enlaces seguidos durante la sesión.
  • -burp
    • Opción orientada a redirigir el tráfico al proxy Burp
    • Ejecuta la herramienta Burp para capturar el tráfico HTTP/HTTPS intervenido por el MITM. Tener en cuenta que en caso de tráfico HTTPS, al emitir Burp un cerficado desde la máquina atacante a la víctima, el usuario será consciente del ataque.
Cuando ejecutemos el script con estos parámetros, veremos como se ejecutan todos estos comandos en diferentes consolas presentándose un escenario como el siguiente:

Deteniendo el escenario

Para finalizar la ejecución de todas las aplicaciones que ha iniciado el script sólo hay que ejecutar el comando:

./mkspoof.pl -d

El script se encargará de cerrar todas las consolas, guardar los logs, restaurar los valores del sistema y mostrarnos la carpeta en la que se ha recogido toda la información:




Espero que os sea útil y lo podáis adaptar a vuestras necesidades ;) .

---- > Enlace (pastebin) < ----

Artículo cortesía de Miguel Ángel García.

3 comments :

masticover dijo...

Hola Miguel Ángel.

Mirando el código por encima he visto la función "EsIPv4Valida"

sub EsIPv4Valida
{
return $_[0] =~ m/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/;
}



¿No se comprueba que los valores de cada octeto de la IP no sean mayores que 255 en algún momento? Para evitar que valores de IP como 368.517.829.736 sean válidos (duele la vista :)) )


Enhorabuena por la herramienta y gracias por compartirla.


Saludos.

dexafree dijo...

La regex deberia ser

return $_[0] =~ m/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}/;

Miguel Ángel García dijo...

¡Tienes toda la razón!, se me ha quedado el procedimiento en una interpretación a lo Uplink: http://www.securitybydefault.com/2013/12/uplink-jugando-ser-hacker.html


En cuanto pueda lo actualizo para que no se quede ese dolor publicado :P, muchas gracias!