lunes, 25 de febrero de 2013

Enfrentando un servidor radius - Red Eduroam


  Esta entrada voy a comentar como enfrentarnos a puntos de acceso que poseen una autenticación mediante un servidor radius. Un ejemplo de este tipo de protección es la red Eduroam presente en gran cantidad de universidades a lo largo de todo el mundo.

   Dicha entrada se dividirá en 4 puntos. El primero centrado en la configuración del entorno, los dos siguientes comentando el ataque, primero de una forma simple (o de botón gordo que dice mi compañero @TheXC3LL) y el último mostrará un ejemplo basado en la red Eduroam comentada antes.

  Para realizar el ataque se utilizaran principalmente 2 herramientas, una para crear el punto de acceso y otra para actuar como servidor de autenticación. La primera será hostapd que nos permite crear un punto de acceso similar a la herramienta airbase-ng de la suite Aircrack-ng, mientras que la segunda es FreeRADIUS, concretamente una versión parcheada ya instalada en Backtrack y que, como su nombre indica, actúa como servidor de radius.



Preparando el entorno

  Este punto está centrado en las configuraciones previas que tuve que realizar en Backtrack 5 R3  para que todo me funcionase correctamente, pues determinadas versiones del software que traía la distribución no funcionaban correctamente con mi hardware.


(Puede que el siguiente paso no tengáis que realizarlo para que os funcione, pero a mi me hizo falta debido a mi hardware y a alguien que se encuentre en mi misma situación puede servirle de ayuda ;) )

  La herramienta hostapd que viene preinstalada en Backtrack funcionaba correctamente con mi hardware (una atheros AR9271)  y en mi caso he tenido que instalar la ultima versión disponible.

  Primero descargamos el archivo de la web de hostapd:
wget http://hostap.epitest.fi/releases/hostapd-2.0.tar.gz
Lo extraemos:
tar xzvf hostapd-2.0.tar.gz

 En el siguiente paso instalamos un par de librerías necesarias para su compilación:
apt-get install libnl-dev
 A continuación procedemos con la compilación:
cd hostapd-2.0
cd hostapd
cp defconfig .config
make

   Una vez tenemos todo compilado solo nos queda instalarlo:
make install
hostapd -v


(El siguiente paso es necesario para todos)

  Generamos los certificados que utilizará el servidor radius:
./bootstrap

y los copiamos a:
cp -r * /usr/local/etc/raddb/certs



Ejemplo con easy-creds

  La realización del ataque con este script no puede ser más sencillo, pues basta definir apenas tres parámetros para verlo en marcha.

  El primer paso es acceder al submenú de los ataques a infraestructuras inalámbricas (3 - FakeAP Attacks) y escoger la opción 4 (FreeRadius Attack).


  A continuación se nos preguntará por la interfaz a utilizar, el nombre del punto de acceso creado y el canal de éste, con esto ya tendremos un AP esperando a que alguien se conecte:


 Cuando una víctima se conecte, veremos su usuario y las frases de desafío/respuesta necesarias para la autenticación del cliente:


  Es en este punto es donde reside el mayor problema del ataque, pues no tenemos la contraseña en texto plano, sino que poseemos el par desafío/respuesta entre el cliente y servidor (un ejemplo de dicha autenticación es el protocolo MS-CHAP v2) y es necesario "resolverlo". Para esta tarea tenemos a nuestra disposición la herramienta asleap (aunque también es posible utilizar otras herramientas como John the Ripper) que realizará un ataque de diccionario:
asleap -C <challenge> -R <response> -W <diccionario>



Ejemplo sin easy-creds

  Siguiendo con el ejemplo anterior, ahora crearemos el mismo AP que antes pero a mano, es decir, sin el script easy-creds. Para ello primero configuraremos diversos archivos.

  Hostapd requiere de un archivo de configuración con las especificaciones del punto de acceso. Existen multitud de configuraciones posibles para este archivo en función de las especificaciones del punto acceso a crear, pero explicarlas todas no es la intención de esta entrada, por tanto, los interesado aquí podéis encontrar más información. En ésta veremos la información necesaria para el ataque y los parámetros interesantes que tenemos que modificar.

  Creamos un archivo con el siguiente contenido:
interface=<nombre de la interfaz>
driver=nl80211
ssid=<nombre del AP a crear>
logger_stdout=-1
logger_stdout_level=0
dump_file=/tmp/hostapd.dump
ieee8021x=1
eapol_key_index_workaround=0
own_ip_addr=127.0.0.1
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=secreto
wpa=1
hw_mode=g
channel=<canal del AP creado>
wpa_pairwise=TKIP CCMP
wpa_key_mgmt=WPA-EAP

  Los parámetros a modificar son:
  • interface => El nombre de la interfaz que creará el punto de acceso.
  • driver => Este campo en función de nuestra tarjeta de red será necesario cambiarlo.
  • ssid => El nombre del falso AP creado.
  • auth_server_shared_secret => Esta clave es compartida por el cliente y el AP para su autenticación, aunque a efectos prácticos no influye en el ataque, es necesario para las configuraciones.
  • channel => El canal del punto de acceso creado.
  Un vez configurado a nuestro agrado lo guardamos, por ejemplo, fakeAP.conf.


  
  Respecto a la configuración del servidor radius, es necesario configurar el archivo clients.conf, aunque previamente realizaremos un copia de seguridad de éste:
cp /usr/local/etc/raddb/clients.conf /usr/local/etc/raddb/clients.conf.bak
 A continuación lo adaptamos con los parámetros del secreto (auth_server_shared_secret) y del nombre del AP (ssid) especificados en el archivo de configuración del punto de acceso comentados antes (fakeAP.conf):

client localhost {
  ipaddr = 127.0.0.1
        secret = secreto
        require_message_authenticator = no
        nastype = other
}
client 192.168.0.0/16 {
       secret = secreto
       shortname = testAP
}
client 172.16.0.0/12 {
       secret = secreto
       shortname = testAP
}
client 10.0.0.0/8 {
       secret = secreto
       shortname = testAP
}


 Para más información sobre el archivo de configuración clients.conf podéis leer el este enlace.


  Una vez configurados los archivos pertinentes, creamos el archivo de logs de radius:
touch /usr/local/var/log/radius/freeradius-server-wpe.log

  Y con esto ya tenemos las configuraciones realizadas, queda lanzar ambas herramientas para  crear la "trampa". Primero lanzamos el servidor radius con:
radiusd -X



 Y a continuación lanzamos hostapd junto con el archivo de configuración creado antes:
hostapd fakeAP.conf

  Entonces cuando un cliente se conecte mostrará las credenciales como en el ataque anterior para después descifrarlas con asleap:
tail -f /usr/local/var/log/radius/freeradius-server-wpe.log



Ejemplo sin easy-creds  -- Eduroam

  El ataque a estas redes es similar al anterior simplemente tenemos que modificar algunos parámetros en los archivos de configuración del AP y el clients.conf para adaptarlos a dicha red. En el primer archivo tenemos que cambiar el ssid a eduroam:


 Mientras que en el segundo las apariciones de shortname las igualamos a eduroam:


 Creamos los archivos de log con touch y con tail esperamos que aparezcan las conexiones de las inocentes víctimas:


 Después lanzamos radiusd (radiusd -X):


   Y por último hostapd (hostapd apConf.conf):


  Cuando las víctimas se conecten tendremos resultados similares a los casos anteriores:


  Puesto que el descifrar la clave con asleap puede ser algo poco "práctico" ya que la contraseña puede no existir en nuestro diccionario, es posible realizar ataques de fuerza bruta, aunque el tiempo invertido en esto puede ser enorme.

  Para solucionar el impedimento del tiempo, existe una web que por un módico precio (unos 17$) nos prestan sus servicios para, con gran potencia de calculo, descifrar las claves:


 Dicha inversión podría ser muy interesante para alguien que quisiera obtener la clave de alguien importante...

NOTA: No he llegado a probar este servicio, así que no me hago responsable de nada ;)



¿Cómo nos protegemos?

  La forma de protegerse de este tipo de ataques se centra en utilizar el certificado proporcionado por los administradores de la red. Pongamos como ejemplo el caso de la red Eduroam, cuando nos conectamos a ésta y no especificamos dicho certificado nos aparece una advertencia:


  Podemos ignorarla y la red funcionara perfectamente pues no es obligatorio utilizarlo. Aunque si existe un punto de acceso falso al alcance de nuestra tarjeta de red, cuando ésta busque redes para conectarse, si el AP fraudulento ofrece mejor cobertura que el legitimo automáticamente entregaremos nuestras credenciales al atacante. 

  Para evitar que ocurra lo comentado anteriormente debemos descargar el certificado (en el caso de la red eduroam aquí) y seleccionarlo a la hora de conectarnos a la red:


  Con este simple paso evitamos que se conecte a puntos de acceso creados por terceros con malas intenciones.




Fuentes / Ampliar información



 En resumen, nos encontramos frente a un ataque cuya principal debilidad es el proceso de descifrar la clave pues requiere de ataques de diccionario o fuerza bruta, aunque servicios como CloudCracker permiten su obtención de forma mucho mas rápida aumentando notablemente su peligrosidad.

 Nos leemos en breve ;)

5 0verl0ad Labs: febrero 2013   Esta entrada voy a comentar como enfrentarnos a puntos de acceso que poseen una autenticación mediante un servidor radius . Un ejemplo ...

jueves, 21 de febrero de 2013

0verl0ad Podcast #0 (versión ALFA)

Saludos,

  Este fin de semana conseguimos grabar una versión alfa del podcast para probar qué tal nos desenvolvíamos. En teoría era sólo una prueba y no iba a ser publicado, pero al final hemos decidido sacar este capítulo "0" para que nos deis críticas y nos recomendéis de qué hablar.  La información está improvisada y muy dispersa, lo sabemos :P




Capítulo 0:

- Comentamos algunas noticias como los ataques a Facebook o Bit9 y la detención de la banda creadora del virus de la policía.

- Explicamos cómo deshabilitar java en Firefox y Chrome.

- Prácticas útiles para prevenir SQLi y XSS,

- Los Fake APs ¡Ten cuidado cuando te conectes a Wifi ajeno!

- Un par de plugins recomendables para Firefox(NoScript, Force-TLS) y Chrome(ScriptSafeKB SSL Enforcer).

- Ventajas y desventajas de Live HTTP Headers y Tamper data.

- Conocemos la aplicación de Android Wardrive.

Y para concluir, hacer mención a la cabecera llamada I need to know del grupo Sweet Danger con licencia Creative Commons.


  Podéis descargarlo aquí, esperamos vuestros comentarios ;)

 
Comentarios, quejas, recomendaciones y peticiones a @TheXC3LL@Aetsu


5 0verl0ad Labs: febrero 2013 Saludos,   Este fin de semana conseguimos grabar una versión alfa del podcast para probar qué tal nos desenvolvíamos. En teoría era sólo u...

miércoles, 20 de febrero de 2013

Trasteando con Easy-creds II


  Segunda entrada relacionada con Easy-creds, concretamente con la parte de wireless y los puntos de acceso falsos.
  Como he comentado muchas veces en el blog es muy peligroso conectarse a un punto de acceso acceso abierto, ya sea una cafetería o una red que aparece misteriosamente llamada InternetGratis, pues no sabemos quien puede estar detrás de dicha red o conectado a ésta.

  La herramienta Easy-creds tiene diversos ataques para suplantar puntos de acceso legítimos o ofrecer suculentas redes para los más temerarios. Para acceder a dicha sección basta con pulsar 3 el menú principal (FakeAP Attacks).


 Entre los ataques que se nos ofrecen aquí solo comentaré el primero (FakeAP Attack Static) y el tercero (Karmetasploit Attack). El cuarto es un ataque basado en suplantar un servidor radius (FreeRadius Attack), mientras que el quinto se basa en realizar un ataque a un punto de acceso y sus clientes (DoS AP Options). Por último, respecto al segundo (FakeAP Attack EvilTwin), en el siguiente enlace hay más información.

  Nota: Tened en cuenta que para estos ataques se requieren dos tarjetas de red, una que esté conectada a Internet y la otra para crear el punto de acceso.



FakeAP Attack Static

  Este primer ataque realizará todo lo visto en la entrada anterior relacionado con Ettercap, SSLstrip, URLSnarf y Dsniff aplicado a la red que crearemos nosotros abierta y disponible para cualquier incauto que se conecte.

  Una vez seleccionada la opción en el menú lo primero que nos preguntará es si queremos que se ejecute un ataque de sidejacking (Hamster). Acto seguido toca el turno a las tarjetas de red, la primera pregunta es por la que está conectada a la red, mientras que la segunda es la que creará el punto de acceso.


  El siguiente paso será especificar los datos de la red creada, como son el nombre de ésta y el canal. Una vez esté configurado, queda especificar la interfaz en modo monitor, la interfaz tunel que se creará y lo relativo al servidor DHCP.


  Una vez esté todo especificado el script (Easy-creds) se encargará de configurar iptables, lanzar todas las aplicaciones y que trabaje todo junto correctamente.




Karmetasploit Attack

  Dicho ataque lo traté en el paper #breaking80211 que escribí hace bastante tiempo y también publique una entrada el blog referente a el por tanto omitiré su funcionamiento. Estás lineas son para que los que nunca habéis probado este ataque os hagáis una idea de la cantidad de cosas que hay que configurar para ejecutarlo.
  En cambio con Easy-creds es muy sencilla su ejecución, es tan simple como configurar los datos de la red y el servidor DHCP como en el ejemplo anterior y listo:


  Ahora solo queda esperar que alguien se conecte y Karmetasploit se ejecutará para "atacar" a la incauta víctima:


  Con esto concluyo las dos entradas relacionadas con Easy-creds, un script que facilita enormemente la realización de determinados tipos de ataques, aunque recordad que siempre es mas divertido montarlo y configurarlo todo por uno mismo :D

Nos leemos en breve ;)


  
5 0verl0ad Labs: febrero 2013   Segunda entrada relacionada con Easy-creds, concretamente con la parte de wireless y los puntos de acceso falsos.   Como he comentado mu...

miércoles, 13 de febrero de 2013

Trasteando con Easy-creds I


  Easy-creds es una herramienta, o mejor dicho, un script que entrelaza y permite que interactuen diversas herramientas como pueden ser ettercap, SSLstrip o Metasploit entre otras. Respecto a su utilización es muy simple, pues permite poner a trabajar todo el software mediante unos menús intuitivos.

  Puesto que Backtrack 5 no lo lleva de base (o yo no lo he encontrado), descargamos de su web la última versión disponible (3.7.3 mientras escribo estas lineas) y la extraemos:
tar xzvf easy-creds-v3.7.3.tar.gzcd easy-credssh installer.sh
  Acto seguido nos aparecerá un menú para que escojamos el sistema sobre la que va a ejecutar el scrip. Puesto que Backtrack está basado en Ubuntu la opción número 1 será la adecuada.


  Cuando la instalación haya finalizado, para ejecutar easy-creds basta con llamarlo desde la terminal:
easy-creds

 La primera opción nos permite configurar o instalar/actualizar las diversas aplicaciones que interactuan con el script. Las dos siguientes pertenecen a ataques de envenenamiento (poisoning) y a la utilización de puntos de acceso falsos (fake AP), mientras las dos últimas están relacionadas con el correcto cierre de la aplicación.

  En esta entrada nos centraremos en la segunda que nos permitirá realizar el típico ataque de envenenamiento ARP (ARP poisoning).


  Una vez estemos en este submenú nos decantamos por la primera opción que nos permite buscar en la red las víctimas de nuestro ataque, tras pulsarla nos mostrará todos los equipos encontrados:


  Ahora nos permite editar el fichero donde se han almacenado los equipos detectados para que dejemos  solo aquellos que queramos atacar, una vez listo cerramos el fichero (CTRL + X) y procedemos con los siguientes puntos:


  Con los objetivos claros, pulsamos la segunda opción (Standard ARP Poison) y el programa nos preguntará varias cosas a fin de realizar el ataque correctamente. Dichas cuestiones son si se utiliza el fichero generado en el punto anterior, especificar la puerta de enlace de la red o si se realiza un ataque de robo de sesiones (sidejacking).


  Una vez todo configurado tendremos funcionando conjuntamente las herramientas Ettercap, SSLstrip, URL Snarf y Hamster.


  Para ver los resultados de estas herramientas, unos se mostrarán en las diversas terminales que se abren:

  Otros en la cuarta opción del menú principal de opciones (Data Review):


  Y para ver los resultados de Hamster, necesitamos adaptar nuestro navegador, en este caso Firefox. Para ello basta con configurar la utilización de un servidor proxy desde el menú de opciones (Firefox Preferences > Advanced > Network  > Settings y allí marcamos Manual proxy configuration) con los siguientes parámetros:
HTTP Proxy: 127.0.0.1Port: 1234

 Una vez configurado basta con visitar la dirección y veremos el menú de la aplicación:

En caso de que no funcionase la página web, es posible que no se haya lanzado correctamente la aplicación Hamster, para ello vamos al directorio de ésta y la ejecutamos:
cd /pentest/sniffers/hamster./hamster

Por último antes de cerrar la aplicación pulsamos en el menú principal la opción q (Quit current poisoning session) para finalizar correctamente todos los ataques y listo ;) :



  En la siguiente entrada mostraré la opción de los ataques de Fake AP ;) ,  nos leemos en breve.



5 0verl0ad Labs: febrero 2013    Easy-creds  es una herramienta, o mejor dicho, un script que entrelaza y permite que interactuen diversas herramientas como pueden ser e...

sábado, 9 de febrero de 2013

Hurgando con NetworkMiner



  NetworkMiner es una herramienta relacionada con la informática forense para Windows que permite extraer información de una captura de red (archivos pcap). Posee dos versiones, una de pago (500 €) y otra gratuita algo mas limitada, pero perfectamente funcional y es la que veremos en la entrada.

  Para descargarla nos dirigimos a la siguiente dirección y, en función de nuestros ingresos, escogemos la versión deseada:
http://www.netresec.com/?page=NetworkMiner
  Un a vez descargada y descomprimida no es necesario instalarla, basta con lanzar su ejecutable.


  Lo primero que vemos cuando abrimos la aplicación es una interfaz sencilla, formada por varias pestañas donde, una vez analizada la captura, serán clasificados los datos.

  Para empezar a trabajar existen dos posibilidades, o bien capturamos el trafico de la red con la misma aplicación o optamos por importar una captura realizada con otro programa (por ejemplo Wireshark). En esta entrada nos decantamos por la segunda opción e importaremos la captura, para ello basta con ir al menú File > Open y seleccionarla.

  Acto seguido NetworkMiner la analizará e irá organizando la información obtenida, ya sean IPs de las conexiones, imágenes, credenciales contenidas o peticiones DNS entre otros datos:






En resumen, una aplicación sencilla de utilizar y que pese a ser una versión limitada, ofrece interesantes posibilidades.

Nos leemos en breve ;)




5 0verl0ad Labs: febrero 2013   NetworkMiner  es una herramienta relacionada con la informática forense para Windows que  permite extraer información de una captura d...
< >