domingo, 17 de enero de 2021

Router Sercomm FG824CD III

[upgrade 23/04/2021]

Hace ya casi cuatro meses que empecé esta investigación, al menos a documentarla. Hace aproximadamente dos semanas y pico el avance que he hecho ha sido, a mi modo de ver, brutal. Las entradas sobre el Sercomm FG824CD IV y V muestran el avance necesario para al menos recuperar algunos datos interesantes, como por ejemplo la contraseña que se le da al usuario "admin". 


Eso no significa que las anteriores entregas no sirvan. Simplemente se muestran las distintas vías por donde se ha intentado resolver el problema y los resultados obtenidos. Eso sí: todas las entradas pueden tirar de algo de conocimiento mostrado en las anteriores independientemente del éxito que se hubiera obtenido.


Recuerda: dado que se entiende que el router es propiedad de la operadora (a no ser que el contrato diga lo contrario) no se le puede hacer cualquier cosa. Instalar un firmware de por ahí, borrar directorios o ficheros... Hagas lo que hagas siempre es bajo tu responsabilidad. 

[/upgrade 23/04/2021]

Como ya os conté en las entregas del Sercomm FG824CD I y II, existe la posibilidad de poner uno de los puertos de su switch en modo port mirroring. Esa opción se encuentra dentro del menú principal estado y soporte, menú izquierdo diagnóstico, opción port mirroring:

Sercomm FG824CD - Port mirroring
Sercomm FG824CD - Port mirroring

Con el fin de que se muestre, tocará modificar los datos internos tal y como expliqué las anteriores entradas. El parámetro que necesitaremos poner en el textbox es saber en qué puerto ethernet vamos a conectar la máquina que se pondrá a escuchar los datos. Ten en cuenta los otros posibles equipos que tengas en la red que pudieran hacer ruido al escuchar. En mi caso, sólo tiene dos cables: uno para toda la red y el destinado a una raspberry que tengo parada que es la que se ha usado con tcpdump. Una vez se ha puesto el puerto, por ejemplo, LAN3, solo queda darle al botón inicio:

Sercomm FG824CD - Port mirroring iniciado
Sercomm FG824CD - Port mirroring iniciado


Sale un pop-up de los suyos en el que te indica que no se te olvide pararlo. Como se puede ver, lo único que se muestra es el botón "parar".

Para resumir:
  • Forzar modo administrador: ya sea modificando el usuario, reseteando el router a fábrica...
  • Port mirroring: identificar el número de puerto donde se podrá el puerto destino para el mirroring.
  • Equipo con el sniffer configurado.
Yo accedí por ssh a la máquina y ejecuté tcpdump con algo parecido a esto:

# tcpdump -vvv -i eth0 -s0 -w salidaPortMirroring.pcap 'not port 22 and not host ipInterna_01 and not host ipInterna_02 and not host ipInterna_03'

El resumen:
  • -vvv: Ser muy verbose
  • -i eth0: Tirar la interfaz eth0. Aunque siendo una rasp se podría decir que sólo tiene una, también tenía un pincho USB para la wifi.
  • -s0: Esto evita que trunque datos. tcpdump por defecto no recoge el tamaño de datos completos. Este parámetro evita que lo haga.
  • -w salidaPortMirroring.pcap: Escribir lo capturado en un el fichero para un posterior análisis.
  • Filtros:
    • not port 22: Descarta los paquetes relacionados con este puerto: ssh. Importante si estás accediendo por este protocolo para quitarse ruido.
    • not host X: Descarta los paquetes de esas direcciones IP. Te quitas algo de ruido también.
Aquí tocó lo más delicado: aun estando el router encendido (obvio, si se ha puesto el port mirroring) desconectar el cable de fibra. A los pocos segundos (por ejemplo, el tiempo que se tarda en mirar los leds del frontal) volver a conectarlo. Y dejarlo un tiempecillo. No recuerdo cuánto lo dejé analizando, pero sí sé que lo suficiente. Aunque a lo mejor en un minuto ya se tenía, tcpdump lo tuve analizando un rato más. Unos minutos a lo mejor.

Ya ya tocó ponerse a analizar un poco el .pcap con wireshark. Como ya lo tenía configurado para fiiltar por el protocolo sip:

Sercomm FG824CD: Wireshark muestra REGISTER MasMovil con SIP
Sercomm FG824CD: Wireshark muestra REGISTER MasMovil con SIP

Se puede ver cómo se registró el ATA del router con MasMovil. Esto significa que algunos de los datos importantes se pueden obtener. Poco más pude analizar y ahora es el momento de ponerme a ello.

Sercomm FG824CD: REGISTER del cliente SIP
Sercomm FG824CD: REGISTER del cliente SIP

Antes de continuar: ya sé que hay datos que estoy ocultando por un lado y por otro, el mismo lo estoy dejando. Este es el mensaje del cliente sip del router que le ha mandado al servidor. No voy a negar que hay cosas que me está costando pillar. Sí sé que tenemos algunas cosillas interesantes:
  • Username: e349--------@ims.masmovil.com
  • IP: 212.230.247.89
  • Nonce: un valor aleatorio utilizado como salt para el hash de la contraseña.
  • Realm: el dominio contra el que se va a autenticar. Si bien normalmente el dominio se suele ser el que vemos en la línea que indica sip:telefono@dominio.com.
  • Diguest Authentication Response: aunque lo explico más abajo, en el enlace de Pepelux él lo hará muchísimo mejor sin duda alguna. Es la fuente principal...
  • User-Agent: Qué cliente se está usando para utilizar el servicio. A veces el servidor puede forzar a que sólo puedan autenticarse unos clientes determinados. 
Soy consciente de que hay más datos. Además, la verdad, me hago un lío porque como también está el outbound proxy, el domain (en teoría es el realm), al authname que a veces se confunde con el username (de hecho, lo que aquí ponen como username en algunos sitios lo configuran en username y vicebersa). El tema está en que como más o menos ya tenía documentación al respecto (y de hecho, en los enlaces que añadí en las anteriores entradas ya se veía qué patrón seguían), mi idea es recuperar la contraseña o al menos una cadena que con la que pueda trabajar para pasarla al sistema que yo desee. 

Como decía más arriba, en uno de los enlaces de abajo he incluido la explicación que hizo Pepelux sobre qué datos de los que nos han entregado tenemos para recuperar la contraseña. El campo digest authentication response es un MD5 en el que se concatenan otros dos MD5 y una cadena más (el nonce). De los dos MD5 internos, uno de ellos, entre otros valores conocidos, contiene la contraseña. Aunque en otro de los enlaces que os he puesto abajo (Cracking SIP II) indican que con las herramientas del paquete sipcrack pueden facilitarte el trabajo, la verdad es que a mí no me localiza logins en el .pcap cuando realmente sí que ven desde wireshark. Esta herramienta tiene una complementaria, sipdump, pero no he sido capaz de que me funcione. No obstante, he conseguido encontrar qué formato tendría su salida. Por lo tanto, al ejecutar:

# sipdump -p salida.pcap salidaSip.txt

Obtendríamos unas líneas para cada register con la siguiente estructura:

IPServidor"IPCliente"e349--------@ims.masmovil.com"[REALM_QUE_NO_PUBLICO]"REGISTER"sip:ims.masmovil.com"[NONCE_QUE_NO_PUBLICO]""""MD5"[HASH_DEL_RESPONSE]

Con esta estructura al ejecutar sipcrack se reconocen los datos:

Buscando la contraseña de la cuenta VoIP en el Sercomm FG824CD
Buscando la contraseña de la cuenta VoIP en el Sercomm FG824CD

Esto es sólo un ejemplo. Era prácticamente evidente que la contraseña no iba a estar en el listado. No obstante, tengo que averiguar si esta herramienta permite forzar también máscaras y demás para no sólo tirar de diccionario sino también modificar sus caracteres. 

La verdad, es que con las pruebas que estoy haciendo, tengo dudas de que esté poniendo correctamente los datos. Hay algunos datos que tal y como me aparecen no guardan la misma estructura que los distintos ejemplos que se encuentran.

Veré si soy capaz de seguir dándole a este tema. Que seguro que es trivial.

TR-069

Aprovechando que en la captura está la carga del arranque se me ha ocurrido que podría encontrar algún dato relacionado con tr-069. Pero esa información se transmite cifrada. 

- - - -

Seguiré trabajando en esta parte. Sobre todo, en montar correctamente la estructura del fichero para buscar la contraseña del register, porque como decía, me parece que los datos que se obtienen de la captura son bastante raros con respecto a los distintos ejemplos que se encuentran. 


- - - -
Otras fuentes:
Buscando una de las direcciones IP recuperadas (212.230.247.89) he encontrado esta entrada en un foro sobre la configuración de teléfonos VoIP que también puede ser interesante (la página 3 que es a la que he llegado): https://www.adslzone.net/foro/fibra-optica.94/manual-gigaset-c530-ip-voip-masmovil.428450/page-3

Cracking de SIP: Pepelux (@pepeluxx), del que ya os he hablado muchas veces, explica problemas de seguridad al publicar todos los logs que se producen en Asterisk incluyendo los datos necesarios para obtener la contraseña.

Cracking de SIP II: explican muy bien los mensajes que se mandan al registrarse un cliente sip y cómo intentar obtener la contraseña.
 
VoIP.org: md5Secret; Es la posibilidad de configurar un campo más con este nombre que permite poner el hash entero de la terna usuario:realm:contraseña para que esta última no sea visible en claro.

HashCat: También vienen las estructuras de cómo se espera que se pasen los hashes que se quieren romper. Entre otros, SIP digest authenticationTambién indica el modo en el que habría que ejecutarlo: 11400.

Ejemplo de salida de sipdump.txt: https://github.com/piyushcse29/john-the-ripper/blob/master/src/unused/sipdump.txt

En este enlace hay dos ficheros que empiezan por sip que tienen la estructura de cómo es el formato necesario para que las herramientas puedan hacer la fuerza bruta: https://github.com/piyushcse29/john-the-ripper/blob/master/src/unused/

9 comentarios:

  1. https://github.com.cnpmjs.org/topics/fg824cd

    ResponderEliminar
    Respuestas
    1. Muchas gracias por compartir este repositorio. De todas formas hay que tener varias cosas en cuenta:

      * Normalmente estos routers no son de nuestra propiedad. Cambiar el firmware...
      * Dice que es para ADSL pero este router es de fibra.

      No se. No me acaba de convencer. Eso sí, el que quiera montarlo e instalarlo, que lo haga bajo su responsabilidad.

      Eliminar
  2. Buenas tardes. El firmware del enrutador ADSL (ZTE H108NS) se basa en una versión anterior del SDK y tiene una estructura similar. Por tanto, hay una referencia al autor del método original.
    El proveedor proporciona el enrutador junto con el contrato y no lo devuelve después de la rescisión. El firmware de mi fg824cd está personalizado para el proveedor. Tienes uno original del fabricante.
    Necesitamos un volcado mtd de su enrutador. Desde el cual será posible recopilar el firmware para actualizar a través de la interfaz web, su y mi enrutador. También puede intentar ingresar a la interfaz web del segundo procesador del enrutador en http://192.168.253.254, cambiar la máscara del adaptador de red a 255.255.0.0 pero no cambiar su IP.

    ResponderEliminar
    Respuestas
    1. Hola de nuevo!!

      Está genial la información sobre la segunda dirección IP. Veré qué puedo hacer cuando continúe cacharreando con él.

      Con respecto al ADSL y ZTE... No lo he entendido. Este es un Sercomm.

      En relación al proveedor y los routers que proporciona: dependerá de tu contrato y del operador. En general, a no ser que te digan explicítamente que estás comprando el router, hay que devolverlo. Si no lo haces, al poco tiempo de darte de baja o hacer la portabilidad, te emitirán un recibo por el coste del trasto que suele bastante superior a su coste real en el momento de emitirlo. Algunos han acabado en la lista de morosos por devolver el recibo del cargo de no devolver el router. Como digo: depende de tu operadora y contrato.

      No sé. La historia está en conseguir recuperar los datos sin hacer una manipulación de ese calibre.

      Eliminar
  3. https://youla.ru/moskva/kompyutery/setevoe-oborudovanie/optichieskii-wifi-routier-sercomm-premium-rv6699-v4-6005b302991ada111b627be3
    499RUB=5.4065EUR
    rv6699v4=FG824CD

    ResponderEliminar
    Respuestas
    1. Sí, todo depende de las condiciones del contrato. Habrá compañías que los incluyan "de gratis" en el contrato, o con permanencia o con un pago adicional... Habrá gente que los venda directamente y que después pase (o no) lo que tenga que pasar. En wallapop hay unos cuantos. Y hacerse con un trasto de estos sí que podría permitir trastear con él sin prácticamente sin ningún problema y posiblemente analizar cómo se configura y ver si hay alguna manera de extraer datos una vez se reconfigure con el TR-069. Ese puede ser uno de los mayores problemas.

      Eliminar
  4. Es posible obtener datos

    ResponderEliminar
  5. te agradezco tu aporte. una pregunta tengo este mismo modelo solo que dice L3. me he metido en la configuracion de mi router y DICE : "Su router soporta los estándares WLAN con velocidades de transmisión de hasta 300 Mbit / s (802.11b/g/n/ac), que facilita la conexión inalámbrica de los dispositivos." tengo 600 mb de internet y no me pasa de esta misma velocidad. puede ser una pregunta obvia pero quiero confirmar. me pasa esto por que los puertos lan solo soportan 300mb de transferencia? podre cambiar de router?

    ResponderEliminar
  6. Hola!

    Siento responder tan tarde. Pues una chosa es qué velocidad soporta cada tipo de conexión del router y otra lo que tengas contratado.

    El wifi será menos eficiente que el cable de cobre. Y es muy raro que por cable te vaya a esa velocidad. O la máxima es 100 o 1.000. Dependerá del cable y del otro aparato que tengas conectado.

    Si podrás cambiar el router... No creo que eso te vaya a cambiar la situación. Y también dependerá de si es propiedad de tu operadora o tuyo. Pero ya te digo que en mi opinión no tendrás mejores resultados.

    Por cierto: piensa que si te dicen que por wifi tendrás esa velocidad máxima...

    Siento no poder darte más datos.

    ResponderEliminar