martes, 19 de octubre de 2010

Xplico - analizador de trafico de red

Bien, despues de darle muchas vueltas, he decidido hace un "mini" tutorial sobre este programa. Le he dado vueltas por la sencilla razon de que hay mucho "cotilla" de redes ajenas, asi que hacerme un favor... probad esto es vuestas redes y dejad a los demas en paz.

Este programa nos permite analizar las capturas hechas con programas como Tshark por ejemplo de una manera grafica por lo cual mucho mas comoda.

Como siempre tendremos que instalar las librerias necesarias para poder correr el programa:

sudo 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

y la hora de instalarlo yo personalmente he tenido problemas con la version 9.10 de ubuntu no se porque, pero con maverick 10.10 la verdad es que ninguno. Os podeis descargar de AQUI la version en paquete .deb para instalarlo.

Acto seguido iniciamos apache y por supuesto Xplico

sudo  /etc/init.d/apache2 restart
sudo /etc/init.d/xplico start


si todo ha ido bien ( que espero que si ) introducimos en nuestro navegador la siguiente direccion para tener acceso grafico al programa:

http://127.0.1.1:9876

poniendo como nombre de usuario y contraseña xplico/xplico


una vez dentro de la interfaz podremos crear un caso (case) el cual puede ser creado de dos maneras, a traves de un archivo .pcap capturado por Tshark o en una sesion en vivo a traves de alguna de nuestras interfaces de red.


una vez creado nuestro proyecto podemos acceder a el pinchando sobre su nombre y nos saldra algo bastante parecido a esto:


desde el programa podremos tener acceso a todo lo capturado desde VoIP hasta e-mails por ejemplo, pasando por videos, direcciones de internet e imagenes.

Hasta aqui os dejo yo... el resto del camino lo debereis hacer vosotr@s sol@s. Pero os dejo unas capturas.



sábado, 16 de octubre de 2010

ws.tcl

ws.tcl es una aplicacion escrita para remplazar a wesside-ng porque este no tiene tasas de exito tan altas como del que vamos a hablar a continuacion.

necesitaresmo tener instalado TLC 8.3 + para poder hacer andar este script. Aqui un ejemplo de uso:

root@Blue:/home/gm# ./ws.tcl XXXXX ath0 11
Device MAC XX:XX:XX:XX:XX:XX
AP MAC XX:XX:XX:XX:XX:XX
Associated successfully.
Running fragmentation attack...
Running chopchop attack...
Listening for ARP packets...
Got keystream...
Injecting generated packet...
Packet capture started.
Replaying ARP packets.
Starting crack...
KEY FOUND! [ XX:XX:XX:XX:XX ] (ASCII: XXXXX )
Cleaning up...
Time taken: 97 seconds
root@Blue:/home/gm#



Los pasos que sigue el programa son estos:

1) Busca el AP y el BSSID, y tambien localiza las macs asociadas
2) Se asocia con el AP
3) Se ejecuta aireplay-ng -3 contra el AP
4) Se ejecuta aireplay-ng -4 contra el AP
5) Se ejecuta aireplay-ng -5 contra el AP

6) Si aireplay-ng -3 encuentra un paquete, omite el paso 6)

6) Cuando aireplay-ng -4 o -5 tiene exito, genera paquetes ARP y re-inyecta.
7) termina aireplay-ng -4
8) Elimina aireplay-ng -5
9) Elimina aireplay-ng
10) Se ejecuta aircrack-ng
11) Cuando la clave se encuentra, mata al resto de aireplay-ng
12) Muestra la clave
13) Limpia, y da el tiempo transcurrido


Y su uso seria asi:

./ws.tcl AP Interfaz_wifi Canal

R-WlanXDecrypter 0.9

Este es un generador de claves por defecto de una compañia llamada R de Galicia, conocidas como las R-wlanX y nombres similares.

Voy a hacer un copy paste del post del creador del programa que el lo explica mucho mejor de lo que lo puedo hacer yo.

Analisis

Lo primero es aclarar que ni el SSID ni la MAC dan detalles sobre la clave. El numero del SSID normalmente suele ser el canal (aunque no siempre) del AP. No siempre se cumple el formato exacto de "R-WlanX", a veces se mezclan mayusculas minusculas, a veces hay espacios, a veces guiones, a veces nada separando las palabras; e incluso a veces se ven palabras adicionales en el SSID.

La manera más universal de definir las contraseñas por defecto de R es que son números seguidos de ceros. ¿Cuantos números antes de los 0's? Normalmente 8, en alguna ocasión 6. Ahora independiente de esto tenemos cuatro posibilidades de tipos de contraseñas por defecto (descartando contraseñas mayores de 128 bits):

  • Contraseña WEP 128 bit ASCII (ej.: "2010945600000") : El tipo de contraseña más común
  • Contraseña WEP 128 bit Hexadecimal (ej.: 20:10:94:56:00:00:00:00:00:00:00:00:00): Raras, pero haberlas hailas
  • Contraseña WEP 64 bit ASCII: Nunca he visto una de este tipo
  • Contraseña WEP 64 bit Hexadecimal (ej: 20:10:94:56:00): Se ven bastantes

¿Significan algo los números? ese tema es bastante misterioso:

-Algunas claves empiezan por un año (ej.: "2008") seguidas de 4 numeros aleatorios; se cree que el año es el de fabricación de router, pero nos encontramos muchos años futuros (ej.: "2023"), asi que no parece ser ese el caso. Igualmente la mayoría de claves empiezan por 2, si queremos reducir el intervalo de busqueda podemos empezar buscando claves que empiecen por 2

-En otros casos, sobre todo cuando se tratan de 6 numeros seguidos de 0's (en vez de 8 ) se cree que puede ser el número de telefono sin el prefijo. Saber esto no nos ayuda mucho, pero en caso de estas claves tan solo son 6 números seguidos de 0's en vez de 8, lo que reduce muy sustencialmente nuestro intervalo de busqueda

Bueno, independientemente del origen de los numeros, nos encontramos con que solo varían como máximo 8 digitos, que siempre son numeros, por lo que  tenemos 10^8=100.000.000 de posibilidades para cada tipo de contraseñas, que no son tampoco muchas. En un ordenador portatil actual de gama media se comprobarían todas las claves en unas 2 horas o menos aproximadamente.

Con esto terminamos el análisis y procedo a explicar la aplicación.

R-WlanXDecrypter

El programa soporta actualmente plataformas Unix y Windows. Trae múltiples opciones adicionales que explicaré mas tarde, son una manera de crear diccionarios más personalizados pero no es necesario saber utilizar estas opciones para crear los diccionarios básicos.


Opciones básicas

  • -n : Crea el diccionario para claves de 64bits, 128bits, etc... Aunque tambien es compatible para claves más grandes como 512bits nunca me he encontrado una de R de ese tipo. Si no especificamos el parámetro el programa coge una clave por defecto de 128bits
  • -h : Se creará un diccionario en formato hexadecimal, no es un formato alternativo de guardar las claves, sino que es un diccionario diferente a uno creado sin esta opción -h. El parametro es el caracter (en decimal) separador de los bytes expresados en formato hexadecimal, si no se especifica por defecto es : , que es el símbolo más utilizado para esta función y el que utiliza aircrack-ng

Utilizando solo estas opciones podemos crear diccionarios universales para las contraseñas de R. Por defecto el programa crea claves de 8 digitos seguido de 0's (y asi incluimos tambien a las de 6 dígitos)

-Primero crearemos un diccionario ASCII para contraseñas de 128bits, ocupará 1,40GB:

Código:
R-WlanXDecrypter rwlan128.txt

-Ahora crearemos un diccionario Hexadecimal para contraseñas de 64 bits, ocupará 1,48GB:

Código:
R-WlanXDecrypter rwlan64hex.txt -h -n 64

-Con esos dos diccionarios deberían bastar para la mayoría de routers de R. Aún asi siempre podremos generar un diccionario Hexadecimal para contraseñas de 128bits, ocupará 3,72GB:

Código:
R-WlanXDecrypter rwlan128hex.txt -h

-Tambien podremos crear un diccionario para claves ASCII de 64bits, aunque nunca vi ninguna de este tipo en R el diccionario tan solo ocupa 683KB:

Código:
R-WlanXDecrypter rwlan64.txt -n 64

Se supone que en estos diccionarios están todas las claves que puede contener un router de R, pero tenga en cuenta que pueda que existan claves de mayor longitud que 128bits, aunque nunca he visto ninguna hasta la fecha.

Opciones avanzadas:

  • -c : Por defecto en las palabras del diccionario varian 8 digitos y despues se rellenan con 0's asta completar la longitud de la clave. Se puede utilizar esta opción si queremos especificar otro numero de digitos variables
  • -cm : Por defecto las claves se rellenan con 0's. Con este parámetro podremos especificar otro carácter de relleno (especificar el codigo decimal del carácter)
  • -min : Con esta opción podemos definir el comienzo del diccionario especificando el valor mínimo. Se especifica el valor minimo excluyendo el relleno (es decir, solo contando el número formado por los bytes variables)
  • -max : Con esta opción podemos definir el final del diccionario especificando el valor máximo. Se especifica el valor máximo excluyendo el relleno (es decir, solo contando el número formado por los bytes variables)
  • -r: Si especificamos esta opción las palabras del diccionario estarán separadas por el byte LF (char 10). Por defecto están separadas por 2 bytes: CR+LF (char 13)(char 10). La mayoría de programas reconocen ambos formatos. Con esta opción ahorramos 1 byte por cada palabra.
  • -m : Hace lo mismo que -n (por eso no es compatible con esa opción) pero con esta opción podemos definir manualmente el número de bytes de la clave. Cuando hablamos de contraseñas de pongamos 128bits, 24 de estos se utilizan para el IV, por lo que la clave es realmente de solo (128-24)/8=13 bytes.-n 64 es equivalente a -m 5, -n 128 a -m 13, etc...
  • -q: No mostrara el estado del proceso de creación del diccionario

Con las opciones por defecto los diccionarios generados son de un gran tamaño y con muchas palabras, y se puede tardar mucho tiempo en comprobarlas todas dependiendo del equipo. Con estas opciones avanzadas podemos definir diccionarios más personalizados. Varios ejemplos útiles:

-Como ya hemos dicho, en algunas ocasiones las claves son solo 6 numeros seguidos de 0's, en ese caso crearemos los diccionarios anteriores (excepto el de 64bits ASCII ya que no tiene sentido reducirlo) pero para 6 bytes variables en lugar de 8. Los diccionarios creados ocupan tan solo 67,7MB los 3 juntos. De esta manera podemos hacer una comprobación rapida con el aircrack-ng para claves con 6 numeros variables antes de utilizar los diccionarios grandes:

Código:
R-WlanXDecrypter rwlan128-c6.txt -c 6
Código:
R-WlanXDecrypter rwlan64hex-c6.txt -h -n 64 -c 6
Código:
R-WlanXDecrypter rwlan128hex-c6.txt -h -c 6

-Ya nombramos que muchas de las contraseñas por defecto de R suelen empezar por 2. Utilizando -min y -max podremos definir diccionarios de solo ese rango (empiecen por 2). Los 3 diccionarios que estamos creando (128bits ascii, 64bits hex y 128bits hex) ocuparían la decima parte cada uno:

Código:
R-WlanXDecrypter rwlan128-start2.txt -min 20000000 -max 29999999
Código:
R-WlanXDecrypter rwlan64hex-start2.txt -h -n 64 -min 20000000 -max 29999999
Código:
R-WlanXDecrypter rwlan128hex-start2.txt -h -min 20000000 -max 29999999

Descarga

Incluye versiones compiladas para linux y windows y el código fuente.

-Versión actual (0.9 ):

-Mirror 1: http://www.fileden.com/files/2006/9/18/225525/R-WlanXDecrypter0.9.zip
-Mirror 2: http://www.megaupload.com/?d=2FMY7HWR

-Versiones antiguas (0.8 ):

-Mirror 1: http://www.fileden.com/files/2006/9/18/225525/R-WlanXDecrypter0.8.rar
-Mirror 2: http://www.megaupload.com/?d=8BF9OA1S

Changelog

v0.8 [06/10/2010]
-----------------
+Primer lanzamiento publico

v0.9 [11/10/2010]
-----------------
+Mostrar tamaño archivo final y numero de claves
+Mostrar status del proceso
+Añadido quiet mode -q
+Corregido bug en las opciones -min y -max
+Pequeña optimización del bucle generador de claves
+Corrección de pequeños fallos generales

Anexo: Como usar diccionarios Hexadecimales en aircrack-ng

Para definir en aircrack-ng un diccionario hexadeximal hay que especificar h: antes de la ruta del diccionario y siempre debemos especificar la longitud de las claves WEP del diccionario que estamos usando:

Código:
aircrak-ng -n 128 -w h:"rwlan128hex.txt" captura.cap
Código:
aircrak-ng -n 64 -w h:"rwlan64hex.txt" captura.cap

Aun así, en la versión actual de aircrack-ng 1.1, existen varios bugs y dificultades que impiden el correcto funcionamiento de los diccionarios hexadecimales. He creado un post al respecto aqui que explica detalladamente como solucionar este problema.

La informacion aqui expuesta esta extraida de www.seguridadwireless.net

domingo, 10 de octubre de 2010

Ubuntu 10.10 ya esta listo

Pues ya tenemos la ultima version de Ubuntu en su version 10.10 disponible para descargar. Se han añadido muchas mejoras con respecto a la 10.04.1 asi que el que quiera probar la tiene en la pagina oficial.

http://www.ubuntu.com/desktop/get-ubuntu/download


sábado, 9 de octubre de 2010

Wi-feye


Dando una vueltecilla por internet por aquellos sitios que sigo asiduamente me tope con esta herramienta que por lo menos se "vende" bastante bien, no he tenido tiempo de probarla pero prometo poneros mi impresiones sobre el programa y si cumple las espectativas que se supone que cumple.

Wi-fEye se compone de cuatro menus principalmente:

- Habilitar el modo monitor.
- Ver las redes wifi disponibles.
- Iniciar Airodump-ng sobre un determinado AP.

1.- Crackeo wep: Esto permite la automatizacion de los siguientes procesos.

  ~ Packet replay interactivo
  ~ Autentificacion falsa
  ~ Ataque ChopChop
  ~ Ataque de fragmentacion
  ~ Hirte Attack ( ataque cfrag )
  ~ Uso de wesside-ng
  ~ En el uso sobre wpa admite las siguientes funciones; ataque con diccionario y obtencion del handshake

2.- Mapa: este menu nos permitira hacer:

  ~ Buscar en red y ver los host conectados
  ~ Usar nmap automaticamente

3.- MITM: este menu es el mas interesante:

  ~ Habilitar el reenvio ip
  ~ ARP spoof
  ~ Lanzar ethercap en modo de texto
  ~ Esnifar trafico SSL/HTTPS
  ~ Detectar URLs y poder proyectarlas sobre el navegador
  ~ Capturar trafico de mensajeria instantanea
  ~ Esnifar imagenes
  ~ Usar DNs falsas
  ~ Secuestro de sesion usando Hamster

4.- Otros: este menu permitira las siguientes funciones automaticamente:

  ~ Cambiar la direccion mac
  ~ Actualizaciones de Hijack ( con Evilgrade )

Despues de esta breve expliacion vamos a intentar meternos en materia. Lo primero que tendriamos que hacer es descargar el programa y crear una carpeta donde poder meterlo:

wget http://wi-feye.za1d.com/download/Wi-fEye-v0.5.2.tar.gz
mkdir Wi-fEye
tar xvfz Wi-fEye-v0.5.tar.gz -C Wi-fEye

antes de iniciar por primera vez Wi-fEye necesitamos cambiar unas variables para que nos sea totalmente funcional:

Primero tendremos que descargar dos complementos, uno es Hamster y el otro Evilgrade los cuales yo recomendaria dejar dentro de la carpeta de Wi-fEye.
Despues de esto tendremos que editar el arhivo Wi-fEye.py ( con gedit por ejemplo ) y buscar estas lineas:

#Path to hamster + Ferret
hamster='/pentest/hamster/'
#Path to evilgrade
evilgradep = '/opt/evilgrade'


y cambiar los directorios de los programa que si aceptais mi sugerencia habreis dejado dentro de la carpeta del programa y guardamos el archivo con los cambios.

y para ejecutarlo solo deberemos teclear en una terminal:

sudo python Wi-fEye.py

y a empezar a trastear... os dejo unos videos para que veais esta herramienta en accion.

Download:
FLVMP43GP

FLVMP43GP




Nota informativa: Segun lo que queramos llegar a conseguir con el programa necesitariamos herramientas como pueden ser Aircrack-ng , Nmap , Ettercap , Msgsnarf y las dos que hemos comentado anteriormente

Recuperar contraseña Root

Bien, el otro dia me preguntaban que si tenias un fallo a la hora de poner las contraseñas como seria posible que pudieras recuperar esas contraseñas y la respuesta es muy sencilla... No puedes (almenos que yo sepa), pero podemos hacer otra cosa para intentar recuperar la contraseña de Root por si no nos acordamos o tenemos las manos llenas de dedos y nos equivocamos a la hora de teclearla.

Bien, lo primero que tenemos que hacer es encender el ordendor porque apagado no podemos hacer nada... y cuando salga el prompt del grub presiona la tecla escape y pulsa la letra e para editar.


Mira en cada linea la que corresponde a tu kernel en caso de tener mas de uno instalado y presiona de nuevo e.

Nos movemos hasta el final y agregamos esta linea: rw init=/bin/bash

Presionamos enter y despues b para iniciar el sistema. El sistema iniciara como Root sin contraseña.

Para asignarle una contraseña a la cuenta, solo tenemos que escribir passwd Usuario

y seguidamente escribes las contraseña ( que esa si la recuerdes ) y reiniciamos y listo.

Aviso: Este metodo de recuperacion utiliza un fallo de seguridad para restablecer la contraseña de una cuenta, para impedir sorpresas de este tipo recomiendo que se le aplique una contraseña al grub por seguridad