Pentest-Tool #5 – Naabu – der Portscanner in GO

In der 5. Woche stellen wir das Pentest-Tool #5 Naabu vor. Naabu ist wie die bereits kennengelernten Tools ein Scanner. Wir befinden uns zeitlich immer noch in der Reconnaissance Phase, in der wir als Angreifer versuchen das Zielsystem bestmöglich kennen zu lernen. Das Ziel von Naabu ist es offene Ports auf dem Zielsystem zu entdecken mit Hilfe eines sehr schnellen Scans zu identifizieren.


Jetzt eintragen für unser kostenfreies Webinar!

P-Factor: Diese Passwort-Stories sind unglaublich!

Jetzt kostenfrei anmelden
23.04.2021 von 10:00 – 10:30 Uhr
Unverbindlich, kostenfrei und jederzeit stornierbar!



Installation von Naabu

Ebenso wie Pentest-Tool #4 von letzter Woche ist Naabu ebenfalls nicht in Kali Linux vorinstalliert. Das kostenlose Programm steht wie viele andere Open-Source Projekte bei GitHub zur Verfügung. Dadurch das es quelloffen ist und die Software nicht an ein Betriebssystem oder eine andere Umgebung gebunden ist, gibt es viele Möglichkeiten den Scanner herunterzuladen. Die simpelste Lösung ist die, dass wir das gesamte Repository klonen.

Um ein GitHub Repository zu klonen, müssen wir in dem Terminal folgendes eingeben: „git clone https://github.com/projectdiscovery/naabu.git„. In diesem Beispiel klonen wir das Repository unseres Pentest-Tool #5 Naabu, anstelle der URL zu diesem Repository kann durch ersetzen der URL jedes GitHub Repository geklont werden.

Damit Naabu, welches in Go geschrieben ist, nun installiert wird müssen wir nach dem klonen noch 3 weitere Befehle ausführen. Zunächst wechseln wir den aktuellen Dateipfad mit „cd naabu/v2/cmd/naabu„. Nachdem wir in dem richtigen Ordner sind können wir mit dem Befehl „go build„, dass Programm bauen und installiern. Der letzte Befehl ist nun „mv naabu /usr/local/bin/„, dieser sorgt dafür, dass naabu in den richtigen Ordner verschoben wird, sodass das Programm von überall ausführbar ist.

Falls Sie Naabu auf einem Windows System laufen lassen möchten, oder eine andere Installationsmethode verwenden möchten können Sie eine ausführliche Anleitung in der README.md finden.




Pentest-Tool #5 – Naabu

Ein Port-Scanner ist für Penetrationtester ein Tool, welches in nahezu jedem Test benutzt wird. Es hilft dabei einen schnellen Überblick über die offenen Ports und darauf laufenden Dienste zu bekommen und somit erste Schwachstellen zu identifizieren. Ein interessanter Port ist bspw. 3389 Remote Desktop Protocol, dieser Port wird für Fernwartungen benutzt. Ist ein solcher Port offen stellt diese eine große Gefahr dar, denn Ihr Rechner wartet darauf, dass ein fremder Rechner diesen fernsteuert.

Ein weiteres interessantes Beispiel sind IoT Geräte oder eine Webcam die über einen offenen Port mit dem Internet kommunizieren. Solche offenen Webcams, die frei über das Internet angesprochen und eingesehen werden können sind eine große Gefahr.

Damit solche Gefahren entdeckt werden gibt es Port-Scanner. Naabu ist wie bereits erwähnt in Go programmiert. Go zeichnet sich vor allem über die hohe Geschwindigkeit aus, die in Scanner ein großer Vorteil sind, da der Scan deutlich schneller fertig ist als mit einem Scanner der in einer älteren Programmiersprache geschrieben ist.

Pentest-Tool #5 in der Praxis

Nach der Installation können wir viele Konfigurationsmöglichkeiten setzen, wie bspw. die Ports die getestet werden sollen. In unserem Beispiel reichen die Default-Einstellungen aus, die die Top 100 Ports auf darauf laufende Dienste überprüfen.

Um das Programm zu starten geben wir im Terminal „naabu -host w-hs.de“ ein. Mit -host definieren wir unsere Zieladresse, auf der wir nach offenen Ports scannen wollen. In diesem Beispiel scannen wir einen Server der Westfälischen Hochschule.

naabu

In den Ergebnissen können wir sehen, dass Naabu 4 offene Ports auf dem Webserver der Westfälischen Hochschule erkennen konnte.

Die ganzen Ergebnisse können wir Beispielsweise in einer Tabelle, für weitere Unteruschungen während eines Penetrationstest, festhalten.

PortStatusDienst
21/tcpOffenFTP - Fileserver
22/tcpOffenSSH - Fernwartung
80/tcpOffenHTTP - Webserver
443/tcpOffenHTTPS - Webserver

Neben HTTP (Port 80) und HTTPS (Port 443) laufen auch SSH (Port 22) und FTP (Port 21). Würde bspw. der Remote Desktop Protocol Port 3389 offen sein hätten wir dies mit dem Pentest-Tool #5 feststellen können.