Nessus – Vamos verificar a nossa segurança?

Olá a todos!

No seguimento dos nossos posts de segurança em ambientes de opensource, vamos no próximo posts falar na ferramenta de auditorias Nessus. Este é um post de 2017 agora recuperado e no entanto sempre tão em voga como a segurança do que alojamos em casa ou no nosso trabalho.

Nessus for Vulnerability Scans. Tenable Nessus Essentials is a powerful… | by Renjith Ravindranathan | FAUN — Developer Community 🐾

O Nessus, bem como o Suricata, Snort e openVAS, são produtos com raízes profundas no opensource que amadureceram em produtos referencia, com versões profissionais e empresariais, com full enterprise support que hoje em dia tornaram-se em ferramentas indispensáveis para segurança nas nossas empresas e homelabs.

O Nessus é construído e mantido pela Tenable, em ambiente GPL 2.21, sendo free para utilização pessoal e não empresarial.

No meu caso especifico utilizo a combinação do Nessus Essentials e OpenVAS para testar o meu conjunto de defesas e webapps do meu laboratório em sistemas acessíveis desde a internet e irei demonstrar como podem fazer o mesmo nos vossos homelabs.

Vamos então começar!

Em primeiro lugar, foi construído um LXC container para executar a aplicação – no meu caso Rockylinux 8.X 64bits.

Em seguida será necessário irem a pagina da Nessus efetuar vosso registo e o download do vosso Nessus aqui.

# curl –request GET –url ‘https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-10.6.3-es8.x86_64.rpm’ –output ‘Nessus-10.6.3-es8.x86_64.rpm’

Em seguida, será necessário uma licença para o vosso software. A mesma pode ser obtida aqui.

No site, existem vários tipos de subscrições que podem obter caso o desejem:

 

No nosso caso, por ser para utilização pessoal e em ambiente de laboratório, iremos optar pela essentials que está visível na pagina de registo de key, no passo acima.
Após preencher os campos pedidos em seguida iremos receber a nossa key de ativação por email.

Depois será necessário instalar o software em si no nosso container:

# dnf localinstall Nessus-10.6.3-es8.x86_64.rpm 
Last metadata expiration check: 3:58:11 ago on Sun Nov 26 06:05:28 2023.
Dependencies resolved.
===============================================================================================================================
Package Architecture Version Repository Size
===============================================================================================================================
Installing:
Nessus x86_64 10.6.3-es8 @commandline 60 M

================================================================================================================================================================================================================================================================
Install 1 Package

Total size: 60 M
Installed size: 96 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1 
Running scriptlet: Nessus-10.6.3-es8.x86_64 1/1 
Installing : Nessus-10.6.3-es8.x86_64 1/1 
Running scriptlet: Nessus-10.6.3-es8.x86_64 1/1 
Unpacking Nessus Core Components...
HMAC : (Module_Integrity) : Pass
SHA1 : (KAT_Digest) : Pass
SHA2 : (KAT_Digest) : Pass
SHA3 : (KAT_Digest) : Pass
TDES : (KAT_Cipher) : Pass
AES_GCM : (KAT_Cipher) : Pass
AES_ECB_Decrypt : (KAT_Cipher) : Pass
RSA : (KAT_Signature) : RNG : (Continuous_RNG_Test) : Pass
Pass
ECDSA : (PCT_Signature) : Pass
ECDSA : (PCT_Signature) : Pass
DSA : (PCT_Signature) : Pass
TLS13_KDF_EXTRACT : (KAT_KDF) : Pass
TLS13_KDF_EXPAND : (KAT_KDF) : Pass
TLS12_PRF : (KAT_KDF) : Pass
PBKDF2 : (KAT_KDF) : Pass
SSHKDF : (KAT_KDF) : Pass
KBKDF : (KAT_KDF) : Pass
HKDF : (KAT_KDF) : Pass
SSKDF : (KAT_KDF) : Pass
X963KDF : (KAT_KDF) : Pass
X942KDF : (KAT_KDF) : Pass
HASH : (DRBG) : Pass
CTR : (DRBG) : Pass
HMAC : (DRBG) : Pass
DH : (KAT_KA) : Pass
ECDH : (KAT_KA) : Pass
RSA_Encrypt : (KAT_AsymmetricCipher) : Pass
RSA_Decrypt : (KAT_AsymmetricCipher) : Pass
RSA_Decrypt : (KAT_AsymmetricCipher) : Pass
INSTALL PASSED
- You can start Nessus by typing /bin/systemctl start nessusd.service
- Then go to https://XXXXXX:8834/ to configure your scanner

Verifying : Nessus-10.6.3-es8.x86_64 1/1

Installed:
Nessus-10.6.3-es8.x86_64

Complete!

Nota: O certificado é self signed irá aparecer um erro de certificado quando acederem ao URL do Nessus.

Os primeiros ecrãs são relativamente simples de entender, onde nos é pedido para criar um utilizador de administração, o tipo de subscrição, e carregar a key que nos foi enviada por email num dos passos anteriores.


Finalmente e após o Nessus descarregar e compilar os seus plugins, teremos este ecrã onde poderemos criar e efetuar os nossos testes – Nota que na altura deste printscreen os plugins ainda se encontravam a compilar.

 

 

 

Vamos então começar com a nossa primeira auditoria.

No caso presente vamos procurar vulnerabilidades numa maquina acabada de instalar e configurada automaticamente por uma aplicação

Assim sendo, efetuar New Scan

Escolher um nome para o nosso teste, a vossa escolha, adicionar targets, seja por IP ou por FQDN, adicionar credenciais caso queiram testar como se um ataque interno se tratasse, e plugins que desejam utilizar:

Notem a quantidade de templates, e descritivos de cada um deles. Podem escolher um ou vários, conforme a vossa necessidade, ou efetuar um advanced scan com as opções que desejam validar.
Para a nossa demonstração especifica, para cobaia do nosso teste, usamos um container onde foi instalado um servidor apache, um reverse proxy nginx, um MTA postfix, e um MariaDB.
Após algum tempo temos o nosso primeiro resultado.

Vulnerabilidades encontradas. Notem os alertas High, medium, low e info que foram postos a descoberto:

 

Notem pf que todos os meus são possíveis de drill down em cada issue de segurança, sendo que que quando são encontrados problemas, tipicamente a solução ou indicação para a solução é igualmente demonstrada.

Finalmente e se escolhermos um alerta, temos a indicação da sua classificação, motivo e CVE associado ao alerta e mais importante, solução para o problema de segurança.

Concluído este refrescamento, o nessus é um software fundamental para quem quer gerir a sua própria infra-estrutura, havendo plugins especialmente para webapps – como por exemplo o blogger, ghost ou o WordPress, e auditorias a compliance de patches de segurança de um sistema.

Disclamer final: Lembro que andarem a fazer pentesting a sistemas que não tem acesso, é considerado um crime na lei Portuguesa e só deve ser efetuado com autorização do dono do sistema.
Experimentem portanto nos vossos sistemas.

Caso tenham alguma duvida sabem onde entrar em contacto comigo!

Abraço e bons testes!
Nuno