
MikroTik RouterOS Denial-of-Service-Schwachstelle
Eine Schwachstelle in MikroTik RouterOS ermöglicht es einem nicht authentifizierten entfernten Angreifer, einen Router zum Neustart zu zwingen. Dies geschieht durch das Senden eines Pakets mit einer Größe von 1 Byte an die IPv6-Adresse von RouterOS unter Verwendung von IP Proto 97. Alle Versionen von RouterOS mit EoIPv6-Unterstützung sind wahrscheinlich anfällig für diesen Angriff. Dieser Angriff setzt voraus, dass das Zielsystem IPv6 aktiviert hat und mindestens eine Tunnel-Schnittstelle vorhanden ist.
INPUT von IP Proto 97 blockiert.EoIPv6 (Ethernet over IPv6) ist das Layer-2-Tunneling-Protokoll von MikroTik RouterOS. Das EoIPv6-Protokoll kapselt Ethernet-Frames in modifizierte EtherIP-Pakete (IP Proto 97).
MikroTiks Implementierung von EoIPv6 verwendet 12 reservierte Bits von EtherIP, um die Tunnel-ID zu speichern. MikroTik hat auch die ersten 4 Bits und die zweiten 4 Bits des EtherIP-Headers vertauscht.
Um die Tunnel-ID abzurufen und das Paket zu validieren, führt RouterOS die oben beschriebene Bit-Vertauschung bei Paketen durch, die auf Proto 97 empfangen werden. Dieser Vorgang findet statt, solange Tunnel-Schnittstellen im System vorhanden sind (auch wenn sie deaktiviert sind). RouterOS überprüft während des Vorgangs nicht die Nutzlastgröße. Daher führt ein Ein-Byte-Paket auf Proto 97 zu einem Absturz (da die restlichen Bits, die zum Aufbau der Tunnel-ID erforderlich sind, fehlen).
Fügen Sie in RouterOS eine IPv6-Adresse hinzu:
/ipv6 address add interface=ether1 address=fd00::1/64 advertise=no
Und einen Tunnel (beliebigen Typs):
/interface ipip add remote-address=127.0.0.1
Führen Sie den Exploit aus (exploit.c im Repository):
./exploit fd00::1
RouterOS wird sich innerhalb weniger Sekunden nach dem Exploit selbst neu starten. Nach dem Neustart sind folgende Logs zu sehen:
jan/20/2018 10:28:36 system,error,critical router was rebooted without proper shutdown
RouterOS 6.39.3 (nur Bugfix), 6.41 (Aktuell) und 6.42rc11 (Release Candidate) wurden getestet, und alle sind zum Zeitpunkt der Veröffentlichung anfällig für diesen Angriff. Es ist wahrscheinlich, dass diese Schwachstelle auch in älteren Versionen von RouterOS mit EoIPv6-Unterstützung vorhanden ist.
Siehe diesen Thread im MikroTik-Forum.