Pruebas con MAC Telnet en routers Mikrotik

Fecha: 2 de febrero del 2023

 

Escenario

 

Se analiza cómo es realmente una conexión por MAC Telnet a un router Mikrotik, ya que es muy común pensar que

por su nombre es una sesión en layer 2.

 

Esta herramienta es formidable para acceder directamente desde un router a otro cuando se pierde conectividad en layer 3,

ya sea por conexiones equivocadas de puertos físicos (un port de un equipo con una IP a otro en una red/subred diferente),

para conectarse a un router que perdió direcciones IP en las interfaces, etc...

 

 

 

 

Este laboratorio nace a partir de una discusión sobre un posible bug que genera fallos de autenticación, justamente en sesiones

MAC Telnet en routers conectados en la vía pública, y de cómo es la secuencia de envío de credenciales.

 

Para esto se realizó la conexión de dos routers mediante un switch realizando port mirroring y poder capturar tráfico de MAC Telnet

para su análisis con Wireshark.

 

1.- Análisis OSI de la sesión MAC Telnet:

 

Vayamos al grano: MAC Telnet a pesar de su nombre trabaja en layer 7, utilizando layer 1 (obviamente), layer 2 (de MAC a MAC),

layer 3 (de IP a IP) y layer 4 (con un puerto UDP).

 

El malentendido general es que en una sesión Telnet se le “apunta” a una dirección IP, pero realmente a bajo nivel la conexión es

en layer 2 (de MAC a MAC) “disfrazada” de layer 3 para, por ejemplo, poder hacer enrutamiento entre redes.

 

Aquí se le apunta a una dirección MAC para poder apuntarle a algo y generar la conexión, pero utilizando IP que sólo se pueden

utilizar en un segmento local como por ejemplo 0.0.0.0 (whats !!!?) como origen y 255.255.255.255 (broadcast) como destino.

 

Como se ve en el diagrama de conexiones, se tuvo que realizar un port-mirroring y desviar tráfico al Wireshark, ya que a pesar

de utilizar una dirección IP de broadcast, no es broadcast en layer 2 y por lo tanto no hay flooding en los puertos de un switch.

 

Luego, como con estas IP no podríamos generar una sesión TCP decente, se utiliza UDP como transporte.

 

 

 

 

2.- Detalle de la sesión de autenticación:

 

En la siguiente imagen podemos ver que el user viaja en texto plano pero el password es un hash:

 

 

También podemos ver que el resto de la sesión es texto (mas o menos) plano ya que Wireshark no pudo ensamblar

una sesión completa (hicimos un /export y vemos mas ASCII que texto plano):

 

 

Vamos a analizar el inicio de sesión de lo que iba a ser un “simple acceso Telnet de layer 2 en texto plano”.

La siguiente es una muy buena explicación que me facilitó mi ex alumno (hoy CCNP), compañero de trabajo,

amigo y colega Agustín Santarelli para este lab, con las tramas/paquetes/segmentos correspondientes.

 

Fuente: https://omniflux.com/devel/mikrotik/Mikrotik_MAC_Telnet_Procotol.txt

 

2.1.- Begin authentication:

 

This is the first data packet sent by the client to the server. (1)

It contains no variable data.

It is neither preceded nor followed by any other data sections.

The server should respond with an encryption key control packet.

 

Ethernet II, Src: 18:fd:74:03:b7:e5, Dst: dc:2c:6e:11:be:61 (1)

Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255

User Datagram Protocol, Src Port: 20561, Dst Port: 20561

MikroTik MAC-Telnet Protocol

    Protocol Version: 1

    Type: Data (1)

    Source MAC: 18:fd:74:03:b7:e5

    Destination MAC: dc:2c:6e:11:be:61

    Session ID: 0x0083

    Client Type: MAC Telnet (0x0015)

    Session Data Bytes: 0

    Control Packet

        Control Packet Magic Number: 0x563412ff

        Data Packet Type: Begin authentication (0x00)

        Control Data Length: 0

    Control Packet

        Control Packet Magic Number: 0x563412ff

        Data Packet Type: Encryption key (0x01)

        Control Data Length: 39

        Encryption Key: 61646d696e00050f5afc2c18efc3985440572b5840750823...

 

2.2.- Encryption key:

 

This is sent in response to a clients begin authentication control packet. (1)

It contains an encryption key. (2)

It is neither preceded nor followed by any other data sections.

The client should respond with a control packet containing authentication and terminal information.

 

Ethernet II, Src: dc:2c:6e:11:be:61, Dst: 18:fd:74:03:b7:e5  (1)

Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255

User Datagram Protocol, Src Port: 20561, Dst Port: 20561

MikroTik MAC-Telnet Protocol

    Protocol Version: 1

    Type: Data (1)

    Source MAC: dc:2c:6e:11:be:61

    Destination MAC: 18:fd:74:03:b7:e5

    Session ID: 0x0083

    Client Type: MAC Telnet (0x0015)

    Session Data Bytes: 0

    Control Packet

        Control Packet Magic Number: 0x563412ff

        Data Packet Type: Encryption key (0x01)

        Control Data Length: 49

        Encryption Key: 49749ad152712ba0ab7aeca15bf3807d84767650278c4e52... (2)

 

2.3.- Password:

 

This is sent in response to a servers encryption key control packet. (1)

It contains a null byte followed by an MD5 digest of a null character concatenated with the users password and the encryption key. (2)

It is not preceded by any data sections, but is followed by a username data section.

The server should respond with an end authentication control packet.

 

Ethernet II, Src: 18:fd:74:03:b7:e5, Dst: dc:2c:6e:11:be:61 (1)

Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255

User Datagram Protocol, Src Port: 20561, Dst Port: 20561

MikroTik MAC-Telnet Protocol

    Protocol Version: 1

    Type: Data (1)

    Source MAC: 18:fd:74:03:b7:e5

    Destination MAC: dc:2c:6e:11:be:61

    Session ID: 0x0083

    Client Type: MAC Telnet (0x0015)

    Session Data Bytes: 57

    Control Packet

        Control Packet Magic Number: 0x563412ff

        Data Packet Type: Password (0x02)

        Control Data Length: 32

        Password MD5: c17cbaaad6b6d4783fd137107f1dbc09b668f4691f1f27d0... (2)

    Control Packet

        Control Packet Magic Number: 0x563412ff

        Data Packet Type: Username (0x03)

        Control Data Length: 5

        Username: admin

    Control Packet

        Control Packet Magic Number: 0x563412ff

        Data Packet Type: Terminal type (0x04)

        Control Data Length: 5

        Terminal Type: linux

    Control Packet

        Control Packet Magic Number: 0x563412ff

        Data Packet Type: Terminal width (0x05)

        Control Data Length: 2

        Terminal Width: 82

    Control Packet

        Control Packet Magic Number: 0x563412ff

        Data Packet Type: Terminal height (0x06)

        Control Data Length: 2

        Terminal Height: 24

 

2.4.- Username:

 

This is sent in response to a servers encryption key control packet. (1)

It contains the username. (2)

It is preceded by a password data section and followed by a terminal type data section.

 

Ethernet II, Src: 18:fd:74:03:b7:e5, Dst: dc:2c:6e:11:be:61 (1)

Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255

User Datagram Protocol, Src Port: 20561, Dst Port: 20561

MikroTik MAC-Telnet Protocol

    Protocol Version: 1

    Type: Data (1)

    Source MAC: 18:fd:74:03:b7:e5

    Destination MAC: dc:2c:6e:11:be:61

    Session ID: 0x0083

    Client Type: MAC Telnet (0x0015)

    Session Data Bytes: 57

    Control Packet

        Control Packet Magic Number: 0x563412ff

        Data Packet Type: Password (0x02)

        Control Data Length: 32

        Password MD5: c17cbaaad6b6d4783fd137107f1dbc09b668f4691f1f27d0...

    Control Packet

        Control Packet Magic Number: 0x563412ff

        Data Packet Type: Username (0x03)

        Control Data Length: 5

        Username: admin (2)

    Control Packet

        Control Packet Magic Number: 0x563412ff

        Data Packet Type: Terminal type (0x04)

        Control Data Length: 5

        Terminal Type: linux

    Control Packet

        Control Packet Magic Number: 0x563412ff

        Data Packet Type: Terminal width (0x05)

        Control Data Length: 2

        Terminal Width: 82

    Control Packet

        Control Packet Magic Number: 0x563412ff

        Data Packet Type: Terminal height (0x06)

        Control Data Length: 2

        Terminal Height: 24

 

Ethernet II, Src: dc:2c:6e:11:be:61, Dst: 18:fd:74:03:b7:e5

Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255

User Datagram Protocol, Src Port: 20561, Dst Port: 20561

MikroTik MAC-Telnet Protocol

    Protocol Version: 1

    Type: Data (1)

    Source MAC: dc:2c:6e:11:be:61

    Destination MAC: 18:fd:74:03:b7:e5

    Session ID: 0x0083

    Client Type: MAC Telnet (0x0015)

    Session Data Bytes: 58

    Control Packet

        Control Packet Magic Number: 0x563412ff

        Data Packet Type: End authentication (0x09)

        Control Data Length: 0

 

3.- MAC Ping:

 

Esta es otra muy buena herramienta para verificar conectividad que parece de layer 2 pero que también usa layers 1, 2, 3, 4 y 7

y que permite resolvver problemas cuando tenemos del otro lado interfaces sin direcciones IP (por el motivo que sea).

 

 

En la captura podemos ver que a pesar de ser MAC pings el puerto UDP es el mismo de MAC Telnet (20561).

 

 

También podemos ver que no utiliza type y code de ICMP.

 

 

 

 

(2023) Routers whisper things to me...

Rosario, Argentina