27 diciembre 2011

El pasado domingo enlazábamos en nuestro post recopilatorio "enlaces de la SECmana - 103", con lo mejor de la semana, un mensaje en la lista del sistema operativo freebsd.org en el que se anunciaba una vulnerabilidad crítica en el servicio telnetd que permitiría ejecución remota de código como usuario con privilegios máximos (ya que normalmente es ejecutado como usuario root).

La vulnerabilidad residía en la librería encrypt.c, ya que cuando se proporcionaba una clave de cifrado mediante el protocolo telnet, su longitud no era validada antes de que dicha clave se copiase dentro de un búfer de tamaño fijo. Se puede ver mejor en el parche que se puso a disposición de todos para solventar dicha vulnerabilidad, en donde se establece que si la longitud (variable len) es mayor que MAXKEYLEN, entonces se fuerza a tomar su valor:

Parche para el demonio telnetd

Ayer mismo, Jaime Peñalba "Nighterman" del grupo Painsec, al que pudimos ver en la pasada Rooted CON 2011 dando una charla sobre qué protecciones tomo él y su grupo para participar en el CTF de la Defcon 18 (aquí el video, 100% recomendado), publicaba un exploit que permitiría aprovechar esta vulnerabilidad en FreeBSD 8.0, 8.1 y 8.2:



Según se ha notificado desde el momento que se anunció esta vulnerabilidad, se tenía constancia de que estaba siendo explotada.

[+] FreeBSD Security Advisory FreeBSD-SA-11:08.telnetd
[+] Exploit telnetd-encrypt_keyid.c por Jaime Peñalba "Nighterman" de Painsec

2 comments :

Juan Aguilera dijo...

¿En qué entornos se usa telnet todavia? Lo digo desde la ignorancia. Siempre será mejor ssh ¿no?

BatchDrake dijo...

Routers y cablemodems, sistemas incrustados, LANs muy concretas donde la seguridad no importa mucho, cuentas shell del año de la patata, equipos pobremente configurados... de todo hay en las redes del señor.