Mostrando entradas con la etiqueta Web. Mostrar todas las entradas
Mostrando entradas con la etiqueta Web. Mostrar todas las entradas

Al rico SPAM (Análisis de una extraña whatsapp web)

Buenas amigos, soy Fare9 y hoy os traigo un pequeño análisis de un spam que me han pasado por Whatsapp (típico en estos días).


Aquí dejo el enlace (lo pongo como texto y no como enlace, vosotros ya vereis): http://goo.gl/QJUqfk

Bien, para realizar este tipo de tareas vamos a usar una máquina virtual (por si las moscas), para ello usaré una máquina virtual con Kali Linux (para quien no sepa que es: https://www.kali.org/).
Una vez tengamos la máquina virtual abierta, vamos a empezar el "análisis", para ello como siempre vamos a ponernos los cascos y elegir algo de música ( aquí mi recomendación: https://www.youtube.com/watch?v=06fjeICUKeU ):

    Para empezar y ver un poco algo superficial de la web, usaremos "whatweb" para ver las tecnologías usadas por el servidor:
 "whatweb http://goo.gl/QJUqfk"

 
 Como vemos la URL que teníamos no nos lleva a una web directamente, ya que el servidor nos devuelve un código 301 (Moved Permanently), este nos lleva a otra URL (http://wd8.co/wifi), el cual no nos devuelve un 200 sino un 302 (Found) para finalmente llevarnos a una URL final, http://mobiapps.online/wifi/es/?lang= , la cual esta vez el servidor nos responde con un 200 OK, y con la cual nos quedaremos, de esta URL obtenemos las cabeceras que el servidor envía. Vemos que tenemos el Country, HTML5, el tipo de servidor HTTP (cloudflare-nginx), tenemos el flag HttpOnly... Todo lo que se puede observar ahí en la imagen.
Bien con esto ya conocemos el servidor, ahora vamos a realizar un Who Is, para conocer un poquito más, esta información nos mostrará nombres y lugares:
"whois mobiapps.online"



 Oh, vaya, cuanta información apuntando a Madre Rusia, pero que le vamos a hacer, esta información no vale para mucho, pero por lo menos es gracioso ver de donde pueden venir estas campañas.

Ahora abriremos BurpSuite, el cual usaremos como proxy para navegar a la web (para saber como configurar Burp y el navegador mirad por aquí: https://portswigger.net/burp/help/suite_gettingstarted.html).

Primero en el navegador iremos a la primera URL (la cual nos pasaron por whatsapp), tras lo cual recibimos la siguiente respuesta al hacer click en "Forward" dentro de burp:
 Como vimos en whatweb, recibimos un 301, y podemos observar un Location, que es la siguiente URL que visitará el navegador. Bien aquí la respuesta:
 
Bien, bien, bien, esta vez el Location nos lleva a una URL más interesante, ya que en whatweb es la última que se nos mostró, por tanto veremos que el navegador finalmente nos lleva a una web con una interfaz muy bonita:



 
Nos vienen regalando Wifi gratis para whatsapp siempre que invitemos a 15 amigos... ¿QUIÉN NO QUIERE WIFI GRATIS?.
Bueno sigamos...

Tenemos esos dos botones principales, uno para Invitar Amigos y otro para Activar, vamos a dar click derecho en el primero y dar a Inspeccionar elemento:
Vemos que ambos botones, son referencias a URLs, aunque el atributo href no lleva a ninguna otra URL, sino, que al hacer click en los "botones" se ejecutan distintas funciones de Javascript, vamos entonces a buscar el código javascript (el cual se encuentra un poco más arriba que este código):

Que imagen tan interesante, vemos que el botón Invitar Amigos lleva a fn1 y Activar lleva a fn2, y parece que de cookies anda el juego, la función getCookie y setCookie son funciones que se encuentran arriba de estas dos, pero por lo que parece buscan ese número 15, que tanto nos incita la web. En Invitar Amigos, vemos que se obtiene la cookie, se suma 1, y se establece el valor cada vez que es pulsado el botón, en caso de que c, sea menor o igual a 15, se establece un href = 'whatsapp://send?text=wifi gratis para WhatsApp - ....', el cual es el mensaje que recibí por whatsapp, buscando por google esta extraña sentencia, obtenemos este enlace: https://www.whatsapp.com/faq/es/android/28000012 . La cual nos indica que es una URL para poder interactuar con whatsapp y enviar ese mensaje a cualquier usuario (una especie de API).

Al hacer click en Activar, nos muestra la alerta de "Por favor Invitar al menos ....", se ve que no es tonto el spam tampoco, y si pulsamos "Invitar Amigo" nos lleva a la URL de whatsapp la cual falla, al estar en un navegador y no tener si quiera el whatsapp web abierto. Bien como de cookies anda el juego, vamos a mirar las cookies, para ello usaremos CookiesManager, un plugin de Firefox que nos permite modificar y mirar las cookies que tenemos. Buscaremos por el nombre "invites":

Vaya, vaya, una bonita cookie, la cual se llama invites, y que tras pulsar una vez el botón de "Invitar Amigos" nos muestra el valor 1... Bien pues vamos a modificar, ya que no quiero invitar a ningún amigo haremos algo de trampas y modificaremos a mano el valor por 33 (bonito número y grado).

Damos a Save y marchando. Tras esto recargaremos la página, y qué narices está pasando, empieza a ir de una web a otra, y a otra, y a otra. Y acabamos en:

Que gente tan amable, primero nos ofrecen wifi gratis para el Whatsapp y luego nos dicen que podemos llevarnos un Iphone 7, por el simple hecho de responder unas preguntas... Joe con gente así en el mundo para que necesitamos trabajar.


Bueno hasta aquí el análisis de este SPAM que se va pasando por Whatsapp, parece incluso real, con una web tan currada y tal... Pero nunca hagais caso a estas cosas, nadie regala nada, y si os regalan que sea conocimiento como hago yo con entradas como esta. 
Nos vemos en una siguiente entrada y como ya dije estaré en la conferencia SEC/ADMIN presentando mi herramienta AndroidSwissKnife . 
En un principio doy gracias a la emisora de este mensaje a mi whatsapp mi amiga Irene, y a varios compañeros de trabajo los cuales me han aguantado tanta pregunta sobre estos temas de web, de los cuales casi no tenía ni idea (en especial a I. que me tuvo una semana de preguntas xD).

WP-BackitUp: Arbitrary File Deletion vulnerability (o porqué no subestimar un CSRF)

¡Saludos!

   Escribo esta entrada para dar un toque de atención a todos aquellos desarrolladores de plugins para WordPress: por favor, la API de WordPress permite crear directamente tokens (o "nonces") y después comprobar su validez. ¡NO QUIERO VER UN CSRF MÁS!

   En este mes y dos semanas que he pasado buscando vulnerabilidades en plugins de WordPress lo que más me he encontrado son CSRF que permiten cosas tan dispares como que puedas recibir un atacante pueda recibir por correo electrónico un backup de la base de datos (¡Toma ya!, en un plugin con más de un millón de descargas y que bastantes webs gordas lo tenían instalado), realizar un DoS al servidor , o como en este caso, poder eliminar cualquier archivo. Voy a usar el plugin "WP-BackItUp" como ejemplo porque fue reportado hace un mes (tal y como se indicó en Quantika14 ) y no han parcheado este grave fallo de seguridad pese ha que han sacado diversas actualizaciones desde entonces.

  Cuando comprobamos las cabeceras HTTP que se mandan cuando realizamos alguna acción, por ejemplo crear un backup, vemos que en ningún momento se manda ningún token que proteja esa petición y por tanto no se comprueba si realmente ha sido el administrador quien ha querido hacerla y no ha sido "forzado" por un atacante:


   Por lo pronto podemos forzar a que realice un backup de la base de datos y de los archivos de ese WordPress. En otros casos de plugins que realizan backups y también son vulnerables a CSRF se ha podido usar esa caracterísitica para que se inicien 10.000 full backups practicamente al unísono, produciendose un denial of service del servidor. Por desgracia este no es el caso :(


    Cuando observamos la petición de borrado de un archivo vemos que tampoco lleva un token que la proteja:


  Lo primero que pensé cuando lo ví es que bueno, pode borrar backups puede ser un fallo de seguridad, pero tampoco nada transcendental. Lo segundo fue: ¿porqué diablos pone el nombre del archivo? ¿no serán capaces de cometer tal atrocidad....?

    Efectivamente, la hacen. Contemplad este trozo de código, obelisco que simboliza la candidez de ese desarrollador. Un minuto de silencio por la inocencia de quien hizo esto:


function deletefile()
{
$fileToDel = str_replace('deleteRow', '', $_POST['filed']);
$restore_path =  WPBACKITUP_CONTENT_PATH .WPBACKITUP_BACKUP_FOLDER .'/' . $fileToDel;
_log('(functions.deletefile) Delete File:' . $restore_path);
if (unlink($restore_path))
echo 'deleted';
else
echo 'problem';
exit(0);
}

   En vez de guardar en la base de datos el nombre del archivo y después pedirlo para borrarlo, se lo pasa directamente a través de una petición POST. Sin filtrar. A pelo. Un "unlink()" a lo que le pases. Eso es confiar en el usuario.


    Procedamos a hacer la petición de rigor para ver si podemos aprovechar esto, sabiendo que la carpeta de la que parte es /wp-content/wpbackitup_backups:




Premio para el niño, el archivo ha sido borrado:



  Para poder hacer el PoC rápidamente y probarlo podeis usar el script que hice, CSRFtoPOST, que podeis descargar haciendo click AQUI.



No es dificil usar tokens en WordPress, de hecho hay un artículo donde lo explica dentro de la propia documentación de la API (http://codex.wordpress.org/WordPress_Nonces )  por lo que este tipo de fallos pueden ser subsanados agregando apenas 3 líneas más a tu código. No seas vago y hazlo ;)


Byt3z!

Chrome Canary



Hola a tod@s


Si sois usuarios de Google Chrome, estáis de enhorabuena. Google anunció que presentará una nueva versión de su navegador de Internet, Chrome Canary. En este momento se encuentra en versión de pruebas hasta que esté todo correcto antes de su lanzamiento. Una de las mejoras es su capacidad para detectar malware, el cual bloquea de forma automática antes de que se descargue en tu ordeandor, por lo que éste nunca encontrará camino a tu disco duro. Todo lo que ves es una notificación como la siguiente:



Con este gesto Google intentará mejorar la seguridad en su navegador web y prevenir a sus usuarios de ser víctimas del malware.
Como dice Google en su blog. “Proteger es una prioridad, es por eso que estamos trabajando para evitar que los usuarios se vean afectados por malware”. 
 

No seáis malos.

¿Cómo de Segura es mi Contraseña?

Hola a tod@s

Se sigue concienciando y dando mucha información sobre la calidad de las contraseñas, aún así, nos seguimos encontrando por ahí contraseñas débiles, muy débiles. Estas contraseñas se pueden sacar de una forma muy sencilla con Ingeniería Social o con en cuestión de unos minutos con fuerza bruta.


Algunos sitios o aplicaciones web ya obligan a seguir unos estándares mínimos de longitud y variedad (mayúsculas, números, caracteres especiales).


Os he querido traer un servicio web llamado  How Secure is My Password, en el que podéis comprobar la fortaleza de vuestras contraseñas, te dicen cuántos años haría falta para descifrarla.
 

Imagen 1: Password Débil



En esta primera prueba realizada a la imagen anterior se puede observar que hemos utilizado una contraseña muy débil y la aplicación nos avisa que sería descifrada al instante. La contraseña utilizada es 123456, una contraseña muy usada aún a día de hoy.


Imagen 2: Password Fuerte

Ya veis, en esta segunda prueba hemos introducido una password más fuerte y nos comunica que necesitaría toda una vida, 58 años en descifrar la contraseña.
 

 No seáis malos.