cmd Portscan - Ger├Ąte im Netzwerk auf deren Services testen.

This page is also available in English

Netzwerkger├Ąte verwenden f├╝r die Kommunikation bestimmte Netzwerkports. Als Beispiel wird f├╝r den Aufruf einer Webseite eines Webservers der Port 80 oder 443 verwendet. Um mit einem Webserver eine Verbindung aufbauen zu k├Ânnen, horcht dieser auf den entsprechenden Port, im Falle eines Webservers auf 443. Theoretisch k├Ânnte f├╝r den Verbindungsaufbau ein beliebiger Port seitens des Webserver-Betreibers verwendet werden, dennoch sind die Port-Nummern standardisiert und bestimmte Nummern sollten f├╝r bestimmte Protokolle verwendet werden, wie zum Beispiel Port 80 f├╝r einen unverschl├╝sselten Webserver-Zugriff: http und 443 f├╝r einen verschl├╝sselten Webserverzugriff: https.

Ziel dieses Beitrags

├ťber das Netzwerk bestimmte Ger├Ąte abfragen,
ob diese auf bestimmte Netzwerkports antworten

Aufwand

Lesedauer: ca. 4 Minuten

Voraussetzung

Windows-PC im Netzwerk
F├╝r das Testen eines bestimmten Ports in PowerShell kann der Befehl ÔÇ×Test-NetConnectionÔÇť verwendet werden, siehe auch PING Port ÔÇô Windows cmd: PsPing - PowerShell Test-Netconnection. Um zu testen, welche Ports bei einem bestimmten Ger├Ąt offen sind, welche Netzwerkservices das Ger├Ąt als anbietet, kann das Command-Line-Tool Nmap verwendet werden:

Das Tool f├╝r Netzwerkscans: Nmap

Mithilfe des Command-Line-Tools Nmap k├Ânnen unter anderem sehr einfach Portscans durchgef├╝hrt werden. Nmap kann von der Herstellerseite kostenlos heruntergeladen werden: nmap.org/download.html und ist neben Linux auch f├╝r Windows verf├╝gbar. F├╝r Windows kann das .zip-Archiv heruntergeladen, extrahiert und ohne Installation gestartet werden, dazu in die Eingabeauforderung:

Um alle Ports der IP-Adresse 192.168.1.5 zu scannen, kann, nach dem Wechsel in das Verzeichnis mit den entpackten nmap-Dateien (cd Ordnername), folgender Befehl verwendet werden:

nmap 192.168.1.5 -p-

Ausgabe:

[+]
cd C:\temp\nmap-7.91-win32
C:\temp\nmap-7.91-win32>nmap 192.168.1.5 -p-
Starting Nmap 7.91 ( https://nmap.org ) at 2020-11-26 17:18 Mitteleurop├Ąische Zeit
Nmap scan report for scratch.test (192.168.1.5)
Host is up (0.0090s latency).
Not shown: 65515 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
80/tcp    open  http
83/tcp    open  mit-ml-dev
90/tcp    open  dnsix
111/tcp   open  rpcbind
443/tcp   open  https
3000/tcp  open  ppp
3001/tcp  open  nessus
3306/tcp  open  mysql
5983/tcp  open  unknown
6379/tcp  open  redis
6380/tcp  open  unknown
8081/tcp  open  blackice-icecap
8082/tcp  open  blackice-alerts
8086/tcp  open  d-s-n
8123/tcp  open  polipo
9081/tcp  open  cisco-aqos
9082/tcp  open  unknown
40799/tcp open  unknown
54327/tcp open  unknown
MAC Address: 00:00:xx:xx:xx:xx (ASRock Incorporation)

Nmap done: 1 IP address (1 host up) scanned in 79.68 seconds

Bei dem gescannten Ger├Ąt handelt es sich um meine NAS, auf der ich alle m├Âglichen Services installiert habe. Neben bekannten Ports werden auch unbekannte Ports angezeigt. Die unbekannten Ports sind unterschiedlichste Services, bei denen ich willk├╝rliche Portnummern verwendet habe. Die verwendete Port-Nummer ist also keine Garantie daf├╝r, dass wirklich das Protokoll verwendet wurde, welches laut Standard verwendet werden sollte. Mit dem Befehl kann zum Beispiel auch ein Server im Internet auf dessen Services getestet werden.

Windows integriert: PowerShell

Alternativ, wenn auch wesentlich langsamer, kann auch Windows PowerShell für den Portscan verwendet werden: 

Net.Sockets.TcpClient anstelle von Test-NetConnection.

Test-NetConnection ist nett um einen Port zu ├╝berpr├╝fen, etwas schneller ist der Test ├╝ber Net.Sockets.TcpClient. Hier ein Beispiel, um die ersten 1024 Ports der IP-Adresse 192.168.1.5 zu scannen:

1..1024 | % {write-host ((new-object Net.Sockets.TcpClient).Connect("192.168.1.5",$_)) "Port $_ ist offen"} 2>$null

Legende:

1..1024 Start und End-Port f├╝r die Pr├╝fung
192.168.1.5  ist hier ein Beispiel für die IP-Adresse des Rechners, der gescannt werden soll.


Ausgabe:

PS C:\Users>1..1024 | % {write-host ((new-object Net.Sockets.TcpClient).Connect("192.168.1.5",$_)) "Port $_ ist offen"} 2>$null
 Port 22 ist offen
 Port 80 ist offen
 Port 83 ist offen
 Port 90 ist offen
 Port 111 ist offen

Wer die Befehlszeile getestet hat, wird feststellen, dass die ├ťberpr├╝fung extrem langsam ist, dabei werden in dem Beispiel von den m├Âglichen 65535 Ports gerade mal 1024 gescannt. Das liegt daran, dass ein Port nach dem anderen getestet wird.

PowerShell >= 7

Ab der PowerShell Version 7 ist es m├Âglich den Parameter ÔÇ×-ParallelÔÇť in Foreach zu verwenden, entsprechend k├Ânnen mehrere Ports gleichzeitig: parallel ├╝berpr├╝ft werden, was die Geschwindigkeit enorm steigert. PowerShell kann in puncto Performance aber dennoch mit nmap nicht mithalten. Zudem ist PowerShell 7 leider derzeit noch nicht als Standard in den aktuellen Windows-Versionen vorhanden und muss gesondert installiert werden.

Wer PowerShell 7 installiert hat, kann f├╝r den Portscan folgenden Befehl verwenden:

1..65335 | % -ThrottleLimit 500 -Parallel {write-host ((new-object Net.Sockets.TcpClient).Connect("192.168.1.5",$_)) "Port $_ is open!"} 2>$null

In ├Ąlteren PowerShell-Versionen ist das zwar auch m├Âglich, aber nicht in einer Zeile:

PowerShell > 4

PowerShell-Versionen kleiner 7 k├Ânnen die Funktion ├╝ber einen RunspacePool abbilden, als Beispiel f├╝r einen PowerShell-PortScanner bin ich auf GitHub f├╝ndig geworden:

github.com/BornToBeRoot/PowerShell_IPv4PortScanner/blob/master/Scripts/IPv4PortScan.ps1

weitere Artikel zu Windows-PowerShell, siehe: Windows PowerShell

Fazit

Wer einen ├ťberblick ├╝ber das lokale Netzwerk bekommen m├Âchte, kann mit einfachen Befehlen alle Ger├Ąte des lokalen Netzwerks auflisten, siehe: Alle Ger├Ąte ÔÇô IP-Adressen im Netzwerk anzeigen. Mit den hier angef├╝hrten Befehlen k├Ânnen einzelne Ger├Ąte auf offen Ports (Services) getestet werden: Nmap.

 

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE f├╝r deine Bewertung!

Ver├Âffentlichung: 26.11.2020 von Bernhard ­čöö


Top-Artikel in diesem Bereich


IP Adressen im Netzwerk finden, auch wenn deren Firewall aktiviert ist
Wer einen schnellen ├ťberblick ├╝ber alle aktiven Ger├Ąte in einem Netzwerk bekommen will, kann dies mit der Netzwerkerkennung, mit Befehlen in der Eingabeaufforderung, in PowerShell oder mit speziellen IP-Scannern. Die zu Beginn dieses Beitrages zusammengestellten PowerShell-Befehle geben einen schnellen ├ťberblick ├╝ber alle Ger├Ąte im lokalen Netzwerk und machen spezielle Programme f├╝r das Scannen des Netzwerks eventuell ├╝berfl├╝ssig. Wer die Befehle gerne in Aktion sehen will, kann dies in meinem Y...

PING mit Port - Windows cmd | PowerShell: Test-Netconnection
Mit dem Tool Ping kann bekanntlich der Zugriff zu einem bestimmten Netzwerkger├Ąt und dessen Antwortzeit getestet werden. Nicht alle Ger├Ąte antworten auf einen Ping, m├Âglicherweise aber auf einen bestimmten TCP-Port, vorausgesetzt, es wird dar├╝ber ein bestimmter Netzwerkservice zur Verf├╝gung gestellt. Windows PowerShell erm├Âglicht es, einen bestimmten Port mit Windows Bordmitteln zu testen. Das Tool PSping kann zudem die Antwortzeit auf einen bestimmten Port messen. Wer die Befehle gerne in Aktio...

cmd Befehle f├╝r die Netzwerkanalyse
Mit einfachen Befehlen kann ein schneller ├ťberblick ├╝ber die aktuellen Netzwerkeinstellungen ausgelesen werden, eventuelle Verbindungsfehler gefunden, oder ein ├ťberblick ├╝ber andere Ger├Ąte im Netzwerk verschafft werden. Die hier beschriebenen Befehle sind cmd-Befehle. Die Eingabe erfolgt ├╝ber die Eingabeaufforderung: cmd, siehe auch das zugeh├Ârige YouTube-Video.

Fragen / Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details