Administratoren nutzen Nmap schon jeher für Netzwerkanalysen, Sicherheitsüberprüfungen und zur Fehlerbehebung. Es gibt kaum eine Plattform, auf der Nmap noch nicht läuft und so kann man es natürlich auch auf dem Mac einsetzen. Entweder man lädt das Binary von der Nmap Homepage oder man installiert es per Fink oder MacPorts. In meinem Fall habe ich es über Fink installiert und beim ersten Test spuckte das Terminal nur folgende Fehlermeldung des Befehls getinterfaces aus:
Starting Nmap 4.20 ( http://insecure.org ) at 2009-07-17 16:59 CEST
getinterfaces: Failed to open ethernet interface (vmnet8). A possible cause on BSD operating systems is running out of BPF devices (see http://seclists.org/lists/nmap-dev/2006/Jan-Mar/0014.html).
QUITTING!
Starting Nmap 4.20 ( http://insecure.org ) at 2009-07-17 16:59 CEST
getinterfaces: Failed to open ethernet interface (vmnet8). A possible cause on BSD operating systems is running out of BPF devices (see http://seclists.org/lists/nmap-dev/2006/Jan-Mar/0014.html).
QUITTING!
Nach kurzer Recherche wurde klar, dass es an meiner VMware Fusion Installation liegt. VMware Fusion ist eine Virtualisierungssoftware für den Mac, mit der man z.B eine Windows Installation in Mac OS X laufen lassen kann. Hierbei werden auch virtuelle Netzwerkinterfaces speziell für die virtuellen Maschinen angelegt, die in diesem Fall die Ausführung von Nmap verhindern.
Das Problem kann beseitigt werden, in dem man die virtuellen Netzwerke kurzfristig deaktiviert, Nmap ausführt und anschließend die virtuellen Netzwerke wieder aktiviert. VMware bietet hierfür bereits zwei Shellskripte an, die auch beim Starten und Herunterfahren des Mac für diesen Zweck eingesetzt werden.
Um das ganze nun mit einem Befehl auszuführen, habe ich mir ein kleines Shellskript gebastelt, dem die Nmap Parameter übergeben werden und als Ausgabe sieht der User lediglich das Ergebnis des Scans. Nmap muss als Administrator (sudo auf dem Mac) ausgeführt werden, also muss auch das Skript mit sudo gestartet werden. Hier das Skript:
#!/bin/sh
sudo /Library/Application\ Support/VMware\ Fusion/boot.sh –stop &>/dev/null
/sw/bin/nmap $@
sudo /Library/Application\ Support/VMware\ Fusion/boot.sh –start &>/dev/null
Das Skript wird folgendermaßen abgearbeitet:
- Der erste Befehl hält die virtuellen Netzwerke an und die Ausgabe wird nicht in der Konsole dargestellt, sondern in den Müll geschoben
- Der nächste Befehl führt Nmap aus und nimmt als Variable die Parameter entgegen, die der User dem Skript mitgibt. Hier muss eventuell ein anderer Pfad zu Nmap eingetragen werden!
- Der letzte Befehl startet die virtuellen Netzwerke wieder
So kann es ausgeführt werden:
- Um das Skript ausführen zu können, muss das Execute Flag gesetzt werden. Dies muss nur einmal auf das Skript angewandt werden.
- Skript mit Nmap Parametern und sudo ausführen. Das System fragt nach dem Passwort des Benutzers, dieser muss Mac OS X administrieren dürfen. Hier ein Beispiel:
- sudo ./skript.sh -sS www.domain.org
Links: