HOWTO · PowerShell

Überwachen Sie den Port in PowerShell

Dieses Tutorial zeigt, wie Sie Ports in PowerShell abhören.

Dieses Tutorial zeigt, wie Sie einen Port in PowerShell abhören.

PowerShell-Überwachung am Port

Das Abhören eines Ports kann mithilfe von PowerShell mit schrittweisen Befehlen erreicht werden. Wir können einen Listener mit dem Befehl [System.Net.Sockets.TcpListener]Port in PowerShell initialisieren.

Führen Sie die folgenden Schritte aus, um einen Port mit PowerShell abzuhören:

  1. Zuerst müssen wir PowerShell als Administrator öffnen. Suchen Sie im Startmenü nach PowerShell, klicken Sie mit der rechten Maustaste auf das PowerShell-Symbol und klicken Sie dann auf Als Administrator ausführen.

    Das System kann um Erlaubnis bitten; klicken Sie auf Ja.

  2. Erstellen Sie im nächsten Schritt ein PowerShell-Skript. Führen Sie den folgenden Befehl aus:

    New-Item 'C:\Users\Sheeraz\DemoTCPServer.ps1' -type file
    

    Der obige Befehl erstellt eine PowerShell-Datei namens DemoTCPServer.ps1 im Pfad C:\Users\Sheeraz. Siehe die Ausgabe:

    	Directory: C:\Users\Sheeraz
    
    
    Mode                 LastWriteTime         Length Name
    ----                 -------------         ------ ----
    -a----         11/3/2022   4:02 PM              0 DemoTCPServer.ps1
    
  3. Nachdem die Datei erstellt wurde, besteht der nächste Schritt darin, das Skript zu bearbeiten. Führen Sie den folgenden Befehl aus:

    ise C:\Users\Sheeraz\DemoTCPServer.ps1
    
Der obige Befehl bearbeitet die Datei `DemoTCPServer.ps1` in PowerShell ISE.
  1. Wir folgen einem schrittweisen Prozess für das Skript DemoTCPServer.ps1.

    • Initialisieren Sie zunächst die Variablen für den Port, eine Textdatei und das Serverbanner.
    • Erstellen Sie dann einen Endpunkt auf dem angegebenen Port.
    • Erstellen Sie nun mit dem Befehl New-Object System.Net.Sockets.TcpListener $DemoEndpoint einen TCP-Port mit einem Listener. Dies wird uns helfen, auf einem Port zu lauschen.
    • TCP-Port starten.
    • Erlauben Sie dem TCP-Port, den TCP-Client zu akzeptieren.
    • Erstellen Sie einen Stream des TCP-Clients.
    • Erstellen Sie jetzt einen Writer mit dem Stream.
    • Verwenden Sie das Banner, um die Zeilen zu schreiben und den Schreiber zu spülen.
    • Erstellen Sie nun einen Buffer, um den Stream zu lesen und auf einem Port zu lauschen.
    • Verwenden Sie eine Schleife, um jede Zeile des Streams zu lesen.
    • Wir haben das Abhören des Ports durchgeführt und verfügen nun über den Puffer, den Stream und den TCP-Client.
    • Stoppen Sie abschließend den TCP-Port. Implementieren wir diese Schritte im PowerShell-Skript DemoTCPServer.ps1.
```powershell
$DemoPort = 8080
$DemoFile = 'C:\Users\Sheeraz\demo.txt'
$DemoBanner = "Connection: OK"

$DemoEndpoint = New-Object System.Net.IPEndPoint([IPAddress]::Any,$DemoPort)
$DemoTCPPort = New-Object System.Net.Sockets.TcpListener $DemoEndpoint
$DemoTCPPort.Start()
Write-Output "The TCP Port $DemoPort is Open Now"
$AcceptIngTcp = $DemoTCPPort.AcceptTcpClient()
$Stream = $AcceptIngTcp.GetStream()
$DemoWriter = New-Object System.IO.StreamWriter($Stream)
$DemoBanner | % {
			$DemoWriter.WriteLine($_)
			$DemoWriter.Flush()
		}

while($true) {
$DemoBuffer = New-Object System.IO.StreamReader $Stream
$DEMOLINE = $DemoBuffer.ReadLine()
if ($DEMOLINE -eq "quit") {
	break
}
else {
$DEMOLINE
$DEMOLINE |  Out-File $DemoFile -Append
}
}
$DemoBuffer.Dispose()
$Stream.Dispose()
$AcceptIngTcp.Dispose()
$DemoTCPPort.Stop()
Write-Output "The TCP Port $DemoPort is Closed"
```
  1. Sobald das Skript erstellt ist, speichern Sie es. Jetzt ist es an der Zeit, das Skript auszuführen, um einen TCP-Port mit Listen-on-Port-Operation zu erstellen; Führen Sie den folgenden Befehl aus:

    PowerShell.exe -ExecutionPolicy Bypass -File C:\Users\Sheeraz\DemoTCPServer.ps1
    

    Der obige Befehl startet nun einen TCP-Port und lauscht auf einem Port. Die Ausgabe für den Befehl ist unten.

    The TCP Port 8080 is Open Now
    
  2. Um sich mit dem TCP-Port auf einem Remote-Computer zu verbinden, führen Sie den folgenden telnet-Befehl in cmd aus. Stellen Sie zunächst sicher, dass der telnet-Dienst aktiviert ist, was unter Systemsteuerung > Programme > Windows-Funktionen ein- oder ausschalten überprüft werden kann.

    Siehe den Befehl:

    telnet 10.10.10.10 8080
    
  3. Wir können auch eine Telnet-Client-Anwendung wie PuTTY verwenden, die von hier heruntergeladen werden kann. Vergessen Sie nicht, bei der Verbindungsart Andere und Telnet auszuwählen.

    Siehe Screenshot unten.

    PuTTY-Telnet-Client

  4. Geben Sie die IP und den Port ein und klicken Sie dann auf Öffnen.

    PuTTY-Client-Terminal

  1. Jetzt können wir dieses Terminal verwenden, um Daten über eine Verbindung zu senden und einen Port abzuhören. Zum Beispiel:

    This is PowerShell Listen on Port Test
    

    Hören Sie auf Port Test

  2. Die oben gesendeten Daten werden in der Datei 'C:\Users\Sheeraz\demo.txt' gespeichert, was bedeutet, dass der Port abgehört wird.

    Hören Sie auf Port-Ausgang

  3. Um schließlich die TCP-Verbindung zu schließen, führen Sie den Befehl quit aus.