Como analizar nuestra red en busca de vulnerabilidades con Nessus

Continuando con este interesante tema de seguridad en red y tras los recientes artículos de Nmap y Ntop, ahora le toca el turno a Nessus.

Según la wikipedia, Nessus es un programa de escaneo de vulnerabilidades en diversos sistemas operativos. Consiste en nessusd, el daemon Nessus, que realiza el escaneo en el sistema objetivo, y nessus, el cliente (basado en consola o gráfico) que muestra el avance y reporte de los escaneos. Desde consola nessus puede ser programado para hacer escaneos programados con cron.

En operación normal, nessus comienza escaneando los puertos con nmap o con su propio escaneador de puertos para buscar puertos abiertos y después intentar varios exploits para atacarlo. Las pruebas de vulnerabilidad, disponibles como una larga lista de plugins, son escritos en NASL (Nessus Attack Scripting Language, Lenguaje de Scripting de Ataque Nessus por sus siglas en inglés), un lenguaje scripting optimizado para interacciones personalizadas en redes.

Opcionalmente, los resultados del escaneo pueden ser exportados en reportes en varios formatos, como texto plano, XML, HTML, y LaTeX. Los resultados también pueden ser guardados en una base de conocimiento para referencia en futuros escaneos de vulnerabilidades.

Algunas de las pruebas de vulnerabilidades de Nessus pueden causar que los servicios o sistemas operativos se corrompan y caigan. El usuario puede evitar esto desactivando "unsafe test" (pruebas no seguras) antes de escanear.

Nessus dispone de cerca de 30000 plugins para detectar vulnerabilidades es decir que puede detectar cerca de 30000 vulnerabilidades en nuestro sistema. Para poder acceder a todos estos plugins hace falta registrarse, existiendo la posiblidad de realizar un registro sin coste alguno solo para uso domestico "Homefeed" o para uso profesional "ProfesionalFeed", cuya licencia cuesta alrededor de los 1200$.



Nessus está disponible para diversas plataformas: Linux, MAC OS X, FREEBSD y Windows.

Instalación

Para instalarlo en nuestro Ubuntu solo tendremos que introducir en la consola la siguiente instrucción:

$ sudo apt-get install nessusd nessus nessus-plugins libnessus2 libnasl2

Esto nos instalara la versión 2 de nessus que es la existente en los repositorios. Si queremos la versión mas reciente de Nessus - la 4 - la podemos descargar desde aquí.

Configuración

Ya tenemos instalado nuestro Nessus, ahora tocar configurarlo. Lo primero que debemos hacer es crear usuarios en el servidor Nessus para que puedan efectuar los test de seguridad.
Para ello tecleamos desde consola:

$ sudo nessus-adduser

Acto seguido nos pedira una serie de información que debemos completar:

  • Login: Ingresa el nombre del usuario
  • Authentication: Presiona ENTER (selección de 'pass' como método de autenticación)
  • Login password: Ingresa la contraseña del usuario
  • Login password (again): Ingresa nuevamente la contraseña.
  • User rules: Por el momento lo puedes dejar en blanco. Presiona simplemente CTRL+D
  • Is that ok?: Confirma la creación del usuario con la tecla “y” y ENTER
Ejemplo:
axlinux@ubuntu:~$ sudo nessus-adduser
Using /var/tmp as a temporary file holder
Add a new nessusd user
---------------------
Login : axlinux
Authentication (pass/cert) [pass] :
Login password :
Login password (again) :

User rules
----------
nessusd has a rules system which allows you to restrict the hosts
that john has the right to test. For instance, you may want
him to be able to scan his own host only.
Please see the nessus-adduser(8) man page for the rules syntax
Enter the rules for this user, and hit ctrl-D once you are done :
(the user can have an empty rules set)
Login : axlinux
Password : ***********
DN :
Rules :
Is that ok ? (y/n) [y] y
User added.

Se puede personalizar la configuración del servidor, la configuración por defecto es completa y válida, entre otras cosas escanea desde el puerto 0 al 15000. El fichero de configuración lo encontramos en /etc/nessus/nessusd.conf

Si pasas por un Proxy, crea el archivo /etc/nessus/nessus-fetch.rc y pon dentro la dirección del Proxy y los eventuales logins y contraseñas:
proxy=192.168.0.1
proxy_port=3128
proxy_username=renaud
proxy_password=s3cr3t
Nessus posee una gestión de permisos para describir de manera precisa lo que un usuario puede hacer. Por ejemplo, podemos configurar Nessus para permitir a un usuario que únicamente pueda escanear su máquina. Para mayor información ver la documentación de Nessus.


Es indispensable tener actualizada la lista de plugins para que Nessus pueda detectar las vulnerabilidades recientes, para ello ejecutaremos desde consola:

$ sudo nessus-update-plugins

Iniciar el servidor Nessus

Para iniciar el servidor Nessus escribiremos desde consola el siguiente comando:

$ sudo /etc/init.d/nessusd start

Seguramente te muestre algún mensaje de advertencia acerca de archivos .inc que te faltan, tranquilamente puedes hacer caso omiso de dichos mensajes.

Conexión al servidor Nessus

Para ejecutar el cliente Nessus debemos escribir en la consola:

$ nessus

También lo podremos ejecutar desde el menú de Aplicaciones > Internet > Nessus.


Nos aparecerá el front-end de Nessus. A continuación en la pestaña Nessud host debemos introducir la dirección del servidor Nessus, así como el login y la contraseña, luego haz clic en el botón “Log in”.


Como el certificado del servidor Nessus no ha sido firmado por una autoridad de certificación, selecciona la primera opción:


Luego aparecerá el certificado: hacemos clic en “Yes” para aceptarlo

Uso del cliente Nessus

De manera predeterminada, los plugins que pueden hacer que se cuelguen las máquinas que serán examinadas son desactivados. Nessus te advertirá de eso mediante una pequeña ventana popup

Inicialmente puedes dejar las opciones por defecto.
  • La pestaña Plugin te permite seleccionar qué test efectuar
  • La pestaña Credentials te permite crear eventualmente logias y contraseñas para acceder a las maquinas que serán examinadas.
  • Scan options te permite seleccionar los puertos que serán examinados y la manera de detectar un puerto abierto.
  • Target permite seleccionar qué es lo que será examinado. Puedes ingresar la dirección IP o el nombre de la máquina que será examinada.
Introducimos la dirección IP de la máquina que será examinada en la pestaña Target y hacemos clic en “Start the scan” en la parte inferior de la ventana.


Esperamos a que el analisis se finalice:



Y finalmente analizamos los resultados del escaneo, el cual lo puedes hacer por: máquina, sub-red, puerto, gravedad, etc.)



2 comentarios:

AlvaroPerez dijo...

Excelente artículo. Esta buscando como usarlo y este artículo me ha servido perfectamente.

macc dijo...

Me alegro de que te haya gustado.

Entradas populares