lunes, 23 de agosto de 2021

Análisis de vulnerabilidades con OpenVas + Greenbone en Kali Linux.

Openvas es un escáner de vulnerabilidades para sistemas operativos y servidores con licencia GPL de Software Libre. Viene acompañado con el interfaz gráfico Greenbone nos ofrece una potente estación de monitoreo de todos los equipos de la red, con una gran capacidad gráfica para consultar y contrastar los resultados. Además tenemos la opción de obtener informes detallados sobre los análisis en varios formatos con un resultado muy profesional. Como en el post anterior yo voy a usar la versión de los repositorios de Kali pero para una mejor experiencia con la herramienta podéis descargar de Github la última versión. Y si querés instalarlo en cualquier máquina GNU/Linux basada en Debian, este tutorial os servirá igualmente.



Para el ejercicio he montado una red muy simple en VirtualBox con cuatro máquinas


  • Router pFSense: para que las máquinas naveguen; con dos interfaces 1 NAT + 1 red interna “PFSENSE” - 200.10.10.0/24
  • Windows server 2016 con una carpeta compartida y una web HTTP en IIS 200.10.10.199
  • Una máquina Debian con Virtualmin instalado (la que vimos en esta entrada) 200.10.10.99
  • Un Kali Linux donde he instalado Openvas + Greenbone - 200.10.10.200



Instalación.




Esta es sin duda la parte negativa de OpenVas / Greenbone pues la instalación es un auténtico dolor. OpenVas tiene varias bases de datos de vulnerabilidades, muy extensas y que tenemos que sincronizar con los repositorios de OpenVas antes de empezar. Estas bases de datos y su manejo dependen de varias librerías que debemos asegurarnos que se cumplen los requisitos o si no nada funcionará.

Antes de nada tenéis que comprobar que tenéis estas dependencias cumplidas. Los paquetes que os falten los instaláis con:

 

# apt install nombre-del-paquete



* GCC (paquete Debian: gcc)

* cmake >= 3.0 (paquete Debian: cmake)

* glib-2.0 >= 2.42 (paquete Debian: libglib2.0-dev)

* gnutls >= 3.2.15 (paquete Debian: libgnutls28-dev)

* libgvm_base, libgvm_util, libgvm_osp, libgvm_gmp >= 20.08.0 ([gvm-libs](https://github.com/greenbone/gvm-libs/tree/gvm-libs-20.08)

* PostgreSQL database >= 9.6 (paquete Debian: libpq-dev postgresql-server-dev-11)

* pkg-config (paquete Debian: pkg-config)

* libical >= 1.0.0 (paquete Debian: libical-dev)

* xsltproc (paquete Debian: xsltproc)




Con todo resuelto ejecutáis en la terminal:

# Sudo su


y después:


# apt update && upgrade


Aun con las dependencias resueltas, es frecuente tener varios errores durante la instalación. De momento haremos como que todo está bien para seguir con el post pero al final, os dejaré la solución para algunos de los bugs o errores mas frecuentes durante la instalación. Si vuestro error no aparece ahí, os recomiendo que hagáis una visita a la comunidad de Greenbone.


Para instalar simplemente en la terminal:


# Apt install openvas gvm redis-server


A continuación para preparar el sistema:


# gvm-setup



Aquí aparece la contraseña de acceso, muy importante tomar nota de esta (porque no es password); y se actualizan las bases de datos; la actualización dura unos largos minutos (puede durar hasta una hora) así que paciencia, sobre todo no interrumpáis el proceso porque os tocará esperar el doble. 


 

La contraseña de administrador nos aparece al principio...
 

 

 

...y al final del Setup.

Antes de arrancar OpenVas hacemos una comprobación en la terminal para ver que está todo correcto, con el comando:



# sudo gvm-check-setup



Este es el momento peliagudo pues es aquí donde brotan los errores
, el script hace una comprobación de todos los componentes y nos va comunicando los posibles errores. Pero ya sabéis si os sale alguno pasad al final del artículo a ver si el vuestro es alguno de los que relato allí (crucen los dedos). 

 

"Parece que tu instalación GVM es correcta"

 

Y buen sin mas para empezar solo tenemos que teclear en la terminal:



# sudo gvm-start




Tras unos segundos en los que parece que la cosa no marcha, nos aparece un prompt que termina en una cuenta atrás tras la cual ya podemos iniciar OpenVas con nuestro navegador en https://127.0.0.1:9392


Accedemos al “Dashboard”, así de primeras se ve un poco soso pero tranquilos que pronto le daremos algo de color. Vamos a empezar escaneando la máquina con Virtualmin.

 

 

 

En el menú “Tasks” podemos crear una tarea de escaneo nueva o para un escaneo rápido podéis usar el Asistente (“Wizard”). Como hemos venido a jugar vamos a crear una tarea nueva, pero antes debemos hacer algunas configuraciones. 


Añadimos un nuevo host, tenemos que hacer uno para cada máquina en la red. 


 

 

Luego creamos un nuevo "schedule" (agenda o programa) para establecer la hora a la que queremos el análisis. Esta operación es un poco tediosa pero hay que tener en cuenta que OpenVas nos permite analizar varias maquinas en la red y programar su análisis. Mejor lo programamos en 4 o cinco minutos para que nos de tiempo a terminar antes de la hora. Si iniciamos la tarea y se ha pasado la hora, nos tocaría esperar 24 o crear una tarea nueva porque las "schedules" no se pueden modificar, siempre hay que crear nuevas. Con el botón "now" podemos sicronizar la hora del schedule con la hora actual, luego le añadimos unos minutos y listo.



 

A continuación añadimos un nuevo target en el menú "Configuration".

 


 

 




Dentro de los parámetros que podemos configurar es el rango de puertos tenemos disponibles algunos rangos de puertos predeterminados y también podemos configurar un rango de puertos personalizados en el menú.

Para el ejercicio voy a utilizar el rango "All IANA assigned TCP" pero si queréis haceros uno propio os digo como se hace, rápido y fácil.

Un rango de puertos personalizado

Vamos al menu Configuration y alli en "Port lists" editamos un rango nuevo.
Para editar un rango de puertos hay que especificarlos asi:


T(TCP):(rango de puertos)(puertos individuales),U(UDP):(rango de puertos)(puertos individuales)


Por ejemplo si quiero que escaneo sea en los puertos del 20 al 23 y por el puerto 80 TCP, y los mismos mas el 53 por UDP sería:


T:20-23,80,U:20-23,80,53



y después guardamos el rango con el nombre que mas nos interese. Recordad, siempre el rango de puertos lo primero (en caso de que vayáis a establecer alguno).

-----------------------------------------------------------------------------------------------------------------------------------

Y bueno, con el tema de los puertos resuelto, solo nos falta crear una nueva tarea, para eso vamos al menú "Scans" >> "Tasks" y allí en "New Task"








Ahora en el “Dashboard” podemos ver nuestra tarea creada y lista para empezar. El inicio podría ser automático ya que hemos ajustado un temporizador pero bueno… Le damos al “play”, el icono triangular que hay a la derecha en la línea donde aparece nuestra tarea recién creada.
 
 
 
 

Después de unos minutos la tarea termina y podemos consultar los resultados. 
 
 
 

 
 
 
Podemos consultarlos al detalle y ver información adicional sobre posibles vulnerabilidades. OpenVas tiene su propia base de datos de CVE pero además tenemos enlaces adicionales para ampliar la información e incluso en algunos casos nos ofrece posibles soluciones.
 
 
 

 
 
 
La base de datos de CVEs es muy completa.

 
 

Ahora podemos probar un escaneo a la máquina con Windows Server. 
 


 

 
Como veis salen el doble de vulnerabilidades, es normal pues es un Windows Server 2016 que tenía por ahí con pocas actualizaciones contra la última versión de Virtualmin. 
 
 

 
 
 
Conforme vamos escaneando todas las máquinas de nuestra red el panel gráfico de OpenVas va tomando color. Tenemos disponible toda la información sobre los resultados muy bien organizada y lista para presentar resultados con la opción de exportar los informes en PDF y otros formatos.
 
 

 
 
 

 
 
 
 
El reporte en PDF se ve realmente bien.

 
 
 

Como veis es un programa muy completo y que nos ofrece un resultado muy profesional. El interfaz es un poco tosco y como vimos, la instalación es muy laboriosa,  por eso lo mejor es tener una instalación de OpenVas preparada, en una imagen de disco o en una imagen de disco para máquina virtual; así a la hora que tengamos que hacer esta tarea, ya tenemos Openvas preparado y listo para trabajar.
 
 
OpenVas es una herramienta de uso profesional para analistas de vulnerabilidades y admins de redes, y está totalmente desaconsejado usarlo en una red ajena sin permiso, porque este uso puede traer consecuencias judiciales!!
 


------------------ Errores durante la instalación --------------------------------------------------------


  • Si durante la instalación nos aparecen errores, seguro que es porque tus librerías no resuelven las dependencias necesarias. En este caso vuelve al principio del post y contrasta el listado de versiones de paquetes con los que tienes instalados.

  • Si durante el Gvm-check-setup nos aparece el error “ERROR: SCAP DATA ARE MISSING” debéis ejecutar en la terminal:


# sudo runuser -u _gvm --greenbone-feed-sync --type SCAP


Probablemente durante el gvm-setup la conexión a internet con los servidores falló y estas bases de datos no se actualizaron. Otro posibilidad es que la librería libglib2.0-dev no esté instalada correctamente o no está en la versión adecuada.

  • Si durante el Gvm-check-setup nos aparece el error “ERROR: GVMD DATA ARE MISSING” debéis ejecutar en la terminal:

# sudo runuser -u _gvm --greenbone-feed-sync --type GVMD_DATA




  • Si durante el Gvm-check-setup nos aparece el error “ERROR CERT DATA ARE MISSING” debéis ejecutar en la terminal:

# sudo runuser -u _gvm --greenbone-feed-sync --type CERT

 
 
Y ahora el error mas bizarro que he visto en mucho tiempo: Si os aparece el error “GVM version too old or too new”, después del WTF de rigor (o PQC en español) tenemos que abrir en un editor de text el archivo gvm-setup y en la línea 39 cambiar MAJOR VERSION = 21.04 a MAJOR VERSION = 21.5. Guardamos el archivo y volvemos a ejecutar gvm-setup en un terminal.
 



Y como os dije antes, si os aparece un error que no está en esta lista, os recomiendo que visitéis la comunidad de Greenbone para una solución.


No hay comentarios:

Publicar un comentario