Gli utenti spesso richiedono l'aggiunta di scanner di vulnerabilità a Kali, in particolare quelli che iniziano con "N", ma a causa di vincoli di licenza, non li includiamo nella distribuzione. Fortunatamente, Kali include il potente OpenVAS, che è gratuito e Open-source. Sebbene in passato abbiamo trattato brevemente OpenVAS, abbiamo deciso di dedicare un post più approfondito alla sua configurazione e a come utilizzarlo in modo più efficace.
Gli scanner di vulnerabilità hanno spesso una cattiva reputazione, principalmente perché il loro ruolo e scopo sono fraintesi. Gli scanner delle vulnerabilità scansionano le vulnerabilità:non sono macchine magiche per sfruttare e dovrebbero essere una delle tante fonti di informazioni utilizzate in una valutazione. L'esecuzione cieca di uno scanner di vulnerabilità contro un obiettivo finirà quasi sicuramente con delusione e guai, con dozzine (o addirittura centinaia) di risultati di basso livello o privi di informazioni.
Requisiti di sistema
La principale lamentela che riceviamo su OpenVAS (o qualsiasi altro scanner di vulnerabilità) può essere riassunta come "è troppo lento e si blocca e non funziona ed è brutto, e dovresti stare male". In quasi tutti i casi, la lentezza e/o gli arresti anomali sono dovuti a risorse di sistema insufficienti . OpenVAS ha decine di migliaia di firme e se non dai al tuo sistema risorse sufficienti, in particolare la RAM, ti ritroverai in un mondo di miseria. Alcuni scanner di vulnerabilità commerciali richiedono un minimo di 8GB di RAM e consiglio ancora di più.
OpenVAS non richiede neanche lontanamente quella quantità di memoria, ma più puoi fornirla, più fluido funzionerà il tuo sistema di scansione. Per questo post, la nostra macchina virtuale Kali ha 3 CPU e 3 GB di RAM , che è generalmente sufficiente per scansionare un numero limitato di host contemporaneamente.
Configurazione iniziale di OpenVAS in Kali
OpenVAS ha molte parti mobili e l'impostazione manuale a volte può essere una sfida. Fortunatamente, Kali contiene un'utilità di facile utilizzo chiamata "openvas-setup" che si occupa della configurazione di OpenVAS, del download delle firme e della creazione di una password per l'utente amministratore.
Questa configurazione iniziale può richiedere molto tempo , anche con una connessione Internet veloce, quindi siediti e lascia che faccia le sue cose. Al termine della configurazione, verrà visualizzata la password generata automaticamente per l'utente amministratore. Assicurati di salvare questa password in un luogo sicuro .
[email protected]:~# openvas-setup
ERROR: Directory for keys (/var/lib/openvas/private/CA) not found!
ERROR: Directory for certificates (/var/lib/openvas/CA) not found!
ERROR: CA key not found in /var/lib/openvas/private/CA/cakey.pem
ERROR: CA certificate not found in /var/lib/openvas/CA/cacert.pem
ERROR: CA certificate failed verification, see /tmp/tmp.7G2IQWtqwj/openvas-manage-certs.log for details. Aborting.
ERROR: Your OpenVAS certificate infrastructure did NOT pass validation.
See messages above for details.
Generated private key in /tmp/tmp.PerU5lG2tl/cakey.pem.
Generated self signed certificate in /tmp/tmp.PerU5lG2tl/cacert.pem.
...
/usr/sbin/openvasmd
User created with password 'xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx'.
Gestire gli errori di configurazione
Occasionalmente, lo script "openvas-setup" visualizzerà errori alla fine del download NVT simili ai seguenti.
(openvassd:2272): lib kb_redis-CRITICAL **: get_redis_ctx: redis connection error: No such file or directory
(openvassd:2272): lib kb_redis-CRITICAL **: redis_new: cannot access redis at '/var/run/redis/redis.sock'
(openvassd:2272): lib kb_redis-CRITICAL **: get_redis_ctx: redis connection error: No such file or directory
openvassd: no process found
Se sei abbastanza sfortunato da riscontrare questo problema, puoi eseguire "openvas-check-setup" per vedere quale componente sta causando problemi. In questo caso particolare, riceviamo quanto segue dallo script.
...
ERROR: The number of NVTs in the OpenVAS Manager database is too low.
FIX: Make sure OpenVAS Scanner is running with an up-to-date NVT collection and run 'openvasmd --rebuild'.
...
Lo script "openvas-check-setup" rileva il problema e fornisce persino il comando da eseguire per (si spera) risolvere il problema. Dopo aver ricostruito la raccolta NVT come consigliato, tutti i controlli vengono superati.
[email protected]:~# openvasmd --rebuild
[email protected]:~# openvas-check-setup
openvas-check-setup 2.3.7
Test completeness and readiness of OpenVAS-9
...
It seems like your OpenVAS-9 installation is OK.
...
Gestione degli utenti OpenVAS
Se hai bisogno (o desideri) di creare ulteriori utenti OpenVAS, esegui "openvasmd" con --create-user opzione, che aggiungerà un nuovo utente e visualizzerà la password generata casualmente.
[email protected]:~# openvasmd --create-user=dookie
User created with password 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyy'.
[email protected]:~# openvasmd --get-users
admin
dookie
Se sei come noi, ti dimenticherai di salvare la password dell'amministratore o di eliminarla accidentalmente. Fortunatamente, la modifica delle password utente di OpenVAS è facilmente realizzabile con "openvasmd" e --new-password opzione.
[email protected]:~# openvasmd --user=dookie --new-password=s3cr3t
[email protected]:~# openvasmd --user=admin --new-password=sup3rs3cr3t
Avvio e arresto di OpenVAS
I servizi di rete sono disabilitati per impostazione predefinita in Kali Linux, quindi se non hai configurato OpenVAS per l'avvio all'avvio, puoi avviare i servizi richiesti eseguendo "openvas-start".
[email protected]:~# openvas-start
Starting OpenVas Services
Al termine dell'inizializzazione dei servizi, dovresti trovare le porte TCP 9390 e 9392 in ascolto sulla tua interfaccia di loopback.
[email protected]:~# ss -ant
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 127.0.0.1:9390 *:*
LISTEN 0 128 127.0.0.1:9392 *:*
A causa del carico sulle risorse di sistema, probabilmente vorrai interrompere OpenVAS ogni volta che hai finito di usarlo, specialmente se non stai utilizzando un sistema dedicato per la scansione delle vulnerabilità. OpenVAS può essere interrotto eseguendo "openvas-stop".
[email protected]:~# openvas-stop
Stopping OpenVas Services
Utilizzo di Greenbone Security Assistant
Greenbone Security Assistant è l'interfaccia Web di OpenVAS, disponibile sul computer locale (dopo l'avvio di OpenVAS) all'indirizzo https://localhost:9392 . Dopo aver accettato il certificato autofirmato, ti verrà presentata la pagina di accesso e una volta autenticato, vedrai la dashboard principale.
Configurazione delle credenziali
Gli scanner delle vulnerabilità forniscono i risultati più completi quando sei in grado di fornire al motore di scansione le credenziali da utilizzare sui sistemi scansionati. OpenVAS utilizzerà queste credenziali per accedere al sistema scansionato ed eseguire un'enumerazione dettagliata del software installato, delle patch, ecc. Puoi aggiungere le credenziali tramite la voce "Credenziali" nel menu "Configurazione".
Configurazione target
OpenVAS, come la maggior parte degli scanner di vulnerabilità, può eseguire la scansione di sistemi remoti ma è uno scanner di vulnerabilità, non uno scanner di porte. Invece di affidarti a uno scanner di vulnerabilità per identificare gli host, ti semplificherai la vita utilizzando uno scanner di rete dedicato come Nmap o Masscan e importando l'elenco dei target in OpenVAS.
[email protected]:~# nmap -sn -oA nmap-subnet-86 192.168.86.0/24
[email protected]:~# grep Up nmap-subnet-86.gnmap | cut -d " " -f 2 > live-hosts.txt
Una volta che hai il tuo elenco di host, puoi importarli nella sezione "Target" del menu "Configurazione".
Configurazione scansione
Prima di avviare una scansione delle vulnerabilità, è necessario ottimizzare la configurazione di scansione che verrà utilizzata, operazione che può essere eseguita nella sezione "Configurazioni di scansione" del menu "Configurazione". Puoi clonare qualsiasi configurazione di scansione predefinita e modificarne le opzioni, disabilitando tutti i servizi o i controlli non necessari. Se utilizzi Nmap per condurre alcune analisi preliminari dei tuoi obiettivi, puoi risparmiare ore di tempo di scansione delle vulnerabilità.
Configurazione attività
Le tue credenziali, le destinazioni e le configurazioni di scansione sono configurate, quindi ora sei pronto per mettere insieme tutto ed eseguire una scansione delle vulnerabilità. In OpenVAS, le scansioni delle vulnerabilità vengono eseguite come "Attività". Quando imposti una nuova attività, puoi ottimizzare ulteriormente la scansione aumentando o diminuendo le attività simultanee che hanno luogo. Con il nostro sistema con 3 GB di RAM, abbiamo regolato le nostre impostazioni delle attività come mostrato di seguito.
Con le nostre impostazioni di scansione più perfezionate e la selezione del target, i risultati della nostra scansione sono molto più utili.
Automazione di OpenVAS
Una delle caratteristiche meno conosciute di OpenVAS è la sua interfaccia a riga di comando, con la quale interagisci tramite il comando "omp". Il suo utilizzo non è del tutto intuitivo, ma non siamo gli unici fan di OpenVAS e ci siamo imbattuti in un paio di script di base che puoi utilizzare ed estendere per automatizzare le tue scansioni OpenVAS.
Il primo è openvas-automate.sh di mgeeky, uno script Bash semi-interattivo che richiede un tipo di scansione e si occupa del resto. Le configurazioni di scansione sono codificate nello script, quindi se desideri utilizzare le tue configurazioni personalizzate, puoi aggiungerle nella sezione "obiettivi".
[email protected]:~# apt -y install pcregrep
[email protected]:~# ./openvas-automate.sh 192.168.86.61
:: OpenVAS automation script.
mgeeky, 0.1
[>] Please select scan type:
1. Discovery
2. Full and fast
3. Full and fast ultimate
4. Full and very deep
5. Full and very deep ultimate
6. Host Discovery
7. System Discovery
9. Exit
--------------------------------
Please select an option: 5
[+] Tasked: 'Full and very deep ultimate' scan against '192.168.86.61'
[>] Reusing target...
[+] Target's id: 6ccbb036-4afa-46d8-b0c0-acbd262532e5
[>] Creating a task...
[+] Task created successfully, id: '8e77181c-07ac-4d2c-ad30-9ae7a281d0f8'
[>] Starting the task...
[+] Task started. Report id: 6bf0ec08-9c60-4eb5-a0ad-33577a646c9b
[.] Awaiting for it to finish. This will take a long while...
8e77181c-07ac-4d2c-ad30-9ae7a281d0f8 Running 1% 192.168.86.61
Ci siamo anche imbattuti in un post sul blog di code16 che introduce e spiega il loro script Python per interagire con OpenVAS. Come per lo script Bash sopra, dovrai apportare alcune lievi modifiche allo script se desideri personalizzare il tipo di scansione.
[email protected]:~# ./code16.py 192.168.86.27
------------------------------------------------------------------------------
code16
------------------------------------------------------------------------------
small wrapper for OpenVAS 6
[+] Found target ID: 19f3bf20-441c-49b9-823d-11ef3b3d18c2
[+] Preparing options for the scan...
[+] Task ID = 28c527f8-b01c-4217-b878-0b536c6e6416
[+] Running scan for 192.168.86.27
[+] Scan started... To get current status, see below:
zZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzz
...
zZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzz
[+] Scan looks to be done. Good.
[+] Target scanned. Finished taskID : 28c527f8-b01c-4217-b878-0b536c6e6416
[+] Cool! We can generate some reports now ... :)
[+] Looking for report ID...
[+] Found report ID : 5ddcb4ed-4f96-4cee-b7f3-b7dad6e16cc6
[+] For taskID : 28c527f8-b01c-4217-b878-0b536c6e6416
[+] Preparing report in PDF for 192.168.86.27
[+] Report should be done in : Report_for_192.168.86.27.pdf
[+] Thanks. Cheers!
Con l'ampia gamma di opzioni disponibili in OpenVAS, siamo stati in grado di scalfire solo la superficie in questo post, ma se ti prendi il tuo tempo e ottimizzi efficacemente le tue scansioni di vulnerabilità, scoprirai che la cattiva reputazione di OpenVAS e di altri scanner di vulnerabilità è immeritato. Il numero di dispositivi connessi nelle nostre case e nei luoghi di lavoro è in continuo aumento e la loro gestione diventa sempre più una sfida. Fare un uso efficace di uno scanner di vulnerabilità può rendere tale gestione almeno un po' più semplice.