Uživatelé často požadují přidání skenerů zranitelnosti do Kali, zejména těch, které začínají na „N“, ale kvůli licenčním omezením je do distribuce nezahrnujeme. Naštěstí Kali obsahuje velmi schopný OpenVAS, který je zdarma a s otevřeným zdrojovým kódem. Přestože jsme OpenVAS v minulosti krátce probrali, rozhodli jsme se věnovat důkladnější příspěvek jeho nastavení a tomu, jak jej efektivněji používat.
Skenery zranitelnosti mají často špatnou pověst, především proto, že jejich role a účel jsou nepochopeny. Skenery zranitelnosti vyhledávají zranitelnosti – nejsou to magické exploitační stroje a měly by být jedním z mnoha zdrojů informací používaných při hodnocení. Slepé spuštění skeneru zranitelnosti proti cíli téměř jistě skončí zklamáním a žalem, s desítkami (nebo dokonce stovkami) nekvalitních nebo neinformativních výsledků.
Systémové požadavky
Hlavní stížnost, kterou dostáváme ohledně OpenVAS (nebo jakéhokoli jiného skeneru zranitelnosti), lze shrnout jako „je to příliš pomalé a padá a nefunguje a je to špatné a měli byste se cítit špatně“. Téměř ve všech případech je pomalost a/nebo pády způsobeny nedostatkem systémových zdrojů . OpenVAS má desítky tisíc podpisů a pokud svému systému neposkytnete dostatek zdrojů, zejména RAM, ocitnete se ve světě bídy. Některé komerční skenery zranitelnosti vyžadují minimum 8 GB RAM a doporučujeme ještě více.
OpenVAS nevyžaduje téměř takové množství paměti, ale čím více jí můžete poskytnout, tím hladší bude váš skenovací systém. Pro tento příspěvek má náš virtuální stroj Kali 3 CPU a 3 GB RAM , což je obecně dostačující pro skenování malého počtu hostitelů najednou.
Počáteční nastavení OpenVAS v Kali
OpenVAS má mnoho pohyblivých částí a jeho ruční nastavení může být někdy problém. Naštěstí Kali obsahuje snadno použitelný nástroj s názvem ‚openvas-setup‘, který se stará o nastavení OpenVAS, stažení podpisů a vytvoření hesla pro uživatele admin.
Toto počáteční nastavení může trvat poměrně dlouho , a to i s rychlým připojením k internetu, takže se jen pohodlně usaďte a nechte to dělat svou věc. Na konci nastavení se zobrazí automaticky vygenerované heslo pro administrátora. Nezapomeňte si toto heslo uložit na bezpečné místo .
[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'.
Řešení chyb při nastavení
Skript ‚openvas-setup‘ občas na konci stahování NVT zobrazí chyby podobné následujícímu.
(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
Pokud máte tu smůlu, že se s tímto problémem setkáte, můžete spustit „openvas-check-setup“ a zjistit, která komponenta způsobuje problémy. V tomto konkrétním případě obdržíme ze skriptu následující.
...
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'.
...
Scipt „openvas-check-setup“ detekuje problém a dokonce poskytuje příkaz ke spuštění (doufejme) k vyřešení problému. Po opětovném sestavení kolekce NVT podle doporučení projdou všechny kontroly.
[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.
...
Správa uživatelů OpenVAS
Pokud potřebujete (nebo chcete) vytvořit další uživatele OpenVAS, spusťte „openvasmd“ pomocí --create-user možnost, která přidá nového uživatele a zobrazí náhodně vygenerované heslo.
[email protected]:~# openvasmd --create-user=dookie
User created with password 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyy'.
[email protected]:~# openvasmd --get-users
admin
dookie
Pokud jste něco jako my, zapomenete uložit heslo správce nebo jej omylem smažete. Naštěstí změnu uživatelských hesel OpenVAS lze snadno provést pomocí ‚openvasmd‘ a --new-password možnost.
[email protected]:~# openvasmd --user=dookie --new-password=s3cr3t
[email protected]:~# openvasmd --user=admin --new-password=sup3rs3cr3t
Spuštění a zastavení OpenVAS
Síťové služby jsou v Kali Linuxu ve výchozím nastavení zakázány, takže pokud jste nenakonfigurovali OpenVAS tak, aby se spouštěl při startu, můžete požadované služby spustit spuštěním ‚openvas-start‘.
[email protected]:~# openvas-start
Starting OpenVas Services
Po dokončení inicializace služeb byste měli najít TCP porty 9390 a 9392, které naslouchají na vašem rozhraní zpětné smyčky.
[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 *:*
Vzhledem k namáhání systémových prostředků budete pravděpodobně chtít zastavit OpenVAS, kdykoli s ním skončíte, zvláště pokud nepoužíváte vyhrazený systém pro skenování zranitelnosti. OpenVAS lze zastavit spuštěním „openvas-stop“.
[email protected]:~# openvas-stop
Stopping OpenVas Services
Používání nástroje Greenbone Security Assistant
Greenbone Security Assistant je webové rozhraní OpenVAS dostupné na vašem místním počítači (po spuštění OpenVAS) na adrese https://localhost:9392 . Po přijetí certifikátu s vlastním podpisem se vám zobrazí přihlašovací stránka a po ověření uvidíte hlavní panel.
Konfigurace přihlašovacích údajů
Skenery zranitelnosti poskytují nejúplnější výsledky, když jste schopni poskytnout skenovacímu jádru pověření k použití na skenovaných systémech. OpenVAS použije tyto přihlašovací údaje k přihlášení do naskenovaného systému a provede podrobný výčet nainstalovaného softwaru, záplat atd. Pověření můžete přidat pomocí položky „Credentials“ v nabídce „Configuration“.
Cílová konfigurace
OpenVAS, stejně jako většina skenerů zranitelnosti, může vyhledávat vzdálené systémy, ale je to skener zranitelnosti, nikoli skener portů. Namísto spoléhání se na skener zranitelnosti pro identifikaci hostitelů si mnohem usnadníte život použitím specializovaného síťového skeneru, jako je Nmap nebo Masscan, a importem seznamu cílů do 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
Jakmile budete mít svůj seznam hostitelů, můžete je importovat v části „Cíle“ v nabídce „Konfigurace“.
Konfigurace skenování
Před spuštěním kontroly zranitelnosti byste měli doladit konfiguraci skenování, která bude použita, což lze provést v části „Konfigurace skenování“ v nabídce „Konfigurace“. Můžete naklonovat kteroukoli z výchozích konfigurací skenování a upravit její možnosti, zakázat jakékoli služby nebo kontroly, které nepotřebujete. Pokud použijete Nmap k provedení nějaké předchozí analýzy vašich cílů, můžete ušetřit hodiny času skenování zranitelnosti.
Konfigurace úlohy
Vaše přihlašovací údaje, cíle a konfigurace skenování jsou nastaveny, takže nyní jste připraveni dát vše dohromady a spustit skenování zranitelnosti. V OpenVAS jsou kontroly zranitelnosti prováděny jako „úkoly“. Když nastavíte novou úlohu, můžete kontrolu dále optimalizovat zvýšením nebo snížením souběžných aktivit, které probíhají. S naším systémem s 3 GB RAM jsme upravili nastavení úlohy, jak je uvedeno níže.
Díky našim vyladěnějším nastavením skenování a výběru cíle jsou výsledky našeho skenování mnohem užitečnější.
Automatizace OpenVAS
Jednou z méně známých funkcí OpenVAS je rozhraní příkazového řádku, se kterým komunikujete pomocí příkazu ‚omp‘. Jeho použití není zcela intuitivní, ale nejsme jediní fanoušci OpenVAS a narazili jsme na několik základních skriptů, které můžete použít a rozšířit k automatizaci skenování OpenVAS.
První je openvas-automate.sh od mgeeky, semiinteraktivní skript Bash, který vás vyzve k zadání typu skenování a postará se o zbytek. Konfigurace skenování jsou pevně zakódovány ve skriptu, takže pokud chcete použít své přizpůsobené konfigurace, můžete je přidat do sekce „cíle“.
[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
Také jsme narazili na blogový příspěvek od code16, který představuje a vysvětluje jejich skript Python pro interakci s OpenVAS. Stejně jako ve výše uvedeném skriptu Bash budete muset provést drobné úpravy skriptu, pokud chcete přizpůsobit typ skenování.
[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!
Se širokou škálou možností dostupných v OpenVAS jsme v tomto příspěvku byli skutečně schopni jen poškrábat povrch, ale pokud si uděláte čas a efektivně vyladíte skenování zranitelnosti, zjistíte, že špatná pověst OpenVAS a dalších skenerů zranitelnosti je nezasloužený. Počet připojených zařízení v našich domácnostech a na pracovištích neustále roste a jejich správa se stává větší výzvou. Efektivní využití skeneru zranitelnosti může tuto správu alespoň trochu usnadnit.