sábado, 24 de mayo de 2014

SSLstrip - Descifrando tráfico HTTPS





Hace ya una semana que en genbeta publicaron una entrada en la que comentaban la publicación que publicó Sandvine, en la que hablaban sobre que el tráfico cifrado (SSL) aumentaba considerablemente en Europa y Latinoamérica.


Esto no es algo que coja de sorpresa, ya que navegando se puede ver perfectamente cómo cada día aumenta la cifra de paginas web con cifrado web SSL.

Pero la pregunta es ¿realmente viajan seguras nuestras contraseñas porque implementen cifrado SSL servicios como google, facebook, twitter, etc...?

La respuesta dependerá como siempre de nuestro conocimiento, es decir, del factor humano.

Para entender mejor lo que quiero decir, pasemos a ver la herramienta de la que hoy os vengo a hablar, SSLstrip.


¿Qué es SSLstrip?

SSLstrip es una herramienta desarrollada en python que fué presentaba por Moxie Marlinspike allá en el 2009, en la conferencia de seguridad Black Hat.

Dicha herramienta se encarga básicamente de descifrar todo el tráfico HTTPS.

La página oficial es http://www.thoughtcrime.org/software/sslstrip/


¿Cómo funciona?

Para poder descifrar dicho tráfico es necesario que la víctima visite un enlace o realizar un ataque MitM, así SSLstrip se encargará de reemplazar todas las peticiones HTTPS por HTTP pudiendo sniffar todo el tráfico en texto plano.

No es que el protocolo SSL lo hayan roto criptográficamente (que se sepa públicamente), si no que simplemente se modifican las peticiones.

Para resultar efectivo este ataque, se requiere ser atacado mediante un enlace o una redirección, es decir, si la víctima escribe directamente la dirección https://www.pagina_web.com en la barra de direcciones no será vulnerable, siempre y cuando la redirección no sea mediante un ataque MitM ya que ahí si se podrían modificar las peticiones porque estaría pasando todo su tráfico por nuestra tarjeta de red.


Instalación

Su instalación es bastante simple.

Lo primero será descargarnos la herramienta:


Una vez descargado el archivo, lo descomprimimos:

tar zxvf sslstrip-0.9.tar.gz

Ahora lo instalamos con el siguiente comando:

sudo python ./setup.py install

Listo!!! ya tenemos instalada nuestra herramienta, veámos como funciona.



PoC

Lo primero que debemos hacer es preparar el enrutamiento, ya que si realizasemos directamente el ataque MitM dejaríamos a la víctima sin acceso a Internet y por lo tanto sería un desastre...

echo "1" > /proc/sys/net/ipv4/ip_forward

Después configuramos una IPTABLE para redirigir el tráfico del puerto 80 a otro puerto:

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000


Ahora empezamos a realizar el ataque MitM:



Por último, lanzamos SSLstrip a la espera de que nuestra víctima se conecte a algún servicio con cifrado SSL.




Ahora veámos que ocurre cuando la máquina víctima intenta acceder, por ejemplo, a paypal.


 Como se puede ver, se captura sin problemas las contraseñas, y esto mientras la víctima piensa estar segura por entrar con HTTPS.

¿El problema? Damos por sentado todo sin querer entender el por qué o el cómo, otro ejemplo que demuestra claramente que si seguimos dando por sentada la seguridad, seguiremos estando expuestos por mucho que se implementen protocolos seguros, ya que la seguridad depende mayormente de nosotros mismos.


Saludos.





Referencias:
http://www.redeszone.net/seguridad-informatica/sslstrip/
http://www.thoughtcrime.org/software/sslstrip/
https://www.youtube.com/watch?v=MFol6IMbZ7Y
http://www.genbeta.com/actualidad/el-trafico-cifrado-ssl-aumenta-considerablemente-en-europa-y-latinoamerica-segun-sandvine
http://unaaldia.hispasec.com/2009/02/el-ssl-no-esta-roto-o-si-i.html
http://unaaldia.hispasec.com/2009/02/el-ssl-no-esta-roto-o-si-y-ii.html


**No me hago responsable del mal uso que se de a la información presentada. Esta información es de carácter didáctico.** 


miércoles, 14 de mayo de 2014

Xplico - Análisis gráfico de red.




Buenas a tod@s!


Hoy vamos a hablar de otra magnífica herramienta que hará de nuestros tediosos trabajos analizando una red, una tarea sencilla y cómoda.

Dicha herramienta se llama Xplico, y con ella podremos analizar la red gráficamente pasándole previamente una captura de red (Archivos .pcap).

Esta herramienta trabaja tanto por interfaz web como por consola, por lo que aparte de su buen diseño resulta ser bastante cómoda e intuitiva si elegimos utilizar la interfaz.

Además permite acceder con distintos usuarios, y dentro de cada usuario, podemos crear los distintos casos que necesitemos.


Instalación

Bien, para su instalación tenemos 2 opciones:
  1. Descargarse directamente una imagen de máquina virtual con Xplico ya instalado.
  2. Instalarlo manualmente en el sistema que queramos tenerlo.

Si optáis por la primera opción, ya sea por vaguería, o para simplemente probar la tool, podéis hacerlo desde aquí.

Si por el contrario optáis por la segunda opción, tan solo debemos realizar los siguientes pasos:

Ubuntu 32/64bit from 13.10 to 11.04:

sudo bash -c 'echo "deb http://repo.xplico.org/ $(lsb_release -s -c) main" >> /etc/apt/sources.list'
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 791C25CE
sudo apt-get update
sudo apt-get install xplico
/etc/init.d/apache2 restart
/etc/init.d/xplico start

Kali Linux:

apt-get install tcpdump tshark apache2 php5 php5-sqlite build-essential perl zlib1g-dev libpcap-dev libsqlite3-dev php5-cli libapache2-mod-php5 libx11-dev libxt-dev libxaw7-dev python-all sqlite3 recode sox lame libnet1 libnet1-dev libmysqlclient15-dev
apt-get install xplico
/etc/init.d/apache2 restart
/etc/init.d/xplico start


Por si tenéis algún tipo de problema al instalarla, echarle un vistazo a la wiki.

Ahora para empezar a trabajar con la tool abriremos nuestro navegador y entraremos en la siguiente dirección: "127.0.1.1:9876".


Uso

Bueno, vamos a ver como funciona la herramienta subiendo un archivo pcap ya creado, yo ejecutaré una muestra de un Fake Antivirus que infectaba con ZeroAccess.

Lo primero que tenemos que hacer es loguearnos en el panel, las claves que vienen por defecto las encontraréis aquí.

Una vez entremos procederemos a crear un nuevo caso:



Ya tenemos nuestro primer caso abierto, ahora procederemos a crear la primera sesión para nuestro caso y subiremos el pcap a analizar.


Para saber que nuestra caputra se ha subido, tendremos que fijarnos en la parte superior izquierda, donde pone "estado", que pasará de "EMPTY" a "DECODING COMPLETED" cuando finalice.


Ahora sólo nos queda ir viendo en cada apartado (cuadro lateral izquierdo) los datos capturados:



Os dejo con un link de una demo online de esta fantástica herramienta por si decidís echarla un vistazo.

Xplico Online: http://demo.xplico.org/users/login

Y por si queréis descargaros pcap´s de muestras de malware o exploit kit´s para probar la herramienta o simplemente juguetear como queráis, os dejo el siguiente link:







Saludos!!!

Referencias:
http://www.xplico.org/
http://highsec.es/2013/09/como-analizar-el-trafico-capturado-xplico/
http://seguridadyredes.wordpress.com/2011/05/17/analisis-de-trafico-de-red-usando-xplico-en-modo-consola/
http://seguridadyredes.wordpress.com/2010/06/09/xplico-analizando-e-interpretando-nuestras-capturas-pcap/
http://seguridadyredes.wordpress.com/2010/06/11/xplico-analizando-e-interpretando-nuestras-capturas-pcap-algunas-consideraciones/ 



**No me hago responsable del mal uso que se de a la información presentada. Esta información es de carácter didáctico.**  






domingo, 4 de mayo de 2014

Cryptcat - Creando un chat simple, pero cifrado.




Después de que se diese a conocer el espionaje masivo que se esta haciendo en todo el mundo, la gente se ha echado las manos a la cabeza y ahora se siente todo el mundo inseguro.

Aunque profesionales de TI ya avisaban desde mucho antes que la seguridad no era ningún juego y había que tomarsela bien en serio, es a raíz de las filtraciones como las de Edward Snowden es cuando la gente ha empezado ha reaccionar y empezar a tomar medidas seguras en Internet.

Ya que está el panorama un poco revuelto... hoy os voy a hablar de Cryptcat.


¿Qué es Cryptcat?

Cryptcat es básicamente un Netcat pero encriptado, así de simple.

Algunos diréis: vale muy bien,  ¿y que c*****s es Netcat?

"Netcat es una herramienta de red que permite a través de intérprete de comandos y con una sintaxis sencilla abrir puertos TCP/UDP en un HOST (quedando netcat a la escucha), asociar una shell a un puerto en concreto (para conectarse por ejemplo a MS-DOS o al intérprete bash de Linux remotamente) y forzar conexiones UDP/TCP." (Véase Wikipedia)

Con Netcat toda la información viaja en texto plano, es decir, que si ponemos un sniffer en medio de la comunicación entre ambas partes podremos ver toda la información transmitida.

Para solucionar este problema, se creó Cryptcat, que aumenta la seguridad encriptando la comunicación.

Cryptcat utiliza el cifrado Twofish, el cual es un algoritmo de clave simétrica cuyo tamaño de bloque es de 128 bits y el tamaño de clave es de 256 bits (2 elevado a la 256 es el número de claves posibles),  por lo que utiliza la misma clave para cifrar y descifrar la comunicación, que si bien actualmente es considerado bastante robusto, sufre del mismo inconveniente que todos los algoritmos de este tipo, que la clave debe de ser conocida tanto por el emisor y el receptor y muchas veces el intercambio de esta clave se lleva a cabo en entornos “no seguros”.

La página oficial de Cryptcat es http://cryptcat.sourceforge.net/.


PoC

Bueno, ya sabemos un poquito más sobre esta magnífica herramienta, así que ahora pasemos a crearnos nuestro chat.

Este chat no tiene dibujitos, una interfaz gráfica, emoticonos ni nada por el estilo, ya que al ser por linea de comandos básicamente va a cumplir su función de chat encriptado y nada más, bueno sí, podremos transferir archivos.

Lo primero que haremos será ver las opciones que contiene con el parámetro "-h".


Sabiendo las opciones de las que disponemos, empezaremos poniendo en el "equipo 1" cryptcat a la escucha:


Con el parámetro "-l" indicamos que se ponga a la escucha, y con "-p 4444" indicamos que sea en el puerto 4444.

Ahora con el "equipo 2" conectaremos al "equipo 1" para establecer la comunicación y empezar a conversar.

Equipo 2 manda primer mensaje
Equipo 1 recibe mensaje y responde.
Equipo2 recibe la respuesta.

Ahora, vamos a ver como podríamos enviar un archivo:

Equipo 1 a la espera del archivo.
Equipo 2 envía el archivo.


Archivo recibido.

¿Habrá capturado algún tipo de información nuestro sniffer mientras se hacía la transferencia?


Visto lo visto podemos decir que no... xD

Espero que les haya gustado.



Saludos.



Referencias:
http://sourceforge.net/projects/cryptcat/files/cryptcat-win-1.2/1.0.0/
http://cryptcat.sourceforge.net/
http://thehackerway.com/2013/04/24/pasando-de-netcat-a-cryptcat/
http://www.g-loaded.eu/2006/11/06/netcat-a-couple-of-useful-examples/



**No me hago responsable del mal uso que se de a la información presentada. Esta información es de carácter didáctico.** 


sábado, 3 de mayo de 2014

Fuzzing - Directory Brute Forcing



Cada día nos encontramos con noticias sobre nuevas vulnerabilidades encontradas o algún ataque que aprovecha algún 0day que compromete miles de sistemas.

Hoy vamos a ver una técnica que se utiliza para infinitas tareas, como por ejemplo descubrir directorios en un sitio web, encontrar vulnerabilidades en algún software, etc.

Dicha técnica es la denominada Fuzzing (Test Fuzz).


¿Qué es el Fuzzing?

Se llama fuzzing a las diferentes técnicas de testeo de software capaces de generar y enviar datos secuenciales o aleatorios a una o varias áreas o puntos de una aplicación, con el objetivo de detectar defectos o vulnerabilidades existentes en el software auditado.
Es utilizado como complemento a las prácticas habituales de chequeo de software, ya que proporcionan cobertura a fallos de datos y regiones de código no testados.


Para la prueba de concepto de hoy, vamos a utilizar esta técnica para descubrir directorios "ocultos" mediante fuerza bruta (Directory Brute Forcing), es decir, que no aparezcan a simple vista en la web, como pueden ser archivos de configuración, archivos de instalación, paneles de administración, etc.


Lo primero que haremos será descargarnos un Fuzzer:

Powefuzzer: http://www.powerfuzzer.com/

Wfuzz: http://www.edge-security.com/wfuzz.php

DirBuster: http://sourceforge.net/projects/dirbuster/


Yo utilizaré DirBuster por su interfaz gráfica y su comodidad.


¿Cómo funciona?

Para poder encontrar los directorios, ficheros o archivos que no podemos ver a simple vista en la web, el fuzzer realizará fuerza bruta mediante los métodos GET / HEAD.

Imaginemos que nuestra web es la siguiente: hxxp://www.webdepruebas.com/, y queremos encontrar su panel de administración.

Pues bien, si el panel está en la dirección hxxp://www.webdepruebas.com/panel/ y en el diccionario que le pasemos (si el ataque los hacemos por diccionario) al fuzzer tenemos la palabra "panel", al realizar el ataque de fuerza bruta obtendrá la respuesta del servidor con el código de estado que corresponda. (Ver significado de los códigos)

El código 200, significa que el directorio es correcto y es accesible, por lo que podremos acceder a él sin problemas.
Si recibimos un status 401, significa que el directorio es correcto, pero no es accesible por la configuración de seguridad.
Por el contrario, si recibimos un 404, significará que el directorio no ha sido encontrado.

Recomiendo leerse primero los significados de cada status antes de lanzarse a probar estas herramientas.


PoC

Bien, vamos a la prueba de concepto.

Según arrancamos DirBuster nos encontramos con la siguiente interfaz, en las que os voy a explicar brevemente para que sirve cada campo:

  1. Aquí escribiremos la dirección url del target, en el que podremos indicar el número de puerto al que atacar.
  2. Especificamos si queremos utilizar el ataque solamente mediante el metodo GET, o que pruebe mediante HEAD / GET.
  3. Elegimos la velocidad con la que realizará las peticiones. Si elegimos "Go Faster" subirá a 200.
  4. Aquí podremos elegir si realizar el ataque por fuerza bruta, o mediante diccionario.
  5. Seleccionamos donde queremos realizar el fuzzing, a partir de la raíz ( / ) o si queremos buscar un archivo (/test.html?url={dir}.asp).
  6. Una vez configurado todo, pulsaremos "Start" para empezar con el ataque.

En la siguiente ventana se nos mostrarán las peticiones realizadas con su correspondiente status.


También podemos visualizarlo en modo árbol de directorios:


Una vez finalizado, podremos generar el reporte:


Como hemos podido ver, hay un fichero llamado "login.asp" con status 200, veámos que contiene...


Al parecer no ha sido un falso positivo y sí que se puede acceder a él, en este caso se trata de un panel de login como su nombre indica, pero podríamos encontrar todo tipo de archivos o directorios según cuán en serio se hayan tomado la seguridad del sitio web.

Os dejo con un video para que veáis el funcionamiento de otro gran fuzzer: Wfuzz.




Saludos.



Referencias:
http://blog.s21sec.com/2007/07/nuevo-artculo-fuzzing-y-seguridad.html
http://eternal-todo.com/files/articles/fuzzing.pdf
https://www.owasp.org/index.php/Fuzzing
http://www.aqualab.cs.northwestern.edu/conferences/HotWeb08/papers/Hammersland-FTW.pdf
http://hack2sec.wordpress.com/2009/04/08/fuzzing/


**No me hago responsable del mal uso que se de a la información presentada. Esta información es de carácter didáctico.**