**nmap** nmap ist ein Portscanner --- **Aber was ist ein Port?** Hier die Wiki Definition: > For TCP and UDP, a port number is a 16-bit unsigned integer, thus ranging from 0 to 65535. For TCP, port number 0 is reserved and cannot be used, while for UDP, the source port is optional and a value of zero means no port. A process associates its input or output channels via an internet socket, which is a type of file descriptor, associated with a transport protocol, a network address such as an IP address, and a port number. This is known as binding. A socket is used by a process to send and receive data via the network. The operating system's networking software has the task of transmitting outgoing data from all application ports onto the network, and forwarding arriving network packets to processes by matching the packet's IP address and port number to a socket. For TCP, only one process may bind to a specific IP address and port combination. Common application failures, sometimes called port conflicts, occur when multiple programs attempt to use the same port number on the same IP address with the same protocol. Was nehmen wir uns daraus mit? - Ein Port ist eine Nummer zwischen 0 und 65535 - 0 ist dabei reserviert und kann nicht genutzt werden - Die Kommunikation kann per TCP und UDP ablaufen - Unter einem Port ist ein Service erreichbar - Dafür bindet das Betriebssystem den Service an einen Socket und macht diesen erreichbar - Das Betriebssystem hat mit dem entsprechenden Netzwerkstack dafür zu Sorgen dass Kommunikation zu dem Port / Socket gelangt und von dort abgehen kann --- **Und was macht jetzt nmap?** nmap scannt eine Adresse oder einen Adressbereich und ermittelt erreichbare Ports. Je nach Konfiguration der gescannten Maschine sind dabei unterschiedliche Vorgehensweisen notwendig. Dabei wird entweder jeder Port durchgegangen oder nur die üblichsten. Was sind gängige Scan Modi? > **nmap -v scanme.nmap.org** > > Diese Option scannt alle reservierten TCP-Ports auf dem Rechner scanme.nmap.org. Die Option -v schaltet den ausführlichen Modus an. > > **nmap -sS -O scanme.nmap.org/24** > > Startet einen Stealth-SYN-Scan auf allen aktiven Rechnern unter den 256 IPs im Netzwerk der Größe „Klasse C“, in dem Scanme sitzt. Es versucht auch herauszufinden, welches Betriebssystem auf jedem aktiven Host läuft. Wegen des SYN-Scans und der Betriebssystemerkennung sind dazu root-Rechte notwendig. > > **nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127** > > Startet eine Host-Auflistung und einen TCP-Scan in der ersten Hälfte von allen 255 möglichen acht-Bit-Unternetzen im Klasse-B-Adressraum 198.116. Dabei wird getestet, ob die Systeme SSH, DNS, POP3 oder IMAP auf ihren Standardports laufen haben oder irgendetwas auf Port 4564. Falls einer dieser Ports offen ist, wird eine Versionserkennung benutzt, um festzustellen, welche Anwendung darauf läuft. > > **nmap -v -iR 100000 -PN -p 80** > > Verlangt von Nmap, 100.000 Hosts zufällig auszuwählen und sie nach Webservern (Port 80) zu scannen. Eine Host-Auflistung wird mit -PN unterbunden, weil es Verschwendung ist, zuerst eine Reihe von Testpaketen zu senden, um festzustellen, ob ein Host aktiv ist, wenn Sie auf jedem Zielhost ohnehin nur einen Port testen. > > **nmap -PN -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20** > > Das scannt 4096 IPs nach Webservern (ohne sie anzupingen) und speichert die Ausgabe im grepbaren und im XML-Format. > >**nmap -sn 192.168.0.0/24** >Nmap scant das Subnetz, indem es einen 3-Way-Handshake auf den Ports 80 und 443 des Remote Host versucht. Es geht dabei nicht darum herauszufinden, ob auf den Ports Services laufen, sondern ob der Host antwortet. Ein Host der rückmeldet, dass auf dem Port kein Dienst läuft, bestätigt mit dieser Meldung, dass er existiert. ;) > >**sudo nmap -sn 192.168.0.0/24** >Wie im Mode zuvor, doch sorgt sudo dafür, dass zusätzlich per ICMP kontaktiert wird. Der Hintergrund ist, dass bei einer Firewall, die Ports 80 und 443 blockt, keine "RST" zurückgesendet wird und NMAP dann davon ausgeht, dass kein Host unter der IP existiert. Durch sudo wird nicht nur auf den Webtraffic unter 80 & 443 gesetzt. --- Ergänzungen Bei Windows Kisten hilft -PN, da die per default zu machen