Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
PortForwarder — Utilitário de Encaminhamento de Portas TCP em C | Kitploit
Ferramentas/GitHubGitHub/lsecqt/portforwarder
Utilitários de Propósito GeralMapeamento de RedeEvasão de IDS/IPSMovimento LateralTestes de PenetraçãoUtilitários e FrameworksRed Teaming
GitHublsecqt/portforwarder

PortForwarder

Utilitário de Encaminhamento de Portas TCP em C

Ver Repositório
4111há 2 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Encaminhador de Portas TCP para Windows

Um encaminhador de portas TCP de alto desempenho para Windows com opções de lista de permissões de IP e logs detalhados.

Recursos

  • ✅ Encaminha tráfego TCP de uma porta local para qualquer host:porta remoto
  • ✅ Lista de permissões de IP opcional para maior segurança
  • ✅ Modo de tomada de controle da porta 445 / SMB (desativa o SMB e libera a porta 445 para retransmissão)
  • ✅ Suporta até 100 conexões simultâneas
  • ✅ Encaminhamento bidirecional de dados com estatísticas em tempo real
  • ✅ Modo detalhado para depuração de conexões rejeitadas
  • ✅ Configuração agressiva de keepalive TCP para detecção de conexões mortas
  • ✅ Encaminhamento de baixa latência (algoritmo de Nagle desabilitado)
  • ✅ Tratamento gracioso de desligamento (Ctrl+C)
  • ✅ Gerenciamento de conexões thread-safe

Requisitos

  • Sistema operacional Windows
  • Visual Studio (para compilação) ou MinGW-w64
  • Biblioteca Winsock2 (incluída no Windows SDK)

Compilação

Usando o Prompt de Comando do Desenvolvedor Visual Studio:

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

Usando MinGW-w64:

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

Uso

root@kitploit:~
PortForwarder.exe <porta_local> <host_remoto> <porta_remota> [ip_permitido] [-v]

Parâmetros

  • <porta_local> - Porta local para escutar (1-65535)
  • <host_remoto> - Nome do host ou endereço IP remoto para onde encaminhar o tráfego
  • <porta_remota> - Porta remota para onde encaminhar o tráfego (1-65535)
  • [ip_permitido] - Opcional - Aceitar conexões apenas deste endereço IP
  • [-v] - Opcional - Ativar modo detalhado (mostrar conexões rejeitadas)

Exemplos

Encaminhamento básico de porta (sem filtragem de IP)

Encaminhar a porta local 8080 para o servidor remoto 192.168.1.100 porta 80:

root@kitploit:~
PortForwarder.exe 8080 192.168.1.100 80

Encaminhamento de porta com lista de permissões de IP

Aceitar conexões apenas de 192.168.1.50:

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

Encaminhamento de porta com lista de permissões de IP e logs detalhados

Mostrar tentativas de conexão rejeitadas:

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

Encaminhar para um nome de host remoto

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

Encaminhamento de porta SSH com restrição de IP

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

Tomada de controle da porta 445 / SMB (apenas em compromissos autorizados)

Escutar na porta SMB 445 e encaminhar para um endpoint SMB remoto. Quando 445 for a porta local, a ferramenta primeiro libera a porta do servidor SMB interno do Windows:

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

Quando a porta local é 445, antes de vincular, a ferramenta irá automaticamente:

  1. Verificar privilégios — confirmar que o processo está sendo executado como administrador. Caso contrário, aborta com uma mensagem clara.
  2. Mostrar o atual detentor — identificar o PID/processo atualmente vinculado à porta 445 (normalmente System, PID 4, através do driver de kernel srvnet).
  3. Desabilitar SMB e liberar a porta — parar LanmanServer e os drivers srv2 / srvnet (parando recursivamente quaisquer serviços dependentes), exibindo cada etapa para visibilidade.
  4. Verificar e vincular — confirmar que a porta 445 está livre, depois vincular e encaminhar normalmente.

Exemplo de saída:

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)

⚠️ Parar estes serviços desabilita o compartilhamento de arquivos/impressoras no host durante o compromisso. Restaure-o posteriormente com net start LanmanServer (os drivers reiniciam sob demanda ou na próxima reinicialização). Use apenas em sistemas que você está autorizado a testar.

Casos de Uso

Desenvolvimento Local

  • Acessar serviços executados em contêineres ou VMs
  • Encaminhar portas do WSL2 para o host Windows
  • Testar endpoints de webhook localmente

Ponte de Rede

  • Conectar diferentes segmentos de rede
  • Contornar restrições de firewall (uso autorizado apenas)
  • Acessar serviços internos a partir da DMZ

Acesso a Banco de Dados

  • Conexões seguras a banco de dados com lista de permissões de IP
  • Tunelar tráfego de banco de dados através de hosts intermediários
  • Expor bancos de dados locais para desenvolvimento remoto

Testes de Segurança

  • Monitorar e analisar padrões de tráfego TCP
  • Testar controles de acesso baseados em IP
  • Auditar tentativas de conexão com modo detalhado

Informações de Saída

O encaminhador fornece logs detalhados:

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)

Saída do Modo Detalhado

Quando a flag -v está habilitada, as conexões rejeitadas também são registradas:

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

Detalhes Técnicos

Otimizações de Desempenho

  • Tamanho do Buffer: Buffers de 8KB para transferência eficiente de dados
  • TCP_NODELAY: Algoritmo de Nagle desabilitado para menor latência
  • Keepalive: Configurações agressivas (10s inicial, intervalo de 1s) para detectar conexões mortas
  • Pool de Threads: Até 100 conexões simultâneas com threads de encaminhamento dedicadas
  • Accept Não Bloqueante: select() baseado em timeout para desligamento responsivo

Tratamento de Conexões

Cada conexão cria uma thread de encaminhamento dedicada que:

  1. Estabelece conexão com o host remoto
  2. Configura opções do socket (timeouts, keepalive, TCP_NODELAY)
  3. Usa select() para encaminhamento bidirecional
  4. Rastreia bytes transferidos em cada direção
  5. Fecha graciosamente ambos os sockets na terminação

Tratamento de Erros

O encaminhador lida graciosamente com erros comuns de rede:

  • WSAECONNRESET - Conexão reiniciada pelo peer
  • WSAECONNABORTED - Conexão abortada
  • WSAENETRESET - Rede causou desconexão
  • WSAETIMEDOUT - Tempo limite da conexão excedido

Segurança de Threads

  • Seções críticas protegem o array de conexões
  • Flag running volátil para desligamento limpo
  • Sincronização de threads durante a limpeza

Considerações de Segurança

⚠️ Notas Importantes de Segurança:

  1. Lista de Permissões de IP: Use o parâmetro [ip_permitido] em produção para restringir o acesso
  2. Sem Criptografia: Este encaminhador não criptografa o tráfego. Use com túneis SSH ou VPNs para dados sensíveis
  3. Autenticação: Nenhuma autenticação embutida. Certifique-se de que o serviço remoto tenha segurança adequada
  4. Firewall: Configure o Firewall do Windows para restringir o acesso à porta de escuta
  5. Logging: Desabilite o modo detalhado em produção para evitar inchaço do arquivo de log
  6. Limites de Recursos: O limite de 100 conexões evita esgotamento de recursos

Solução de Problemas

Porta Já em Uso

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

Solução: Outra aplicação está usando a porta. Escolha uma porta local diferente ou pare o serviço conflitante.

Não é Possível Conectar ao Remoto

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

Solução: Verifique se o host remoto está acessível e se o serviço está em execução na porta especificada.

Permissão Negada

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

Solução: Portas abaixo de 1024 podem exigir privilégios de administrador. Execute como Administrador ou use um número de porta mais alto.

Conexão Rejeitada

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

Solução: Ative o modo detalhado (-v) para ver os IPs rejeitados ou remova a filtragem de IP.

Parando o Encaminhador

Pressione Ctrl+C para parar graciosamente o encaminhador. Ele irá:

  1. Parar de aceitar novas conexões
  2. Aguardar a conclusão das conexões ativas (até 5 segundos)
  3. Fechar todos os sockets
  4. Limpar os recursos
  5. Exibir confirmação de limpeza

Limitações

  • Apenas Windows: Usa a API Winsock2 (não portável para Linux/macOS)
  • Apenas IPv4: Atualmente suporta apenas endereços IPv4
  • Filtro de IP Único: Apenas um endereço IP permitido pode ser especificado
  • Sem Balanceamento de Carga: O tráfego é encaminhado para um único endpoint remoto
  • Sem Inspeção de Tráfego: Encaminhamento TCP bruto sem análise de conteúdo
  • Sem Limitação de Largura de Banda: Nenhuma limitação ou QoS embutida

Melhorias Futuras

Possíveis recursos para versões futuras:

  • Suporte a IPv6
  • Múltiplas listas de permissão/negação de IP
  • Invólucro de criptografia SSL/TLS
  • Painel de estatísticas de tráfego
  • Suporte a arquivo de configuração
  • Limitação de largura de banda
  • Balanceamento de carga round-robin
  • Limitação de taxa de conexões
  • Suporte multiplataforma (Linux/macOS)

Licença

Este software é fornecido "como está" para fins educacionais e de administração legítima de redes. Use com responsabilidade e em conformidade com as leis e regulamentos aplicáveis.

Contribuindo

Contribuições são bem-vindas! Por favor, certifique-se de que:

  • O código segue o estilo existente
  • As alterações são bem testadas no Windows
  • Comentários explicam lógica complexa
  • O README é atualizado para novos recursos

Suporte

Para problemas, perguntas ou solicitações de recursos, abra uma issue no repositório do projeto.

Você também pode apoiar meu trabalho no Patreon


Baixar ferramenta