nmapAutomator - Ein Hilfsskript für nmap

nmapAutomator

Ein Hilfsskript für nmap

Mark Zeman
von Mark Zeman
am 14. April 2022
Lesezeit: 9 Minuten

Keypoints

So vereinfachen Sie Nmap-Scans

  • Einfachere Befehle und ausführlichere Hilfe als nmap
  • Menschen-lesbarer Output während der Ausführung
  • Beschränkte Scans, lässt sich aber anpassen
  • Die Empfehlungen sind eine statische Liste
  • Nur sehr wenige Abhängigkeiten

Für das laterale Bewegen, das Erkunden dafür oder einfach nur für die Durchführung eines Netzwerkscans eines Ziels während eines Pentest-Einsatzes ist nmap das Standardwerkzeug in jedem Scan-Arsenal. Es ist jedoch ein komplexes Tool mit vielen Optionen. nmapAutomator soll die Erfahrung verbessern und vieles von dem automatisieren, was nmap tun kann.

Die Grundidee ist, dass es die Benutzung von nmap vereinfacht, indem es in der Lage ist, Scans zu empfehlen und nützliche Voreinstellungen zur Verfügung zu stellen. Anstatt sich merken zu müssen, dass die Erkennung aller aktiven Hosts in einem Netzwerk sudo nmap -vvv --reason -e $INTERFACE $TIMING -sn -PS22-25,80,139,443,8080 -PU53,123,137,161 -PE -PP -PM -iL $ALL_TARGETS_FILE ist, führt man einfach ./nmapAutomator.sh -H <Netzwerkadresse> -t network aus und fertig!

Running a network scan on 192.168.0.10

Host is likely running Linux 


---------------------Starting Network Scan---------------------


Found the following live hosts: 
192.168.0.11
192.168.0.12
192.168.0.13
192.168.0.14


---------------------Finished all scans------------------------


Completed in 2 seconds

Es speichert sogar automatisch die Ausgabe, sowohl von der Shell als auch im .nmap-Format, so dass ein Speichern nicht vergessen geht. Der Nachteil ist natürlich, dass es alle Optionen verbirgt. Wenn man also auf Hosts stosst, die sich seltsam verhalten, und ein Host-Timeout benötigen, müssen man sich wieder selbst in das Shell-Skript einarbeiten.

Da nmapAutomator als gut kommentiertes Shell-Skript geschrieben ist, das keine kryptischen Kurznamen verwendet, ist das glücklicherweise nicht allzu schwer zu bewerkstelligen. Die Einstellung, die für die Netzwerkerkennung verwendet wird, ist eine einfache Anpassung:

${nmapType} -T4 --max-retries 1 --max-scan-delay 20 -n -sn -oN nmap/Network_${HOST}.nmap ${subnet}/24

Dies ist ein viel einfacherer Scan als der oben vorgeschlagene, aber für viele Netzwerke wird er ausreichen, und wo dies nicht der Fall ist, ist es nicht schwer, ihn zu ändern. Dabei gibt es fünf zentrale nmap-basierte Scan-Typen:

  1. Network: für die Netzwerkerkennung
  2. Port: TCP-Port-Scan
  3. Script: Skript-Scan mit NSE-Skripting für zusätzliche Informationen
  4. Full: Kombination aus Port- und Skript-Scans
  5. UDP: UDP-Port-Scan, der auch auf Schwachstellen prüft

Der *Vulns*-Scan nutzt ebenfalls nmap, wenn auch nur um über die nmap Scripting Engine (NSE) das Vulners-Skript auszuführen, welches dann nach Schwachstellen mit CVSS-Score von 7.0 oder höher sucht.

Running Vuln scan on common ports
This may take a while, depending on the number of detected services..


PORT     STATE SERVICE  VERSION
25/tcp   open  smtp     Postfix smtpd
| smtp-vuln-cve2010-4344:
|_  The SMTP server is not Exim: NOT VULNERABLE
80/tcp open http nginx (reverse proxy)
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-csrf: Couldn't find any CSRF vulnerabilities.
143/tcp open imap Dovecot imapd
443/tcp open ssl/http nginx (reverse proxy)
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-csrf: Couldn't find any CSRF vulnerabilities.
465/tcp open ssl/smtp Postfix smtpd
| smtp-vuln-cve2010-4344: 
|_  The SMTP server is not Exim: NOT VULNERABLE
587/tcp open smtp Postfix smtpd
| smtp-vuln-cve2010-4344: 
|  The SMTP server is not Exim: NOT VULNERABLE
993/tcp open imaps?
8090/tcp open rtsp
| fingerprint-strings:
|   FourOhFourRequest, GetRequest, HTTPOptions:
|     HTTP/1.0 404 Not Found
|     content-type: text/html; charset=utf-8
|     content-length: 53
|     <html><body><h1>Resource not found</h1></body></html>
|   RTSPRequest:
|     RTSP/1.0 501 Not Implemented
|     content-length: 0
|   SIPOptions:
|     SIP/2.0 501 Not Implemented
|     content-length: 0 

Interaktive Erkundung

Trotz des Namens automatisiert nmapAutomator nicht nur nmap, sondern nutzt es auch, um verschiedene andere Tools zu befüllen. Der eigentliche Stolz von nmapAutomator ist jedoch der Scan-Typ Recon, bei dem er verschiedene Tools zur Durchführung weiterer Scans vorschlägt.

Bevor wir darauf eingehen, was dieser Modus alles kann, müssen wir festhalten, dass hier sein grösstes UX-Versagen liegt. Es wird versucht, dem Benutzer 25 Sekunden Zeit zu geben, um auszuwählen, welches Tool er ausführen möchte oder ob er irgendetwas überspringen möchte, aber wegen des Countdowns wird die Befehlszeile jede Sekunde aktualisiert und löscht Ihre Eingaben, um Ihnen freudig mitzuteilen, dass smtp- eine “Falsche Wahl” war. Natürlich, aber leider war es nicht möglich, schnell genug in die Tasten zu hauen, um smtp-user-enum innerhalb von 1s richtig einzugeben.

Die Vorschläge sind relativ einfach, aber nützlich. Es gibt kein maschinelles Lernen oder ähnliches, nur eine einfache Liste, die z.B. dnsrecon ausführt, wenn Port 53/tcp als offen entdeckt wurde oder SNMPscan, wenn Port 161/udp offen ist. Gleichzeitig wird ein Nicht-Standard-Port wie 8090 nicht als Web-Port erkannt und es wird kein weiterer Scan durchgeführt.

Which commands would you like to run?
All (Default), ffuf, nikto, smtp-user-enum, sslscan, Skip <!>

Running Default in (1)s:


---------------------Running Recon Commands---------------------


Starting smtp-user-enum scan

Starting smtp-user-enum v1.2 ( http://pentestmonkey.net/tools/smtp-user-enum ) 

 ----------------------------------------------------------
|                   Scan Information                       |
 ----------------------------------------------------------

Mode ..................... VRFV
Worker Processes ......... 5
Usernames file ........... /usr/share/wordlists/metasploit/unix_users.txt
Target count ............. 1
Username count ........... 168
Target TCP port .......... 25
Query timeout ............ 5 secs
Target domain ............

######## Scan started at Fri Apr 8 16:38:29 2022 ########
######## Scan completed at Fri Apr 8 16:38:32 2022 ########
0 results. 

168 queries in 3 seconds (56.0 queries / sec) 

Finished smtp-user-enum scan 

=========================

Starting nikto scan 

- Nikto v2.1.6

Dazu kommt noch der *All*-Modus, welcher alle anderen Varianten kombiniert. Dieser nutzt die Informationen, welche mit jedem Schritt gesammelt werden, um die Zielliste für den nächsten Schritt zu verfeinern, wodurch dies die zuverlässigste und umfangreichste Art ist, nmapAutomator zu benutzen.

Wenig Abhängigkeiten

Eine weitere positive Sache an nmapAutomator ist, dass er nicht viele Abhängigkeiten benötigt. Wenn Kali Linux verwendet wird, ist die einzige fehlende Abhängigkeit gobuster oder ffuf (beides funktioniert), da alle anderen verwendeten Tools bereits installiert sind. Beide Tools dienen dem Bruteforcing von Verzeichnissen und Dateien in Webseiten, ähnlich wie dirbuster oder dirb. Gobuster kann auch DNS-Subdomains, virtuelle Hostnamen auf Webservern und Amazon S3-Buckets durchnummerieren, wenn es unabhängig davon verwendet wird.

ffuf (Fuzz Faster U Fool) ist ein Fuzzing-Tool, das auch eine Menge zusätzlicher Fuzzing-Massnahmen durchführen kann, einschliesslich POST-Daten oder GET-Parameter. Es kann sogar Daten, die von anderen Tools generiert wurden, für sein Fuzzing verwenden. Es gibt einen recht umfassenden Artikel über ffuf, der alle seine verschiedenen Funktionen erklärt, einschliesslich eines Videos von Codingo.

Fazit

Insgesamt ist nmapAutomator ein nettes kleines Tool, das einfach zu benutzen ist und den Einstieg in das Scannen erleichtert. Leider sind seine Scans nicht sehr detailliert, und insbesondere bietet nmapAutomator keine guten Werkzeuge, wenn viele Hosts über mehrere Subnetze hinweg gescannt werden müssen. Ausserdem bieten sowohl gobuster als auch ffuf eine Menge zusätzlicher Funktionen, auch für passive Scans, welche nicht Daten per POST senden oder ähnliches, die integriert werden könnten. Mit ein wenig Anpassung und Arbeit an seinen Erkundungsvorschlägen könnte nmapAutomator ein grossartiges Tool werden. Es ist aber schon jetzt ein weiteres Beispiel dafür, wie viele coole Open-Source-Tools es da draussen gibt, die von der Infosec-Community bereitgestellt werden.

Über den Autor

Mark Zeman

Mark Zeman hat seinen Master of Science in Engineering mit Vertiefung Information and Communication Technologies an der Fachhochschule Nordwestschweiz absolviert. Seit 2017 hat er seine Passion im Bereich Information Security zu seinem Fokus gemacht. Unter anderem hat er schon während seinem Bachelorstudium bei einer Email-Sicherheitsfirma gearbeitet. (ORCID 0000-0003-0085-2097)

Links

Sie wollen die Sicherheit Ihrer Firewall prüfen?

Unsere Spezialisten kontaktieren Sie gern!

×
OWASP Maryam

OWASP Maryam

Mark Zeman

Einmalpasswörter als zweiter Faktor

Einmalpasswörter als zweiter Faktor

Mark Zeman

Sie wollen mehr?

Weitere Artikel im Archiv

Sie brauchen Unterstützung bei einem solchen Projekt?

Unsere Spezialisten kontaktieren Sie gern!

Sie wollen mehr?

Weitere Artikel im Archiv