Nástroj Nmap, známý také jako síťový mapovač, je soubor prostředků určených k provádění testů funkčnosti a penetrace v rámci celé sítě. Zahrnuje skenování portů a zjišťování potenciálních zranitelností.
Skriptovací modul Nmap, označovaný jako NSE (Nmap Scripting Engine), představuje jednu z nejvyužívanějších a nejúčinnějších funkcionalit Nmapu. Tyto skripty, sloužící ke skenování zranitelností, jsou využívány odborníky na penetrační testování a hackery k odhalování běžných, veřejně známých slabin.
Databáze CVE (Common Vulnerabilities and Exposures) obsahuje veřejně publikované informace o bezpečnostních nedostatcích. Funguje jako referenční systém pro identifikaci zranitelností a hrozeb spojených s informačními systémy.
V tomto textu si ukážeme, jak lze využít Nmap ke kontrole zranitelností.
Pojďme na to!
Instalace Nmap
Nástroj Nmap je standardně součástí většiny linuxových distribucí. Pokud jej nemáte, je nutné jej nainstalovat manuálně. To lze snadno provést pomocí následujícího příkazu:
apt-get install nmap
Alternativně jej můžete získat klonováním oficiálního git repozitáře:
git clone https://github.com/nmap/nmap.git
Následně přejděte do vytvořeného adresáře a instalujte potřebné komponenty pomocí těchto příkazů:
./configure make make install
Nejnovější verzi softwaru a binární instalátory pro Windows, macOS a Linux (RPM) naleznete zde.
Skenování zranitelností s pomocí Nmap
Mezi nejčastěji používané a nejoblíbenější skripty pro vyhledávání CVE v Nmap patří nmap-vulners, vulscan a vuln. Tyto skripty umožňují odhalit klíčové informace o bezpečnostních slabinách v systému.
Nmap Vulners
Jedním z nejznámějších nástrojů pro skenování zranitelností je Nmap Vulners. Projděme si postup instalace a provedení základního skenování CVE. Skriptový engine Nmap analyzuje HTTP odpovědi s cílem identifikovat CPE (Configuration Profile Entry) pro daný skript.
Instalace
Pro instalaci skriptu Nmap-vulners přejděte do adresáře skriptů Nmap pomocí tohoto příkazu:
cd /usr/share/nmap/scripts/
Dalším krokem je klonování git repozitáře:
git clone https://github.com/vulnersCom/nmap-vulners.git
Po naklonování repozitáře není potřeba žádná další konfigurace. Nástroj se nainstaluje automaticky.
Pro zobrazení NSE skriptů v databázi Nmap-vulners použijte příkaz ‚ls‘. Ten vypíše všechny skripty s příponou ‚.nse‘ v terminálu.
Použití
Používání NSE skriptů je jednoduché. Stačí v příkazu Nmap zadat argument „-script“ s názvem skriptu, který chcete použít.
nmap -sV --script vulners [--script-args mincvss=<arg_val>] <cíl>
Při používání NSE skriptů je nezbytné zadat i argument „-sV“. Nmap totiž potřebuje informace o verzi cílové služby, aby mohl získat přístup k databázi zranitelností. Parametr -sV je proto klíčový.
Příklad příkazu
Syntaxe je poměrně přímočará. Skript se vyvolá pomocí volby „–script“ a je nutné uvést jádro a cíl pro skenování zranitelností:
nmap -sV --script nmap-vulners/ <cíl>
Pro skenování konkrétních portů můžete na konec příkazu přidat volbu „-p“ a zadat čísla portů, které chcete skenovat:
nmap -sV --script nmap-vulners/ <cíl> -p80,223
Nmap – vuln
NSE skripty jsou zařazeny do předdefinovaných kategorií. Mezi tyto kategorie patří například autentizace, broadcast, brute force, disruptivní, malware, safe, version a vuln. Kompletní přehled všech kategorií NSE skriptů včetně jejich fází naleznete zde.
Skripty z kategorie „vuln“ se zaměřují na hledání specifických známých zranitelností a výstup poskytnou pouze v případě, že jsou na cílovém systému takové zranitelnosti nalezeny.
nmap -sV --script vuln <cíl>
Nmap-vulscan
Vulscan je NSE skript, který rozšiřuje Nmap o schopnost detekovat zranitelnosti na základě služeb a detekcí verzí. Funguje jako modul, který transformuje Nmap na skener zranitelností. Volba Nmap -sV aktivuje detekci verzí na základě služeb, která se používá k identifikaci potenciálních zneužití nalezených zranitelností v systému.
Aktuálně jsou k dispozici tyto předinstalované databáze:
- exploitdb.csv
- osvdb.csv
- securitytracker.csv
- openvas.csv
- scipvuldb.csv
- xforce.csv
- securityfocus.csv
- cve.csv
Instalace
Pro instalaci Vulscan nejprve přejděte do adresáře skriptů Nmap:
cd /usr/share/nmap/scripts/
Následně je potřeba naklonovat git repozitář a nainstalovat potřebné komponenty:
git clone https://github.com/scipag/vulscan.git ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan
Vulscan pracuje s předkonfigurovanými databázemi, které jsou uloženy lokálně. Pro aktualizaci databáze přejděte do adresáře updater:
cd vulscan/utilities/updater/
Změňte oprávnění spouštěcího souboru:
chmod +x updateFiles.sh
A nakonec aktualizujte databáze zranitelností:
./updateFiles.sh
Používání
Pro spuštění skenování zranitelností pomocí Vulscan se skript NSE používá obdobně jako nmap-vulners:
nmap -sV --script vulscan <cíl>
Ve výchozím nastavení Vulscan prohledává všechny databáze najednou. Hledání informací ve všech databázích však může trvat dlouho. Parametrem vulscandb můžete zvolit pouze jednu databázi CVE:
--script-args vulscandb=název_databáze
Příklad příkazu
nmap -sV --script vulscan --script-args vulscandb=exploit.csv <cíl> -p 80,233
Individuální skenování zranitelností
Skenování jednotlivých zranitelností lze provádět i pomocí specifických skriptů v rámci každé kategorie. Zde je seznam více než 600 NSE skriptů a 139 NSE knihoven.
Příklady
- http-csrf: Tento skript detekuje zranitelnosti Cross-Site Request Forgery (CSRF).
nmap -sV --script http-csrf <cíl>
- http-sherlock: Tento skript se snaží zneužít zranitelnost „shellshock“ ve webových aplikacích.
nmap -sV --script http-sherlock <cíl>
- http-slowloris-attack: Bez provedení DoS útoku, tento skript kontroluje cílový systém na zranitelnost vůči útoku Slowloris DoS.
nmap -sV --script http-slowloris-check <cíl>
- http-vmware-path-vuln: Testuje VMWare ESX, ESXi a Server na zranitelnost typu path-traversal.
nmap -sV --script http-vmware-path-vuln <cíl>
- http-passwd: Pokusí se získat přístup k /etc/passwd nebo boot.ini, aby se zjistilo, zda je webový server zranitelný vůči procházení adresářů.
nmap -sV --script http-passwd <cíl>
- http-internal-ip-disclosure: Při odeslání HTTP/1.0 požadavku bez hlavičky Host se tento test pokusí odhalit, zda webový server neprozrazuje interní IP adresu.
nmap -sV --script http-internal-ip-disclosure <cíl>
- http-vuln-cve2013-0156: Detekuje servery Ruby on Rails, které jsou náchylné k útokům DOS a vkládání příkazů.
nmap -sV --script http-vuln-cve2013-0156 <cílová_adresa>
Zde je seznam všech NSE skriptů, které spadají do kategorie „vuln„.
Je váš systém schopen detekovat skenování Nmap?
Průzkum je prvním krokem v etickém hackingu a penetračním testování. Hackeři jej využívají k nalezení slabin a mezer v cílovém systému. Proto by obranné systémy měly být schopné takové aktivity odhalit.
Pokud používáte nástroje SIEM (Security Information and Event Management), firewally a další bezpečnostní opatření, budete na skenování upozorněni. Zde je seznam nejlepších nástrojů SIEM, které pomohou zabezpečit vaše podnikání a organizaci před kybernetickými útoky. Tyto nástroje dokáží protokolovat i skenování Nmap. Skenování zranitelností se vyplatí, protože včasná identifikace může předejít budoucím škodám na systémech.
Závěr
Doufám, že vám tento článek pomohl lépe porozumět použití Nmap pro kontrolu zranitelností.
Mohly by vás také zajímat open source webové skenery zranitelností.