En la
primera parte de este artículo se enseñó cómo se mostraba una conexión segura en el navegador
Safari para iOS además de explicar y qué es y cómo funciona la técnica de
hacking SSLStrip. Hoy vamos a ver cómo llevar a cabo
el ataque S
SLStrip sobre un terminal
iPhone o
iPad y cómo se comporta
Safari para iOS ante este tipo de ataques.
Paso 1: Realizar un ataque man in the middel con ARP Spoofing
En primer lugar hay que
realizar un ataque de
man in the middle, en este caso con la técnica
ARP Spoofing, que permita capturar todo el tráfico entre el dispositivo móvil y, por ejemplo, el
router. Para ello se debe activar la opción de
ip_forward para realizar reenvíos de tráfico desde nuestra máquina, y después utilizar la herramienta
arpspoof, la cual se puede utilizar en
OS X a través de los
ports. En este caso, y por simplicidad se utilizará una distribución
Kali Linux para realizar el envenenamiento de la caché
ARP.
Dicho esto, vamos a ejecutar la instrucción
echo 1 > /proc/sys/net/ipv4/ip_forward, con permisos de administrador, para hacer que nuestra máquina reenvíe el tráfico. Después, lanzaremos la herramienta
arspspoof, tal y como se puede visualizar en la imagen. La sintaxis es sencilla
arpspoof -i "interfaz de red" -t "direccion IP iphone" "dirección IP router". Esta instrucción tenemos que ejecutarla en ambos sentidos, es decir envenenando a la víctima y después también al router.
 |
| Figura 1: ARP Spoofing sobre un dispositivo iPhone |
PoC - Paso 2: Jugando con iptables y SSL Strip
El siguiente paso es configurar nuestra máquina para redirigir lo que pase por nosotros con destino puerto
80 se envíe al puerto
10000 de nuestra máquina, dónde tendremos a
SSL Strip esperando. A continuación se muestra cuál es la sintaxis de
iptables para lograr esto:
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 10000.
Una vez ejecutado esto como administrador, debemos arrancar el
script de
sslstrip, simplemente ejecutando
sslstrip -w.
 |
| Figura 2: SSL Strip a la escucha |
PoC - Paso3: ¿Cómo se comporta Safari?
Lo primero que hace
Safari para iOS es mostrarnos el sitio web de
Gmail, sin
ningún tipo de alerta, porque como se mencionó en el artículo anterior,
no hay SSL por ningún lado, todo va sobre
HTTP puro. Como se ve en la siguiente imagen la página es la misma, porque es la original, pero
el candado ha desaparecido.
 |
| Figura 3: Gmail sin SSL en la conexión |
Como se puede ver, por diseño,
Safari para iOS oculta el protocolo, que no es mostrado ni estando bajo
SSL, ni sin estar bajo
SSL. por lo que perdemos una referencia visual sobre qué tipo de conexión estamos teniendo y el icono del candado es lo único que nos puede ayudar. Pero, como hemos dicho en la parte anterior, al instante de cargar el sitio web,
Safari para iOS sube hacia arriba la
barra de direcciones por lo que si el candado no está, tampoco lo echaremos en falta en una navegación normal. En la imagen superior se puede visualizar la falta del protocolo, y en la imagen siguiente como realmente
estamos navegando por HTTP.
 |
| Figura 4: Navegando por HTTP |
Por último, una vez que la víctima confía en el sitio web e introduce sus credenciales, podemos ver como éstas son recogidas
por el atacante en un fichero, ya que como la comunicación es
HTTP no hay problema alguno de cifrado.
 |
| Figura 5: Recogida de credenciales de gmail |
Esta técnica es una de las más comunes en los ataques de
hacking a iPhone & iPad, y por eso muchas
apps usan conexiones con
Certificate Pinning para evitarlos. Poned los ojos bien abiertos cuanto utilicéis los navegadores móviles, ya que trucos como éstos, o como los que hemos visto en el artículo sobre
phishing en dispositivos móviles están a la orden del día.