12 de septiembre de 2011

Nessus y CentOS - Resolviendo algunos problemas

Resulta que estábamos en cierta ocasión realizando una auditoría de caja blanca a un sistema operativo CentOS 5.3, con tan mala suerte que lo habían securizado.

Al iniciar la auditoría, a pesar de que teníamos credenciales como root en el sistema a analizar, Nessus nos devolvía la siguiente pantalla:


Aunque las credenciales sean válidas, si el plugin de Nessus no es capaz de identificar qué tipo de sistema es, nos va a responder diciendo que las credenciales son inválidas o que el sistema no está soportado, como se puede observar.

Buscando cómo realizaba Nessus este tipo de comprobación, llegamos a localizar el plugin con el cual realizaba la autenticación. Para el caso de nuestra instalación el plugin es: /opt/nessus/lib/nessus/plugins/ssh_get_info.nasl.

Analizando el fichero (ssh_get_info.nasl), llegamos a un punto en el que observamos que analizaba el contenido del fichero /etc/redhat-releases (entre otros) de la máquina objetivo del análisis para tratar de identificar con qué sistema estaba trabajando.

Hay un punto concreto en el que realiza lo siguiente:

[...]
(524) buf = info_send_cmd(cmd: "cat /etc/redhat-release");
[...]
(580) else if ( "CentOS" >< buf )
[...]

La línea 524 lo que hace es leer el contenido del fichero /etc/redhat-release del sistema objetivo, mientras que la línea 580 comprueba si la cadena "CentOS" está contenida en la variable 'buf' (que almacena el contenido del fichero).

La forma fácil de solucionar nuestro problema es modificar el contenido original del fichero /etc/redhat-release de la máquina a auditar añadiendo una línea con la cadena "CentOS release 5 (Final)" para que el plugin de Nessus, al pasar por la línea 580, detecte el sistema. Y efectivamente, al realizar de nuevo el análisis con esto modificado, el resultado es lo que se muestra a continuación:


Es decir, nos permite loguearnos por ssh en el sistema analizado y sacar los resultados que esperábamos.

PD: Mis agradecimientos a Fernando Saavedra, compañero y colega que siempre está dispuesto a ponerse a investigar todo lo que va surgiendo.