El libre pensamiento para un internet libre

No estas registrado.  

Anuncio

Wifi-libre.com: El libre pensamiento para un internet libre / Regístrese ahora

#1 12-09-2017 19:44:47

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 4,579

Decena de brechas 0day en el Dlink 850L y el "clouding" Dlink

Pwning the Dlink 850L routers and abusing the MyDlink Cloud protocol by Pierre Kim
¡Dame cilindro!

Se puede ver con la salida del router de google que se ha puesto de moda  el diseño cilíndrico para los puntos de acceso: 

D-Link850L_1.jpg

Google inventa el router feng shui big_smile
"Best wifi system!" roll
Hay que tener mucho morro para afirmar semejante cosa y para vender esta cosa para más de 100€
Mucho cilindro pero ningunas antenas externas (ni conectores) así que el "best wifi system" será igual que una box ac 1200 del montón.
  Me gustaría tener uno para ver cómo es de malo.  big_smile

Bueno... No estamos aquí para hablar del fucking "wifi google" pero de D-Link y de su PA
Lo que pasa es que este router parece ser una respuesta de D-Link para hacer concurrencia a Google en este nuevo sector de los "PA feng shui".
  ¡Qué bien quedará en la mesa del vestíbulo al lado del retrato de la bisabuela! big_smile

D-Link850L_2.jpg

Si no te has enterado: ¡Son 360º completos! ¡Un circulo redondo y completo! WoW lol
  Esto sí: ¡Al ojo con las imitaciones de China!
Anuncian más grados de circunferencia: ¡Es un timo!
Los muy listos se las conocen todas y dan dos veces la vuelta al chisme para luego decir que son 720º lol

¡Dame nube!

  Otra palabra de moda es el "cloud"
Es que hablar de clouding suena mucho mejor que hablar de "acceso remoto" 
  Es más poético y quita la  desagradable connotación de riesgo que vinculan las palabras "acceso remoto".
  La moda está ahora a que tu router se conecta a tu gmail, a tus redes sociales etc... "para unificar y mejorar tu experiencia con todos los dispositivos que conectas a tu red" 
  Supongo que desgraciadamente mucha gente pensarán que es una excelente idea y que no se dan cuenta del riesgo que toman.
¿Quien les puede culpar si todo está hecho para que hagan esto?
  En términos de meta-datos para seguimiento y marketing estos PA son unas minas de oro.

¡Y... dame brechas al granel!

Pierre kim is in the place! cool 
No es la primera vez que hablamos de sus trabajos.
No es la primera vez que desvela brechas en routers D-Link.
De costumbre contacta el fabricante para que se arreglen las brechas y espera para publicar.
Pero como los fabricantes mienten y prometen actualizaciones que nuca llegan, esta vez pierre ha deicidio hacer directo un ful disclosure
  Tiene toda la razón del mundo.
Total que les invito a leer su full disclosure:
Es una maravilla con muchas capturas y todo explicado en los más mínimos detalles.
Hablamos de múltiples brechas  bien jodidas.
Si las sumamos entre ellas el resultado es una verdadera catástrofe....
Existen dos revisiones de este hardware, ambos están afectadas.
Una diferencia es que con una versión no hace falta descifrar el firmware y que en otro caso se necesita una llave pero es super fácil de pilar. Aquí tenéis el código para hacerlo

/* 
 * Simple tool to decrypt D-LINK DIR-850L REVB firmwares 
 *
 * $ gcc -o revbdec revbdec.c
 * $ ./revbdec DIR850L_REVB_FW207WWb05_h1ke_beta1.bin wrgac25_dlink.2013gui_dir850l > DIR850L_REVB_FW207WWb05_h1ke_beta1.decrypted
 */

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define USAGE "Usage: decimg <filename> <key>\n"

int main(int    argc,
         char   **argv)
{
        int     i, fi;
        int     fo = STDOUT_FILENO, fe = STDERR_FILENO;

        if (argc != 3)
        {
                write(fe, USAGE, strlen(USAGE));
                return (EXIT_FAILURE);
        }

        if ((fi = open(argv[1], O_RDONLY)) == -1)
        {
                perror("open");
                write(fe, USAGE, strlen(USAGE));
                return (EXIT_FAILURE);
        }

        const char *key = argv[2];
        int kl = strlen(key);

        i = 0;
        while (1)
        {
                char buffer[4096];
                int j, len;
                len = read(fi, buffer, 4096);
                if (len <= 0)
                        break;
                for (j = 0; j < len; j++) {
                        buffer[j] ^= (i + j) % 0xFB + 1;
                        buffer[j] ^= key[(i + j) % kl];
                }
                write(fo, buffer, len);
                i += len;
        }

       return (EXIT_SUCCESS);
}
Privilegios root mediante "mydlinkcloud"

Es quizá el ejemplo más ilustrativo de lo erróneo que es la practica que consiste en dar contraseñas personales a programas y servicios para "facilitarnos la vida".
Y es un suicidio si lo hacemos con D-Link big_smile
La página http://ip_of_router/register_send.php no pide credenciales a ningún momentos.
Con ella un intruso puede crear una cuenta mydlinkcloud relacionada con el PA. Lo hace y se conecta a la cuenta recién creada en la pagina de d-link:
  Una vez conectado al cloud amazon solo se tiene que examinar el trafico que proviene del plugin NPAPI  porque comunica el password legitimo del router en texto claro pam
 

The dlink cloud interface will leak by default the password of the device (!) inside the answer o
f a PUT request (and inside GET requests too). Just by watching the HTTP requests from the NPAPI plugin, the APIs will provide passwords of the device in cleartext.

Podéis ver aquí que tipo de información circula en texto claro 

D-Link850L_3_20170912-1718.jpg

  ¡Alucinante!
Da la contraseña del router  y la vieja también que no sirve para nada tongue,

MITM, instalación firmware custom, inyección de comandos etc..

  Con la contraseña obtenida se tiene acceso a la interfaz de gestión del router por un tunel que se crea entra el intruso, el cloud amazon y el router.

http://127.0.0.1:dynamicaly_generated_remote_port/

Comenté anteriormente que no hacía descifrar (o cifrar) la imagen del  firmware con la revisión 1 y que con la revisón 2 el cifrado se hace con una llave "hardcoded" muy fácil de obtener
  La interfaz de gestión permite logicamente actualizar el firmware con una imagen y es por lo tanto muy fácil instalar un firmware customizado.
  Permite habilitar el acceso remoto fuera de la red local y poco más: No es una interfaz muy extensa. 
  Hay un sitio para configurar los credenciales de la cuenta gmail pero no aparecen los credenciales, solo se pueden cambiar.
  Problema: El trafico que pasa por los túneles no está cifrado todo el tiempo y cuando lo está se usan certificados auto-generados.

Finally, the mydlink interface allows the user to enter credentials for gmail/hotmail accounts, the credentials are then transfered to the routers using the tunnel established with the cloud protocol. It doesn't seem to be a good idea, as the traffic between the router and the Cloud platform is not encrypted or encrypted using a self-signed certificate without verification and the passwords are sent over this tunnel using the Internet.

  Se usan también llaves ssh harcoded en le firmware
  Todo esto permite poner de pie un MITM con descifrado del trafico SSL sin complicaciones... Y los credenciales google caerán también.
   Luego el firmware tiene varias brechas "criticas" de muuuuy mal gusto:

  • Se puede obtener una consola telenetd con privilegios root

  • Se puede inyectar comandos de varias formas

  • Posibilidad de  meter una puerta trasera.

  • Contraseñas accesibles y guardadas en texto claro (bis repetita)

  • Este es violento: Se puede hacer un brute force de la nonce DNS parra modificar el DNS y redirigir el trafico
    "An attacker can bruteforce the nonce (?nonce=integer). There are no limitations of HTTP requests and no authentication method:"

      8 $uptime_limit = query(INF_getinfpath($WAN1)."/open_dns/nonce_uptime") + 1800;
      9 if(query(INF_getinfpath($WAN1)."/open_dns/nonce")!=$_GET["nonce"] || $_GET["nonce"]=="")
     10 {
     11         $Response="BindError";
     12 }
     13 else if(query("/runtime/device/uptime") > $uptime_limit)
     14 {
     15         $Response="BindTimeout";
     16 }

    The attacker can then define new DNS servers:

     21         set(INF_getinfpath($WAN1)."/open_dns/deviceid", $_GET["deviceid"]);
     22         set(INF_getinfpath($WAN1)."/open_dns/parent_dns_srv/dns1", $_GET["dnsip1"]);
     23         set(INF_getinfpath($WAN1)."/open_dns/parent_dns_srv/dns2", $_GET["dnsip2"]);

    An attacker can use this vuln to forward traffic to server he/she controls (i.e.: custom Dlink Cloud servers, to take control over the dlink router).

Epilogo

  En resumen:
 
  - "Gracias" a las brechas en el servicio Clouding de d-link-Amazon un intruso obtiene la contraseña de administración del router esnifando el trafico que genera después crear una cuenta nueva
  Esto es posible porque:
   1) No hace falta entrar credenciales para acceder a la página dónde se crean cuentas).
   2) la llave de administración circula en texto claro
  Hablamos de una acumulación de brechas groseras en la gestión del famoso "clouding" que regalan el control del dispositivo.
 
  - Luego, leí de murphy, encontramos a un dispositivo con varios brechas que permiten  hacer de todo
Tantas cosas que parece que el firmware fue diseñado por un equipo de técnicos de ZTE borrachos (o bajo los efectos de una sustancia alucinógena)
  No es normal encontrar estas brechas un PA de mierda de Huawei
Y lo es menos aún si se trata de un router con forma de cilindro con sus 360º y sus 100 €uritos clavaditos,
  ¡No compréis esta cosa!

  - La generalización de la "cloudisación" estandardizada que se avecina es la puerta abierta a miles de vulnerabilidades
Y es además una oportunidad de oro para los fabricantes y proveedores de servicios para rastrear y colectar (y vender) metadatos sobre sus usuarios/clientes.
  Los usuarios van a tener que ser más y más y vigilantes sobre sus configuraciones y su forma de gestionar su datos sin nunca tener la certeza que sirva realmente de algo visto las tremendas cagadas que se puede llegar a ver. 
  Lo aconsejable de forma general es prescindir de todas estas funciones de "clouding".
  Si es para acceder remotamente a un dispositivo mejor configurar una conexión ssh uno mismo, si es para compartir archivos mejor usar algo como samba.
  Protocolos con soluciones de código abierto, testadas y actualizadas en permanencia,.
      D.I.Y. más que nunca...

fuente

Desconectado

Anuncio

Wifi-highpower.es es distribuidor oficial de Alfa Network

Temas similares

Tema Respuestas Vistas Ultimo mensaje
3 114 Hoy 18:58:22 por muglio
Emuladores. por josep345
0 86 Ayer 21:40:18 por josep345
3 266 Ayer 12:29:16 por kcdtv
El negocio del gaming por josep345
5 221 13-12-2018 19:44:21 por josep345
15 525 13-12-2018 18:52:10 por josep345

Pie de página

Información del usuario

Ultimo usuario registrado: salvatore85
Usuarios registrados conectados: 0
Invitados conectados: 12

Estadisticas de los foros

Número total de usuarios registrados: 1,308
Número total de temas: 1,241
Número total de mensajes: 12,669

Máx. usuarios conectados: 74 el 13-11-2018 18:47:20