Nmap Scripting Engine
Předpokládám, že program Nmap alespoň trošku znáte, nebo tušíte k čemu slouží. V dnešním článku se zaměřím na Nmap Scripting Engine, který umožňuje psát síťové skripty v jazyku Lua. Nebudu popisovat jak takový skript vytvořit, ale ukážu jak využít množství již napsaných a připravených skriptů, které rozšíří schopnosti Nmapu a umožní Vám tak získat více informací o vzdáleném počítači, či počítačové síti.
Poznámka: Protože se poslední dobou trochu více věnuji tématu bezpečnosti, rozhodl jsem se vytvořit pár článků zaměřených na bezpečnost. Spíš než o teorii by mělo jít o praktické ukázky. Zaměřit bych se chtěl jak na bezpečnostní audit, tak na praktické ukázky některých útoků. Konkrétně by se články měly věnovat nástrojům Nmap, Ettercap, Metasploit framework a pokud se mi bude chtít, tak bych bych napsal i něco o technikách, které používají Linuxové rootkity, aby skryly svou přítomnost v napadeném systému a připojil několik ukázkových zdrojových kódů. Přesněji by šlo o techniky používané rootkity ve formě jaderných modulů. Takže teď už hurá na Nmap.
Co je to Nmap?
Nmap je nástroj pro průzkum (mapování) sítě a bezpečnostní audit. Jeho název je zkratkou pro Network Mapper.
Co je to Nmap Scripting Engine (NSE)?
NSE je funkce/vlastnot Nmapu, která umožňuje psát skripty pro různé síťové úlohy. Skripty se programují v jazyku Lua a na stránce Nmapu naleznete databázi těchto skriptů, včetně popisu jejich funkce. Tyto skripty jsou rozděleny do několika kategorií, podle svého zaměření, funkce a intrusivnosti.
Kategorie skriptů pro NSE
auth
Skripty které se pomocí hrubé síly snaží odhalit přihlašovací údaje pro různé síťové služby (http, ftp, snmp, …).
default
Skripty, které se spouští automaticky, při použití přepínače -sC nebo -A. Jde o skripty, které:
- By měly být nějakým způsobem obecně užitečné.
- Jsou dostatečně rychlé, aby neprodlužovali dobu skenování.
- Nemají příliš velký výstup, aby neznepřehledňovali výsledky.
- Jsou spolehlivé a je nízká šance na to, že by podávali nepřesné výsledky.
- Nejsou intrusivní, takže nezpůsobí na cílovém systému škody.
- Zachovávají soukromí, takže při skenování nevyužívají třetích stran. Třetí stranu například využívá skript whois.
discovery
Skripty, které se aktivně snaží získat co nejvíce informací o cíli, jako například titulek www stránek nebo výpis sdílených zdrojů na cílovém systému.
dos
Skripty, které můžou při použití způsobit nedostupnost cílové služby.
exploit
Skripty, které se aktivně snaží zneužít některé zranitelnosti.
external
Skripty, které odesílají data třetím stranám, například dříve zmíněný whois skript.
fuzzer
Skripty pro fuzzy testování. Tyto skripty například odesílají náhodná data na server a tím testují, jestli je server schopen správně reagovat na neočekávaný vstup.
intrusive
Skripty, které nějakým způsobem zasahují do cílového systému a případně mohou způsobit i jeho pád.
malware
Skripty, které testují, zdali je na cílovém počítači škodlivý kód, například ve formě backdooru.
safe
Bezpečné skripty, tedy takové skripty, které by neměli způsobit pád cílového systému, ani ho nějak poškodit.
version
Skripty pro detekci verze služeb či programů běžících na serveru.
vuln
Skripty testující známé zranitelnosti na cílovém systému.
Výstup skriptů
Skripty by měly být naprogramovány tak, aby dávali pouze užitečný výstup. Pokud tedy skript nezjistí žádné další údaje, nebude z něj žádný výstup. Takže výstup Nmapu s použitím skriptů a bez použití skriptů během skenování, může vypadat úplně stejně, pokud žádný skript nenajde nic, co by stálo za zmínku.
Použití skriptů
Jak již bylo řečeno, při použití volby -A nebo -sC, budou použity skripty v kategorii default. Pokud chcete použít jinou kategorii, nebo pouze jeden konkrétní skript, je třeba použít přepínač –script.
Příklady použití
nmap -sC target
Spustí skripty v kategorii default.
nmap –script malware,vuln target
Spustí skripty v kategorii malware a vuln.
nmap –script “malware or vuln” target
Spustí skripty, které jsou v kategorii malware nebo vuln.
nmap –script “default and safe” target
Spustí skripty, které jsou v kategorii default a zároveň i v kategorii safe.
nmap –script “ftp-*” target
Spustí skripty, jejichž jméno začíná na ftp-.
nmap –script “not intrusive” target
Spustí všechny skripty, vyjma těch, které jsou v kategorii intrusive.
nmap –script ftp-proftpd-backdoor target
Spustí skript ftp-proftpd-backdoor.
nmap –script ftp-proftpd-backdoor,default target
Spustí skript ftp-proftpd-backdoor a skripty v kategorii default.
Přidání nového skriptu
Nmap si skripty na Linuxu uchovává většinou v adresáři /usr/share/nmap/scripts.
Pokud si tedy stáhnete nový skript, stačí ho zkopírovat do tohoto adresáře a pak spustit příkaz, který aktualizuje databázi:
nmap --script-updatedb