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.
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