Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
PortForwarder — Utility di inoltro porte TCP in C | Kitploit
Strumenti/GitHubGitHub/lsecqt/portforwarder
Utilità GenericheMappatura della ReteEvasione IDS/IPSMovimento LateralePenetration TestingUtilità e FrameworkRed Teaming
GitHublsecqt/portforwarder

PortForwarder

Utility di inoltro porte TCP in C

Vedi Repository
41112 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Port Forwarder TCP per Windows

Un port forwarder TCP ad alte prestazioni per Windows con whitelist IP opzionale e funzionalità di logging verbose.

Caratteristiche

  • ✅ Inoltra traffico TCP da una porta locale a qualsiasi host:porta remota
  • ✅ Whitelist IP opzionale per maggiore sicurezza
  • ✅ Modalità takeover porta 445 / SMB (disabilita SMB e libera la porta 445 per il relaying)
  • ✅ Supporta fino a 100 connessioni concorrenti
  • ✅ Inoltro dati bidirezionale con statistiche in tempo reale
  • ✅ Modalità verbose per il debug delle connessioni rifiutate
  • ✅ Impostazioni aggressive di TCP keepalive per il rilevamento di connessioni morte
  • ✅ Inoltro a bassa latenza (algoritmo di Nagle disabilitato)
  • ✅ Gestione graceful shutdown (Ctrl+C)
  • ✅ Gestione delle connessioni thread-safe

Requisiti

  • Sistema operativo Windows
  • Visual Studio (per la compilazione) o MinGW-w64
  • Libreria Winsock2 (inclusa con Windows SDK)

Compilazione

Utilizzo del prompt dei comandi di Visual Studio Developer:

root@kitploit:~
cl PortForwarder.c /Fe:PortForwarder.exe ws2_32.lib

Utilizzo di MinGW-w64:

root@kitploit:~
gcc PortForwarder.c -o PortForwarder.exe -lws2_32

Utilizzo

root@kitploit:~
PortForwarder.exe <local_port> <remote_host> <remote_port> [allowed_ip] [-v]

Parametri

  • <local_port> - Porta locale su cui ascoltare (1-65535)
  • <remote_host> - Nome host o indirizzo IP remoto a cui inoltrare il traffico
  • <remote_port> - Porta remota a cui inoltrare il traffico (1-65535)
  • [allowed_ip] - Opzionale - Accetta solo connessioni da questo indirizzo IP
  • [-v] - Opzionale - Abilita la modalità verbose (mostra connessioni rifiutate)

Esempi

Inoltro porta base (nessun filtro IP)

Inoltra la porta locale 8080 al server remoto 192.168.1.100 porta 80:

root@kitploit:~
PortForwarder.exe 8080 192.168.1.100 80

Inoltro porta con whitelist IP

Accetta solo connessioni da 192.168.1.50:

root@kitploit:~
PortForwarder.exe 8080 192.168.1.100 80 192.168.1.50

Inoltro porta con whitelist IP e logging verbose

Mostra i tentativi di connessione rifiutati:

root@kitploit:~
PortForwarder.exe 8080 192.168.1.100 80 192.168.1.50 -v

Inoltro a nome host remoto

root@kitploit:~
PortForwarder.exe 3306 database.example.com 3306

Inoltro porta SSH con restrizione IP

root@kitploit:~
PortForwarder.exe 2222 10.0.0.50 22 192.168.1.100

Takeover porta 445 / SMB (solo per impegni autorizzati)

Ascolta sulla porta SMB 445 e inoltra a un endpoint SMB remoto. Quando 445 è la porta locale, lo strumento prima libera la porta dal server SMB integrato di Windows:

root@kitploit:~
PortForwarder.exe 445 10.0.0.50 445 192.168.1.100

Quando la porta locale è 445, prima di fare il bind lo strumento automaticamente:

  1. Verifica privilegi — conferma che il processo sia in esecuzione con privilegi elevati (amministratore). In caso contrario, si interrompe con un messaggio chiaro.
  2. Mostra il detentore corrente — identifica il PID/processo attualmente associato alla porta 445 (normalmente System, PID 4, tramite il driver kernel srvnet).
  3. Disabilita SMB e libera la porta — arresta LanmanServer e i driver srv2 / srvnet (arrestando ricorsivamente eventuali servizi dipendenti), stampando ogni passo per visibilità.
  4. Verifica e bind — conferma che la porta 445 sia libera, quindi effettua il bind e inoltra come al solito.

Esempio di output:

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)

⚠️ L'arresto di questi servizi disabilita la condivisione di file/stampanti sull'host per la durata dell'impegno. Ripristinala in seguito con net start LanmanServer (i driver si riavviano su richiesta o al prossimo avvio). Da utilizzare solo su sistemi che sei autorizzato a testare.

Casi d'Uso

Sviluppo Locale

  • Accedi a servizi in esecuzione in contenitori o VM
  • Inoltra porte da WSL2 all'host Windows
  • Testa endpoint webhook localmente

Bridging di Rete

  • Collega diversi segmenti di rete
  • Aggira restrizioni firewall (solo uso autorizzato)
  • Accedi a servizi interni dalla DMZ

Accesso al Database

  • Proteggi connessioni database con whitelist IP
  • Tunnel del traffico database attraverso host intermedi
  • Esponi database locali per sviluppo remoto

Test di Sicurezza

  • Monitora e analizza pattern di traffico TCP
  • Testa controlli di accesso basati su IP
  • Verifica tentativi di connessione con modalità verbose

Informazioni di Output

Il forwarder fornisce un logging dettagliato:

root@kitploit:~
[INFO] Configuration:
  Local port:  8080
  Remote host: 192.168.1.100
  Remote port: 80
  Allowed IP:  192.168.1.50 (filtered mode)
  Verbose:     OFF

[INFO] Listening on port 8080...
[INFO] Press Ctrl+C to stop

[INFO] New connection from 192.168.1.50:54321 ACCEPTED
[INFO] Connected to remote 192.168.1.100:80
[INFO] Connection established, forwarding traffic...
[INFO] Closing connection (Sent: 1024 bytes, Received: 2048 bytes, Total: 3072 bytes)

Output in Modalità Verbose

Quando il flag -v è abilitato, vengono registrate anche le connessioni rifiutate:

root@kitploit:~
[INFO] Connection from 192.168.1.99:54322 REJECTED (IP not allowed)

Dettagli Tecnici

Ottimizzazioni delle Performance

  • Dimensione Buffer: buffer da 8KB per un trasferimento dati efficiente
  • TCP_NODELAY: Algoritmo di Nagle disabilitato per minore latenza
  • Keepalive: Impostazioni aggressive (10s iniziali, intervallo 1s) per rilevare connessioni morte
  • Thread Pool: Fino a 100 connessioni concorrenti con thread di inoltro dedicati
  • Accept non bloccante: select() basata su timeout per uno shutdown reattivo

Gestione delle Connessioni

Ogni connessione genera un thread di inoltro dedicato che:

  1. Stabilisce la connessione all'host remoto
  2. Imposta le opzioni del socket (timeout, keepalive, TCP_NODELAY)
  3. Usa select() per l'inoltro bidirezionale
  4. Traccia i byte trasferiti in ciascuna direzione
  5. Chiude correttamente entrambi i socket alla terminazione

Gestione degli Errori

Il forwarder gestisce correttamente gli errori di rete comuni:

  • WSAECONNRESET - Connessione resettata dal peer
  • WSAECONNABORTED - Connessione interrotta
  • WSAENETRESET - La rete ha causato la disconnessione
  • WSAETIMEDOUT - Connessione scaduta

Thread Safety

  • Le sezioni critiche proteggono l'array di connessioni
  • Flag running volatile per uno shutdown pulito
  • Sincronizzazione dei thread durante la pulizia

Considerazioni sulla Sicurezza

⚠️ Note Importanti sulla Sicurezza:

  1. Whitelist IP: Usa il parametro [allowed_ip] in produzione per limitare l'accesso
  2. Nessuna Crittografia: Questo forwarder non crittografa il traffico. Usalo con tunnel SSH o VPN per dati sensibili
  3. Autenticazione: Nessuna autenticazione integrata. Assicurati che il servizio remoto abbia una sicurezza adeguata
  4. Firewall: Configura Windows Firewall per limitare l'accesso alla porta in ascolto
  5. Logging: Disabilita la modalità verbose in produzione per evitare il gonfiaggio dei file di log
  6. Limiti di Risorsa: Il limite di 100 connessioni previene l'esaurimento delle risorse

Risoluzione dei Problemi

Porta già in Uso

root@kitploit:~
[ERROR] bind() failed: 10048

Soluzione: Un'altra applicazione sta usando la porta. Scegli una porta locale diversa o arresta il servizio conflittuale.

Impossibile Connettere al Remoto

root@kitploit:~
[ERROR] connect() to remote failed: 10061

Soluzione: Verifica che l'host remoto sia raggiungibile e che il servizio sia in esecuzione sulla porta specificata.

Permesso Negato

root@kitploit:~
[ERROR] bind() failed: 10013

Soluzione: Le porte inferiori a 1024 potrebbero richiedere privilegi di amministratore. Esegui come Amministratore o usa un numero di porta più alto.

Connessione Rifiutata

root@kitploit:~
[INFO] Connection from X.X.X.X:XXXXX REJECTED (IP not allowed)

Soluzione: Abilita la modalità verbose (-v) per vedere gli IP rifiutati, o rimuovi il filtro IP.

Arresto del Forwarder

Premi Ctrl+C per arrestare correttamente il forwarder. Esso:

  1. Smetti di accettare nuove connessioni
  2. Attendi il completamento delle connessioni attive (fino a 5 secondi)
  3. Chiudi tutti i socket
  4. Pulisci le risorse
  5. Mostra la conferma di pulizia

Limitazioni

  • Solo Windows: Usa l'API Winsock2 (non portabile su Linux/macOS)
  • Solo IPv4: Attualmente supporta solo indirizzi IPv4
  • Filtro IP Singolo: Può essere specificato un solo indirizzo IP consentito
  • Nessun Bilanciamento del Carico: Il traffico viene inoltrato a un singolo endpoint remoto
  • Nessuna Ispezione del Traffico: Inoltro TCP grezzo senza analisi del contenuto
  • Nessun Limite di Larghezza di Banda: Nessuna limitazione integrata o QoS

Miglioramenti Futuri

Funzionalità potenziali per versioni future:

  • Supporto IPv6
  • Whitelist/blacklist multipli IP
  • Wrapper di crittografia SSL/TLS
  • Dashboard statistiche traffico
  • Supporto file di configurazione
  • Limitazione larghezza di banda
  • Bilanciamento del carico round-robin
  • Limitazione velocità connessioni
  • Supporto multipiattaforma (Linux/macOS)

Licenza

Questo software è fornito così com'è per scopi educativi e di amministrazione di rete legittimi. Usalo responsabilmente e in conformità con le leggi e i regolamenti applicabili.

Contributi

I contributi sono benvenuti! Assicurati che:

  • Il codice segua lo stile esistente
  • Le modifiche siano ben testate su Windows
  • I commenti spieghino la logica complessa
  • Il README sia aggiornato per le nuove funzionalità

Supporto

Per problemi, domande o richieste di funzionalità, apri un issue nel repository del progetto.

Puoi anche supportare il mio lavoro su Patreon


Scarica lo strumento