Skip to content
Luca Olivetti edited this page Aug 15, 2020 · 6 revisions

zte-digi

Como obtener acceso admin, telnet y credenciales voip en el ZTE H298A de digi (fimware T12)

Entorno

Todos mis experimentos han sido con kubuntu 19.10, pero debería funcionar, con los debidos cambios, en cualquier otra distribución. Yo he usado dos tarjetas ethernet: una conectada a la ont y la otra al router. Si no quieres inspeccionar el trafico con mitmproxy es suficiente una tarjeta pero tendrás que modificar los nombres de las conexiones PPPoE y no garantizo que todo funcione.

Software utilizado

  • wireshark (para inspeccionar la comunicación en claro, ojo, esto no es un tutorial sobre wireshark)
  • network-manager (para crear las vlanes sobre las tarjetas ethernet)
  • mitmproxy (para inspeccionar la comunicación con el servidor tr-069 de digi, no ha servido de mucho)
  • lighttpd y stunnel (para simular el servidor tr-069 de digi)
  • además del servidor pppoe que viene en los repositorios, he usado rp-pppoe compilado desde fuentes: tuve problemas con las vlanes que no tienen nada que ver con el servidor, probablemente el empaquetado funcione igual de bien, pero ya había hecho casi todo con rp-pppoe. Para más detalles e instrucciones consulta también los 3 articulos en https://www.kaanbasal.net/posts/a-journey-to-the-firmware-of-zte-h267a-part-i/.
  • zte-config-utility para descifrar y modificar el fichero config.bin

Procedimiento

El procedimiento consiste en:

  1. simular un servidor PPPoE para obtener la password PPPoE
  2. establecer conexión PPPoE con una tarjeta ethernet
  3. capturar la comunicación con el servidor tr-069 de digi
  4. simular el servidor tr-069 de digi para establecer la password de admin del router
  5. entrar el en router con password de admin y obtener el fichero config.bin
  6. descifrar el fichero config.bin (ojo, este fichero no tiene ningún parámetro voip, tampoco la password)
  7. crear un nuevo config.bin con el acceso telnet habilitado
  8. entrar por telnet al router, obtener el fichero db_user_cfg.xml y descifrarlo

Naturalmente, a los dos días de publicar este procedimiento, digi parcheará el firmware para tapar el agujero, pero encontraré otra manera de entrar.

Vlanes con network-manager

No voy a explicar como crear vlanes con network-manager (duckduckgo y google te ayudarán), solo ten en cuenta que la sessión PPPoE usa la vlan20 y que es muy importante marcar la opción de reordenar las cabeceras, si no la sesión PPPoE no se establece.

Supongo que se tendrá que activar la misma opción, sea cual sea el metodo que uses para crear las vlanes.

He creado una vlan por tarjeta con los nombres vlan20 y vlan20usb sobre las dos interfaces ethernet que he usado, la primera para conectar con la ont y la segunda con el router.

En teoría se debería poder hacer (casi) todo con solo una tarjeta de red, en este caso hay que omitir los pasos 2 y 3, pero yo no lo he hecho así y no puedo asegurar que funcione.