Backdoor encontrado en el router vr-3025u de jazztel

Bueno , ante todo , y más aún después de semejante título , los buenos días. Resulta que cierto modelo de router que jazztel distribuye al contratar su adsl está troyanizado con una #backdoor , y por mucho que digan que es «soporte técnico» , es una mentira bien gorda.

Como saber si tienes un vr-3025u

1) Buscando imágenes de este modelo de router en la web , y viendo si se parecen a tu router

2) En la web de administración , en la cabecera de arriba , pone «Comtrend Multi-DSL CPE» , y en el login HTTP «Broadband router».

Consigue una shell real en tu router

1) Entra por telnet a tu router , el login por defecto es admin/admin , y si no funciona , reinicia el router y vuelve a intentarlo.

2) Una vez que estés dentro verás un prompt con el símbolo > , esta es la shell restringida , no es un /bin/sh , sino que es una shell que sólo vale para hacer lo mismo que con la administración web pero por consola.

3) Ahora , ejecuta este comando que explota un pequeño bug del parser sintáctico de busybox 1.0.0 ( descubierto por mí )

> echo `/bin/sh > /dev/tty`

4) Si todo marcha bien , deberías ver una shell de busybox. Te recuerdo que como telnetd detecta esto como un comando normal , si te pasas mucho rato en este modo te dará timeout el router , por lo cual de vez en cuando debes salir de la shell real , y volver a entrar usando el bug.

5) Si algo no ha salido bien , revisa los pasos. Te recuedo que estas comillas raras ( ` ) se hacen pulsando la tecla a la derecha de la p , y sin soltarla , la tecla espaciadora.

Trastea con tu router y quita el backdoor

En la shell restringida ( la del símbolo > , no la que hemos logrado con el bug ) , ejecuta passwd , y cambia la clave al usuario admin.

Ahora , entra en la shell real utilizando el bug , y ejecuta los siguientes comandos :

# deluser user
# deluser ftpuser
# deluser nobody
# deluser support

Ahora ya has quitado los usuarios ocultos al router , pero para curarse en salud ( porque todavía no he investigado los otros puertos del router , podría haber mas backdoors ) , te recomiendo que ejecutes los siguientes comandos :

iptables -F
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -P INPUT DROP

Esto debería bastar para sellar el firewall bastante bien , quitando acceso a los cretinos que te backdoorizaron el router.

Otras cosas a tener en cuenta

1) Los cambios no son permanentes , al reiniciar el router se borran , por tanto recomiendo que cuando vayas a reiniciarlo , lo apagues , lo desconectes de la red adsl ( para que no se metan mientras el backdoor no está cubierto ni te actualizen el firmware a una version con más backdoors aún ) , lo enciendas de nuevo , entres al telnet a tapar el backdoor , y lo vuelvas a conectar a la red ADSL

2) Yo tengo una teoría personal de que la mayoría de routers están troyanizados , y creo que por desgracia no me equivoco , así que andad con cuidado , si podéis , compraros un router y metedle openwrt , y en caso de que no intentad conseguir una shell en vuestro router e investigad por vuestra cuenta para que no os backdoorizen el router.

Saludos :)

Compartir

23 Comentarios

  1. Hola Desikoder. Primero de todo felicitaciones por el articulo, estoy seguro que será de mucha utilidad a bastante gente.

    Comparto la misma teoría ya que entre otras cosas para mi ha sido practica desde hace años.

    He visto esto en routers de timofonica, de ONO, de Vodafone, … y no es casual desde luego.

    En futuras entradas compartiremos más «fallos» o como se comenta por aquí «backdoors» de routers que suele tener gran parte de la población en España.

    Creo de todos modos que no ofreces ni la mitad de lo que sabes sobre ese router. ¿Podrías dar más información?

    1. El backdoor no abre ningun puerto especifico , los abre TODOS al rango 87.216.1.0/24

      Es decir , para los fans de iptables

      iptables -A INPUT -s 87.216.1.0/24 -j ACCEPT

      normalmente en un firewall se aceptan paquetes desde el exterior si son respuestas a peticiones que iniciaste tu mismo. Sin embargo , con esta regla iptables tienen acceso a todos los puertos ese rango de ip’s , y en particular al telnet con el usuario support y la clave support. Ademas el telnetd esta configurado para NO poder usar support/support desde la red interna.

      Asi que ¿ Quien en su sano juicio le llamaria soporte tecnico a un usuario que no puede entrar desde la red interna y si desde la red externa 87.216.1.0/24 ?

      Por supuesto , ya he estado haciendo nmap a ese rango de red y husmeando un poco , todas las ip’s levantadas de ese rango son ip’s estaticas de servers de jazztel.

      Saludos

    1. No te preocupes , lo de los usuarios es proteccion adicional , pero con las reglas iptables no te podran alcanzar el puerto … Aun asi , creo que te has confundido en algun paso , recuerda que el comando passwd ( cambiar clave ) , solo lo puedes ejecutar desde la shell limitada , y los comandos deluser solo los puedes ejecutar desde la shell real ( la que se gana explotando el bug de busybox shell ).

      Por cierto , no puedo ver tu captura de pantalla , ¿ te importa pasarla de nuevo ?

      1. Hice todos los pasos según venían, cambié la password de admin desde la limitada, y después el resto desde la real utiliazndo busybox.
        He reiniciado el router y repetido los pasos (menos la password que se ha quedado guardada) y sigue pasándome lo mismo.
        Aquí está la screenshot: http://i.imgur.com/CFacYYi.png

        De todas formas solo pone que no ha sido posible remover esos usuarios de /etc/group

    1. Si , por supuesto , pero como comentaba antes , la gracia es que descubri un bug en busybox el cual me dio acceso al S.O. del router , viendo todas las tripas del router , y por ende el backdoor.

      1. Lo que quería decir con mi pregunta es, que si el telnet está abierto por defecto en la instalación en WAN (cosa que dudo), no haría falta ese supuesto backdoor que has detectado porque entras directo con admin/admin o con cualquiera de esos usuarios que has mencionado. Ese ‘bug’ que mencionas de busybox es algo reconocido hace años: http://lists.busybox.net/pipermail/busybox/2005-June/014718.html

        De todas formas, ánimo porque esos routers contienen backdoors pero no creo que esos vectores de ataque sean la clave.

        1. el telnet esta abierto a la red interna ( creo que se llama LAN , por favor , di red interna o externa que me confundo con LAN o WAN ) , el asunto es que en teoria no deberia permitir acceso desde el exterior , y a cierto rango de ip’s si que se lo permite. No hay mas.

          Es como si yo te configuro el sistema para que yo con mi ip tenga acceso total a tu sistema …

          En teoria el iptables deberia cerrar las conexiones desde el exterior ( y de hecho las cierra a quienes no sean del rango del backdoor ) , pero al rango del backdoor si que se las abre.

          No acabo de comprender porque insistes en que no es un backdoor …

    1. Bueno , depende de que sea. Recuerda que el router tiene 2 «caracteristicas extra».

      La primera es un bug del propio busybox , el cual no compromete en absoluto la seguridad y esta bien porque puedes husmear en las tripas de tu router

      Lo segundo ya es mas serio , y es un backdoor que alguien ha colocado. Sin embargo , teniendo en cuenta que el fabricante del router es comtrend , y que comtrend fabrica routers para bastantes compañias , no solo para jazztel , sostengo que los que modificaron el firmware de fabrica y pusieron el backdoor fueron los de jazztel. Sin embargo estoy seguro al 99.9999999999% de que nadie antes que yo conocia este bug en busybox 1.0.0 , lo cual significa que debieron flashear el router por otros medios , supongo que de la misma forma que se flashea al fabricar el circuito electrónico del router.

      Saludos

  2. «»En un Comtrend que usé hace poco, de los que pone Telefónica habitualmente, podía obtener rootshell haciendo sysinfo ; sh

    Usa Busybox 1.00 (build 2010.08.11):
    system type : 96369R-1231N
    processor : 0
    cpu model : BCM6368 V3.1
    «»

    1. Si , el tambien es muy tipico el bug de que poniendo un ; se logre una shell. Recuerdo que hay gente que libera el livebox de orange para usarlo en otros ISP haciendo downgrade a una version del firmware vulnerable , y entrando a la admin web , poniendo en el ESSID de la red

      minuevoessid ; wget [URL_BINARIO_UTELNETD] ; /ruta/al/utelnetd

      Es decir , como se pueden inyectar comandos via web , se descarga desde un server previamente montado un server telnet para MIPS , lo ejecuta , tienes telnet en el livebox , y a partir de ahi desbloqueas opciones y cacharreas …

      Aunque cuando descubri el bug del echo /bin/sh > /dev/tty me sorprendi bastante , es una forma poco comun de saltarse un rshell de un router …

      Aun asi no está del todo mal que haya tantos backdoor en los routers , porque es contraproducente para ellos , por ejemplo cuando descubri el backdoor del vr-3025u vi que el rango de ip’s que aceptaba el backdoor era 87.216.1.0/24 , con lo cual ellos mismos estan revelando las ip’s que usan para sus oscuros fines …

      Por cierto , si buscas 96369R-1231N en un buscador lo mas probable es que encuentres info sobre el router , recuerdo que yo en el vr-3025u hice cat /proc/cpuinfo , busque en duckduckgo el system type , y me salio en el primer resultado la wiki de openwrt con algo de info tecnica sobre el router …

      Saludos

  3. Vaya !. Por casualidades de la vida los del ciber a donde voy con mi portatil y me enchufo al ethernet del PC-8 , les fallo ayer el vr-3025u y lo han cambiado por un vr-3025un.

    El vr-3025un tiene en el banner del telnet BCM96368 Broadband router , ese es el vr-3025un por lo que he visto. tal y como dice Tripichurla , tambien esta backdoorizado , lo acabo de comprobar yo …

    Me voy a decantar por el lado del bien y les voy a explicar a la gente del ciber las maldades que jazztel anda haciendo …

    Saludos

  4. Mas noticias frescas !. A otro ciber al que suelo ir tienen un router comtrend con timofonica , el header es «Comtrend gigabit 802.11n router». El tipo del ciber fue avispado , y cambio la clave del usuario 1234 ( el de administracion ). La gracia del asunto es que no fue lo bastante avispado , porque el router ese de comtrend si entras en 192.168.1.1/password.cgi te permite cambiar la clave y … !! NO TAN RAPIDO !! se necesita primero la clave antigua , pero la gracia es que la clave antigua se valida comparandola con una variable en javascript , vamos , que viendo el codigo fuente he sacado su clave , he accedido a su webadmin y a su telnet , etc:

    El puso la clave 73nqrdfk

    al entrar via telnet a este otro modelo de router , con el comando sysinfo ; sh he logrado una shell , un bug bastante trivial , una vez lograda la shell he podido observar que tiene el clasico usuario support y los rangos de red 193.152.37.192/28 y 80.58.63.128/25 tienen acceso tanto por telnet como por ftp.

    Desde luego , comtrend , pazztel y timofonica se estan luciendo , pero la parte positiva es que nos estan regalando sus rangos de ip’s , asi que nos pondremos a husmear de inmediato …

    Saludos

  5. ATENCION !!! MUY IMPORTANTE !!!

    Parece ser que los de jazztel han leido esta noticia en la web , porque mirando el router del ciber me he dado cuenta de que modificaba los iptables y a los pocos segundos volvian a estar troyanizados , he visto el proceso del tr69c ( un protocolo de «administracion remota» ) , y lo he matado , al rato apareciendo de nuevo , en ese justo instante los de jazztel estaban reconfigurando el router , pero como soy mejor informatico que ellos ( y no es «echarme flores» ) , les he logrado sacar a patadas del tr-069. Estoy harto , estoy peleandome con demasiada gente , los del ciber cambiaron la clave , hay un tipo que se pasa haciendo desautenticacion WPA al ciber todo el dia y no logro conectarme , los del ISP reconfigurando el router … Si supieseis toda la gente que anda aqui metida , y yo «peleandome» con todos ellos !!!!

    GRRR !!

    Saludos

  6. hola,

    me ha molado la forma de sacar shell =D

    yo tengo un ar????-un de esos que distribuye jazztel.

    He descargado el firmware que tengo instalado, y me he hecho unas herramientas para modificarlo (sí, el stock firmware).

    He instalado un servicio de shell remota que funciona también ejecutando el busybox en vez de la shell de configuración de telnetd.

    Te puedo dar mucha info sobre estos apartos, y coincido en el «backdoor» que dices que viene en el router.

    Realmente en mi router, también está esa regla:

    ACCEPT all — 87.216.1.0/24 anywhere

    Yo supongo que son las ips de los terminales que usan los administradores para poder conectar por todos los servicios que ofrece el router.

    De todas formas lleva un servicio abierto al publico que es el tr069.

    El puerto que lleva abierto es el 30005. Si hacéis un scan desde la red 4g del movil a vuestra ip pública de la línea adsl de casa, seguramente solo veréis ese puerto abierto.

    Lo que ya sabía es que jazztel usa esas ips para gestionar el router remotamente.

    Es un backdoor pero no para el público en general, si no para tu propio ISP.

    Saludos, un placer leerte.

  7. Si te molesta tanto y tienes fallos de seguridad, por qué no te has planteado instalar OpenWRT?

    Otra opción es https://github.com/aberope/jazztel-firmware-edit y eliminar el tr069 del rootfs. Añadir nuevas iptables, etc. Pero tendrás problemas para el tema de los WPA death y todos los ataques que sufras.

    Si no lo sabías, ejecutando «dmesg» te canta también los intentos raros por parte de ips externas y públicas de internet hacia tu línea.

    Es un problema el servicio tr069 porque el servicio podría contener bugs y abrir paso al exterior. Aunque por lo que leído utiliza un sistema de cambio de clave cada X tiempo.

    Funciona en 2 planos:

    El plano en el que el router conecta a jazztel para informar sobre lo que sea.
    Y el plano en el que jazztel puede acceder al tr069 para administrar el router, mediante este servicio que utiliza un protocolo soap.

    Hay un comando en el /bin que se llama tr069c y debe ser el cliente.

    Mi pregunta es: hay alguna forma de acceder al router desde cualquier terminal no siendo un tecnico de jazttel, mediante el tr069?

    En principio lleva un sistema de authentication en el puerto 30005 y funciona por http. Esa clave permanece siendo la que es (con un usuario complicadísimo también) durante unos días, y parece que al cambiar de IP pública, el servicio se actualiza. Aunque cada 4 horas debería estar informando a los acs.jazztel.com 8443 por HTTPS.

    Si me cuentas tu problema quizás pueda echarte una mano.

    Suerte y saludos de nuevo.

  8. Segun dice tu post…. los usuarios user, support y ftpuser son originarios del sistema… es recomendable cambiar sus contraseñas, eso si, El usuario support es el usuario que usará la isp en cuestion (mierdafonica,vodafone,orange-jazztel…) si te fijas en el menu management y luego vas al submenú tr-069 estara conectado a tu compañia (según mi router). El usuario ftpuser es usado para el acceso a una usb conectada a la parte trasera del router y por ultimo el user, no tiene apenas privilegios pero de todas formas es mejor cambiar su pass…

Deja una respuesta a ilyass Cancelar respuesta

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax