CyberHat · Kennisbank

Nmap & Nmap Scripting Engine

Nmap is volgens ons de beste portscanner die er verkrijgbaar is. Hij is makkelijk toegankelijk en goed hanteerbaar, en de syntax van de commando’s is overzichtelijk. De resultaten (output) zijn relatief eenvoudig te begrijpen.

Nmap is een standaardonderdeel van Kali Linux, een besturingssysteem dat speciaal is ontwikkeld voor beveiligingstesten. U bedient Nmap via de command-line of via de grafische interface Zenmap.

Zenmap, de grafische interface van Nmap
Afb. 1 · Zenmap, de grafische interface

De meeste systeembeheerders en securityspecialisten kennen Nmap en zijn werking. Nmap kan echter veel meer dan alleen poorten scannen, onder meer dankzij scripting. Dat onderwerp lichten wij hier graag voor u uit.

Nmap via de command-line
Afb. 2 · Nmap via de command-line

Wat is de Nmap Scripting Engine (NSE)?

NSE staat voor Nmap Scripting Engine: in feite een digitaal arsenaal aan scripts waarmee u de standaard Nmap-commando’s aanvult.

Een van de sterkste punten van NSE is dat gebruikers zelf scripts kunnen schrijven, of het nu systeembeheerders, hackers, professionals of hobbyisten zijn. De scripts worden geschreven in de programmeertaal Lua.

Wat zijn de mogelijkheden met Nmap-scripts?

Een standaardinstallatie van Nmap bevat bijna 600 scripts. Er is vrijwel geen infosec-onderzoek dat u er niet mee voor elkaar krijgt. Een greep uit de mogelijkheden:

  • DNS-enumeratie
  • Brute-force-aanvallen
  • OS-fingerprinting en banner grabbing
  • Kwetsbaarheden detecteren en exploiteren
  • Malware opsporen

Er zijn vier soorten Nmap-scripts:

Prerule-scripts

Scripts die worden uitgevoerd voordat de scanfase van Nmap begint. Handig als er nog geen informatie over het doel (target) bekend is, of juist om meer targets te ontdekken.

Hostscripts

Nadat Nmap een host heeft gescand, kunnen er diensten op het betreffende target zijn ontdekt. Een voorbeeld van een hostscript is een whois-lookup van een IP-adres: die wordt na de scan uitgevoerd om te achterhalen wie de eigenaar van een bepaald IP-adres is.

Servicescripts

Scripts die worden gestart om specifieke diensten van het target te testen. Nmap bevat bijvoorbeeld meer dan 15 http-servicescripts om een webservice automatisch te testen. Heeft een webservice meerdere poorten open staan, dan kan het script ook automatisch meerdere keren draaien.

Postrule-scripts

Scripts om data en statistieken te rapporteren die tijdens de Nmap-scan zijn ontdekt. Handig om de opmaak van de resultaten aan te passen.

Gebruik van de Nmap Scripting Engine

Hoewel veel van deze scripts complex zijn om te schrijven, zijn de meeste voorzien van parameters en opties die het gebruik eenvoudiger maken.

Omdat Nmap honderden scripts bevat, is het lastig om ze allemaal één voor één te controleren. Daarom heeft Nmap de ingebouwde optie -sC, waarmee de standaardscripts in één keer worden uitgevoerd. De syntax is:

nmap -sC <ip-adres of hostnaam>

Voorbeeld:

nmap -sC 192.168.10.1

Met een wildcard (*) voert u meerdere scripts tegelijk uit. Voor SSH ziet de syntax er zo uit:

nmap --script "ssh-*" 192.168.10.1

Hetzelfde geldt voor SMB (Server Message Block):

nmap --script "smb*" 192.168.10.1

Uiteraard kunt u ook één script of een beperkt aantal scripts uitvoeren. Scripts die niet standaard in Nmap staan, roept u zo aan:

nmap --script=/mijn/directory/script 192.168.10.1

Locatie van de standaard Nmap-scripts

In Windows:

C:\Program Files (x86)\Nmap\scripts
Nmap-scriptlocatie in Windows
Afb. 3 · Scriptlocatie in Windows

In (Kali) Linux:

/usr/share/nmap/scripts/
Nmap-scriptdirectory in (Kali) Linux
Afb. 4 · Scriptdirectory in (Kali) Linux

In Zenmap kunt u scanprofielen aanmaken die handig zijn voor toekomstige scans. Daarin kunt u ook door de scripts bladeren en met een muisklik een script inladen.

Scriptselectie in een Zenmap-scanprofiel
Afb. 5 · Scanprofielen en scriptselectie in Zenmap

Eigen scripts selecteert u via de grafische interface door op de knop “Add” te klikken en naar het betreffende script te bladeren.

Samenvatting

NSE is een van de krachtigste features van Nmap. Op internet, bijvoorbeeld op GitHub, zijn veel scripts te vinden. Er is voor iedereen wel een script dat goed van pas komt.

Voor ons is Nmap een cruciale tool in ons arsenaal: veelzijdig, enorm handig en met vrijwel eindeloze mogelijkheden. Het is onze primaire tool bij het dagelijkse werk.

Bron: nmap.org