Port 445 / SMB-Übernahme (nur autorisierte Einsätze)
Auf SMB-Port 445 lauschen und an einen entfernten SMB-Endpunkt weiterleiten. Wenn 445 der lokale Port ist, gibt das Tool den Port zuerst vom integrierten Windows-SMB-Server frei:
root@kitploit:~
PortForwarder.exe 445 10.0.0.50 445 192.168.1.100
Wenn der lokale Port 445 ist, wird das Tool vor dem Binden automatisch:
Berechtigungen prüfen — bestätigen, dass der Prozess mit erhöhten Rechten (Administrator) ausgeführt wird. Falls nicht, wird mit einer klaren Meldung abgebrochen.
Aktuellen Inhaber anzeigen — die PID/den Prozess identifizieren, der derzeit an Port 445 gebunden ist (normalerweise System, PID 4, über den srvnet-Kernel-Treiber).
SMB deaktivieren und Port freigeben — LanmanServer und die Treiber srv2/srvnet stoppen (abhängige Dienste rekursiv stoppen), wobei jeder Schritt zur Transparenz ausgegeben wird.
Überprüfen und binden — bestätigen, dass Port 445 frei ist, dann wie gewohnt binden und weiterleiten.
Beispielausgabe:
root@kitploit:~
[445] === Port 445 / SMB takeover ===
[445] Privilege check: running elevated (administrator). OK
[445] Port 445 currently held by PID 4 (System (kernel / srvnet))
[445] Disabling SMB server and releasing port 445...
[445] Stopping 'LanmanServer'...
[445] service 'LanmanServer' stopped
[445] Stopping 'srv2'...
[445] service 'srv2' stopped
[445] Stopping 'srvnet'...
[445] service 'srvnet' stopped
[445] Port 445 is now free. Proceeding to bind.
[445] (Restore SMB later with: net start LanmanServer)
⚠️ Das Stoppen dieser Dienste deaktiviert die Datei-/Druckerfreigabe auf dem Host für die Dauer des Einsatzes. Stellen Sie sie anschließend mit net start LanmanServer wieder her (die Treiber werden bei Bedarf oder beim nächsten Start neu gestartet). Nur auf Systemen verwenden, die Sie testen dürfen.
Anwendungsfälle
Lokale Entwicklung
Auf Dienste zugreifen, die in Containern oder VMs laufen
select() für bidirektionale Weiterleitung verwendet
In jede Richtung übertragene Bytes verfolgt
Beide Sockets bei Beendigung ordnungsgemäß schließt
Fehlerbehandlung
Der Weiterleiter behandelt häufige Netzwerkfehler ordnungsgemäß:
WSAECONNRESET - Verbindung vom Peer zurückgesetzt
WSAECONNABORTED - Verbindung abgebrochen
WSAENETRESET - Netzwerk verursachte Trennung
WSAETIMEDOUT - Verbindungszeitüberschreitung
Thread-Sicherheit
Kritische Abschnitte schützen das Verbindungsarray
Volatile running-Flag für sauberes Herunterfahren
Thread-Synchronisation während der Bereinigung
Sicherheitshinweise
⚠️ Wichtige Sicherheitshinweise:
IP-Whitelist: Verwenden Sie den Parameter [allowed_ip] in der Produktion, um den Zugriff einzuschränken
Keine Verschlüsselung: Dieser Weiterleiter verschlüsselt den Datenverkehr nicht. Verwenden Sie für sensible Daten SSH-Tunnel oder VPNs
Authentifizierung: Keine integrierte Authentifizierung. Stellen Sie sicher, dass der entfernte Dienst über eine angemessene Sicherheit verfügt
Firewall: Konfigurieren Sie die Windows-Firewall, um den Zugriff auf den lauschenden Port einzuschränken
Protokollierung: Deaktivieren Sie den ausführlichen Modus in der Produktion, um übermäßiges Log-Wachstum zu vermeiden
Ressourcengrenzen: Das Limit von 100 Verbindungen verhindert Ressourcenerschöpfung
Fehlerbehebung
Port bereits belegt
root@kitploit:~
[ERROR] bind() failed: 10048
Lösung: Eine andere Anwendung verwendet den Port. Wählen Sie einen anderen lokalen Port oder stoppen Sie den konkurrierenden Dienst.
Keine Verbindung zum Remote-Host möglich
root@kitploit:~
[ERROR] connect() to remote failed: 10061
Lösung: Überprüfen Sie, ob der Remote-Host erreichbar ist und der Dienst auf dem angegebenen Port läuft.
Zugriff verweigert
root@kitploit:~
[ERROR] bind() failed: 10013
Lösung: Ports unter 1024 erfordern möglicherweise Administratorrechte. Führen Sie das Programm als Administrator aus oder verwenden Sie eine höhere Portnummer.
Verbindung abgelehnt
root@kitploit:~
[INFO] Connection from X.X.X.X:XXXXX REJECTED (IP not allowed)
Lösung: Aktivieren Sie den ausführlichen Modus (-v), um abgelehnte IPs zu sehen, oder entfernen Sie die IP-Filterung.
Stoppen des Weiterleiters
Drücken Sie Strg+C, um den Weiterleiter ordnungsgemäß zu stoppen. Er wird:
Neue Verbindungen nicht mehr akzeptieren
Auf das Ende aktiver Verbindungen warten (bis zu 5 Sekunden)
Alle Sockets schließen
Ressourcen bereinigen
Bereinigungsbestätigung anzeigen
Einschränkungen
Nur Windows: Verwendet Winsock2-API (nicht portabel auf Linux/macOS)
Nur IPv4: Unterstützt derzeit nur IPv4-Adressen
Einzelner IP-Filter: Es kann nur eine erlaubte IP-Adresse angegeben werden
Kein Lastausgleich: Datenverkehr wird an einen einzelnen Remote-Endpunkt weitergeleitet
Keine Datenverkehrsinspektion: Reine TCP-Weiterleitung ohne Inhaltsanalyse
Keine Bandbreitenbegrenzung: Keine integrierte Drosselung oder QoS
Diese Software wird wie besehen für Bildungszwecke und legitime Netzwerkverwaltungszwecke bereitgestellt. Verwenden Sie sie verantwortungsbewusst und in Übereinstimmung mit den geltenden Gesetzen und Vorschriften.
Mitwirken
Beiträge sind willkommen! Bitte stellen Sie sicher:
Der Code dem vorhandenen Stil folgt
Änderungen auf Windows gut getestet sind
Kommentare komplexe Logik erklären
README für neue Funktionen aktualisiert wird
Support
Bei Problemen, Fragen oder Feature-Wünschen öffnen Sie bitte ein Issue im Projekt-Repository.
Sie können meine Arbeit auch auf Patreon unterstützen.