Esta era la pantalla
que nos estaba causando problemas, como no tenemos el hardware original de la
WifiPineapple, pero si el software (firmware), no podíamos ver que leds eran
los que estaban “On”, “Off” o “Blink”.
Mirando un poco, buscando, si alguien ya lo había hecho, y
discutiendo con gente de la comunidad RemoteExecution, se plantearon algunas
opciones como el bruteforcing del patrón de 4x3, sugerido por gonza_cabrera,
pero como no tenia idea si el TL-MR3020 podia llegar a bloquearse o si había algúna
medida de seguridad que saltara después de X cantidad de intentos, por miedo a
que esto pase volvi a la idea original de encontrar una solución dentro del
firmware.
Habia visto algunos videos de la BlackHat o de la DefCon
donde realizaban un reverse a los firmwares de Camaras ips y de routers, asi
que el principio tiene que ser el mismo, la verificación no se hace online asi
que tiene que estar dentro del código.
Entonces con el Firmware-mod-toolkit extramos los archivos
del firmare y los vamos revisando.
./extract-firmware.sh upgrade-2.3.0.bin
extrae todos los archivos de binario en la carpeta “rootfs”,
lo que nos permite analizarlos carpeta por carpeta, archivo por archivo (parece
como mucho quilombo).
Como yo ya había hecho este proceso y había pasado todos los
archivos al pendrive, simplemente apague el mr3020, luego lo retire y pase a
analizar desde mi pc. Voy a aclarar, que antes hice una prueba “online”, es
decir con el router conectado a internet e ingresando a la dirección ip para el
setup, y lo revise con el Live HTTP headers, para ver si me llevaba a algún
lugar interesante, y esto adelanto mucho el trabajo como vamos a ver mas
adelante.
La realidad, es que primero, me enfoque en un archivo js que
era llamado en cada una de las paginas, pero la verdad me estaba confundiendo.
Y voy a hacer otra aclaración, para programar soy un desastre y mis
conocimientos son mas que básicos.
Como se puede ver, siempre va a la misma carpeta o
directorio /includes/welcome y estas se encuentran dentro de la carpeta
pineapple.
Si vemos dentro de la carpeta includes, se encuentra el
header.php además de otras carpetas como la /welcome/ que básicamente el
archivo header establece que va a estar en todas las paginas del sitio y
muestra que funciones va a llamar, y que archivos va a incluir, entre ellas el
archivo welcome.inc.php, que es donde la magia pasa.
Cuando revisamos este archivo, nos encontramos con la función que realiza la verificación entre otras. Una vez que me encontré con esa función function verifyPineapple($post) me comunique con Daniel Godoy, ya que no se una goma de PHP. A lo que me respondio, una papita, y después de pelear un rato encontró la manera de bypassear la verificación. El texto seleccionado en la imagen de abajo, hace la verificación, es el que hay que reemplazar.
El codigo que
verifica es un condicionador IF, que de darse las condiciones que solicita,
verifica el wifipineapple. Por lo que Daniel, me envio el parche, o bypass
donde establece que como la condicion es correcta es decir TRUE, se debe
verificar. Como se muestra en el texto seleccionado abajo.
Asique una vez completado esto, por si no se ve en la imagen el codigo es
el siguiente:
/////Nulled
#RemoteExecution
if (true)
{
$_SESSION['verified'] = true;
return passwordForm();
}
///////////////
Guardamos los cambios, insertamos el pendrive nuevamente en el MR3020 y navegamos
a la configuracion, marcamos cualquier opcion, pero si o si todos los colores,
le damos a Continue, y ahora a setear nuestra contraseña de root, despues de
configurar todo lo que nos piden ya tenemos nuestro WifiPineapple Clone
funcionando. Y como ven pwned!
No hay comentarios:
Publicar un comentario