2020 / Bug Bounty

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

Veröffentlicht am

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.

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.

6-stelliges Passwort;265 Minuten
7-stelliges Passwort;318 Stunden
8-stelliges Passwort;955 Tage
9-stelliges Passwort;19 Jahre
10-stelliges Passwort;1357 Jahre

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.

Foto des Autors

Chris Wojzechowski

Mein Name ist Chris Wojzechowski und ich habe vor wenigen Jahren meinen Master in Internet-Sicherheit in Gelsenkirchen studiert. Ich bin geschäftsführender Gesellschafter der AWARE7 GmbH und ausgebildeter IT-Risk Manager, IT-Grundschutz Praktiker (TÜV) und besitze die Prüfverfahrenskompetenz für § 8a BSIG. Unser Brot und Buttergeschäft ist die Durchführung von Penetrationstests. Wir setzen uns darüber hinaus für ein breites Verständnis für IT-Sicherheit in Europa ein und bieten aus diesem Grund den Großteil unserer Produkte kostenfrei an.