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
gonc — Netcat com travessia NAT automatizada, P2P seguro e recursos avançados para acesso a shell, transferência de arquivos e proxy de rede. | Kitploit
Ferramentas/GitHubGitHub/threatexpert/gonc
Utilitários de Propósito GeralFerramentas de Criptografia/DescriptografiaProxies Web e InterceptaçãoExfiltração de DadosSegurança de RedeTestes de PenetraçãoComando e ControleRed TeamingFerramenta de Acesso Remoto
GitHubthreatexpert/gonc

gonc

Netcat com travessia NAT automatizada, P2P seguro e recursos avançados para acesso a shell, transferência de arquivos e proxy de rede.

695602há 1 mêsRevisado pelo Kitploit
Ver RepositórioSite

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

Introdução ao gonc

README em 中文 、 English

gonc é uma ferramenta netcat baseada em Golang, projetada para facilitar a comunicação ponto a ponto. Suas principais características incluem:

  • 🔁 NAT Traversal Automatizado: Configuração zero. Ambos os lados só precisam concordar com uma passphrase. Ao usar o parâmetro -p2p, os pares podem descobrir automaticamente os endereços de rede uns dos outros e estabelecer uma conexão ponto a ponto através de NAT traversal, aproveitando serviços públicos de STUN e MQTT para troca de endereços.

  • 🔒 Criptografia Ponta a Ponta com Autenticação Mútua: Suporta TLS para TCP e DTLS para transmissão criptografada UDP, com autenticação mútua de identidade baseada em passphrase.

  • 🧩 Configuração Flexível de Serviços: Com o parâmetro -e, você pode configurar flexivelmente a aplicação para servir cada conexão. Por exemplo, -e /bin/sh pode fornecer um shell cmd remoto. Você também pode usar comandos virtuais integrados para serviço SOCKS5 conveniente, serviço de arquivos HTTP e encaminhamento de tráfego.


Download da versão mais recente

docs


Projetos Relacionados

  • gonc-gui — um aplicativo desktop (Windows) e Android construído sobre o : conexão direta P2P conveniente entre dispositivos e redes, e transferência segura de arquivos. Basta compartilhar uma passphrase (ou escanear um QR code); nenhuma linha de comando é necessária.
gonc

Exemplos de Uso

Uso Básico

  • Use como o nc:

    root@kitploit:~
    gonc www.baidu.com 80
    gonc -tls www.baidu.com 443
    

    só pode estabelecer conexões ponto a ponto baseadas em IP e porta.

  • Agora, você também pode estabelecer conexões ponto a ponto baseadas em uma passphrase compartilhada, com NAT traversal automatizado.

    O diagrama a seguir mostra o processo do gonc estabelecendo uma conexão P2P entre uma rede de banda larga residencial (hard NAT) e um par em uma rede móvel (symmetric NAT). Como ambos os lados possuem IPv6, a opção -4 é usada em ambas as extremidades para forçar IPv4, a fim de demonstrar o NAT traversal.

    hole-punching

Túnel P2P e Servidor de Arquivos HTTP

  • Ambos os lados concordam com a mesma passphrase. No lado do remetente, inicie um servidor de arquivos HTTP para expor os arquivos ou diretórios a serem compartilhados. A opção -httpserver aceita múltiplos caminhos, cada um podendo ser um único arquivo ou um diretório:

    root@kitploit:~
    gonc -p2p <passphrase> -httpserver c:/RootDir1 c:/RootDir2
    
  • No lado receptor, há duas opções:

  1. Baixar automaticamente o diretório inteiro

    Após executar o comando a seguir, todos os arquivos serão baixados recursivamente para a máquina local. Se o processo for interrompido, executar o comando novamente retomará automaticamente de onde parou:

    root@kitploit:~
    gonc -p2p <passphrase> -download c:/SavePath
    
  2. Navegar e baixar seletivamente via navegador

    Esta opção não inicia o download automaticamente. Em vez disso, você precisa abrir manualmente um navegador e visitar http://127.0.0.1:9999 para visualizar a lista de arquivos do par e baixar arquivos conforme necessário:

    root@kitploit:~
    gonc -p2p <passphrase> -httplocal-port 9999
    

    Se você precisar baixar um subdiretório específico, o navegador se torna inconveniente, mas você pode fazer assim:

    root@kitploit:~
    gonc -http-download c:/SavePath http://127.0.0.1:9999/subdir
    

Comunicação P2P Criptografada Segura

  • Estabeleça comunicação P2P criptografada segura entre duas redes diferentes concordando com uma passphrase (use gonc -psk . para gerar uma passphrase de alta entropia para substituir passphrase). Esta passphrase é usada para descoberta mútua e derivação de certificado, garantindo a segurança da comunicação com TLS 1.3.

    root@kitploit:~
    gonc -p2p passphrase
    

    No outro lado, use os mesmos parâmetros (o programa tentará automaticamente comunicação TCP ou UDP (TCP preferido), negociará papéis (cliente/servidor TLS) e completará o protocolo TLS):

    root@kitploit:~
    gonc -p2p passphrase
    

    Observe que, se o outro lado atrasar o tempo de execução, ele sairá se não conseguir encontrar o outro lado para interagir informações dentro de cerca de meio minuto. Portanto, também suporta um mecanismo de espera baseado em assinatura de mensagens MQTT, usando -mqtt-wait e -mqtt-hello para sincronizar o momento de ambas as partes iniciarem o P2P. Por exemplo, o seguinte usa -mqtt-wait para esperar continuamente,

    root@kitploit:~
    gonc -p2p passphrase -mqtt-wait
    

    No outro lado,

    root@kitploit:~
    gonc -p2p passphrase -mqtt-hello
    
  • Verifique seu tipo de NAT

    root@kitploit:~
    gonc -nat-checker
    

    Isso verificará seus endereços NAT IPv6 e IPv4 TCP e UDP e analisará as mudanças de porta após o NAT. Se nenhum endereço TCP6 ou UDP6 estiver listado, significa que você não tem IPv6. Cada endereço de protocolo termina com "(easy)", indicando a maior taxa de sucesso para hole punching; "(hard)" indica uma taxa de sucesso maior; e "(symm)" é o mais difícil. Symm requer que o outro lado seja "easy" ou "hard" para que o P2P funcione.

Reverse Shell (Suporte a Pseudo-Terminal para Sistemas UNIX-like)

  • Listener (não usa -keep-open, aceita apenas uma conexão; sem autenticação com -psk):
    root@kitploit:~
    gonc -tls -exec ":sh /bin/bash" -l 1234
    
  • Conecte-se para obter um shell (suporta TAB, Ctrl+C, etc.):
    root@kitploit:~
    gonc -tls -pty x.x.x.x 1234
    
  • Use P2P para reverse shell (passphrase é usada para autenticação, garantindo comunicação segura com TLS 1.3):
    root@kitploit:~
    gonc -exec ":sh /bin/bash" -p2p passphrase
    
    No outro lado:
    root@kitploit:~
    gonc -pty -p2p passphrase
    

Teste de Velocidade de Transmissão

  • Envie dados e meça a velocidade de transmissão (/dev/zero e /dev/urandom integrados):
    root@kitploit:~
    gonc.exe -send /dev/zero -P x.x.x.x 1234
    
    Exemplo de saída:
    root@kitploit:~
    IN: 76.8 MiB (80543744 bytes), 3.3 MiB/s | OUT: 0.0 B (0 bytes), 0.0 B/s | 00:00:23
    
    No lado receptor:
    root@kitploit:~
    gonc -P -l 1234 > NUL
    

Túnel P2P e Proxy SOCKS5 / HTTP

  • Aguarde o túnel ser estabelecido:

    root@kitploit:~
    gonc -p2p passphrase -linkagent
    
  • No outro lado, inicie um serviço de proxy SOCKS5 / HTTP local na porta 3080 para acessar a rede remota:

    root@kitploit:~
    # The link option controls how the local and remote proxy endpoints are created.
    # Use none to indicate that no listening port is opened on that side:
    gonc -p2p passphrase -link "3080;none"
    

    Em seguida, por exemplo, se você quiser se conectar a 10.0.0.1:3389 na rede remota, basta inserir o seguinte endereço no seu cliente de Área de Trabalho Remota local:

    root@kitploit:~
    10.0.0.1-3389.gonc.cc:3080
    

    Este domínio será resolvido para um IP na forma 127.b.c.d. Como resultado, o cliente de Área de Trabalho Remota se conectará ao proxy SOCKS5 local na porta 3080, e então o gonc fará a análise reversa do endereço 127.b.c.d para extrair a informação 10.0.0.1-3389 do nome de domínio.

  • Formato de Configuração do link

    root@kitploit:~
    # Based on the established tunnel, both local and remote sides listen on port 1080.
    # The proxy supports both HTTP and SOCKS5 protocols, with transparent proxy capability enabled.
    gonc -p2p <passphrase> -link "1080;1080"
    
    # Below is the configuration method for the URL format. The parameter value of -link must be enclosed in quotes; otherwise, parsing problems may occur.
    # The left side x://0.0.0.0:1080?tproxy=1 is equivalent to simply writing 1080.
    # The right side enables port 1080 on the remote host, without transparent proxy support.
    gonc -p2p <passphrase> -link "x://0.0.0.0:1080?tproxy=1;x://127.0.0.1:1080"
    
    # The left side f://127.0.0.1:1080?to=1.2.3.4:80
    # means listening locally on port 1080 and forwarding traffic to 1.2.3.4:80 on the remote side.
    # The right side 'none' indicates that no port is opened remotely.
    gonc -p2p <passphrase> -link "f://127.0.0.1:1080?to=1.2.3.4:80;none"
    
    # The right side f://0.0.0.0:80?to=127.0.0.1:80
    # means listening on port 80 on the remote side and forwarding traffic back to 127.0.0.1:80 locally.
    gonc -p2p <passphrase> -link "none;f://0.0.0.0:80?to=127.0.0.1:80"
    
    # The left side x+tls means the proxy protocol with TLS encryption and allows for certificate configuration. The right side specifies the outbound IP address via `outbound_bind` (suitable for multi-IP environments).
    gonc -p2p <口令> -link "x+tls://user:[email protected]:1080?cert=ca.pem&key=key.pem;none?outbound_bind=10.0.0.5"
    

Configuração Flexível de Serviços

  • Use -exec para configurar flexivelmente a aplicação para fornecer serviços para cada conexão. Por exemplo, em vez de especificar /bin/bash para comandos de shell, também pode ser usado para encaminhamento de portas. No entanto, o exemplo a seguir inicia um novo processo gonc para cada conexão:
    root@kitploit:~
    gonc -keep-open -exec "gonc -tls www.baidu.com 443" -l 8000
    
  • Para evitar gerar múltiplos processos filhos, use o módulo nc integrado:
    root@kitploit:~
    gonc -keep-open -exec ":nc -tls www.baidu.com 443" -l 8000
    

Serviço de Proxy Socks5

  • Configure o modo cliente:

    root@kitploit:~
    gonc -x s.s.s.s:port x.x.x.x 1234
    
  • Servidor Socks5 integrado: Use -e :s5s para fornecer serviço Socks5 padrão. Suporta -auth para definir um nome de usuário e senha para Socks5. Use -keep-open para aceitar continuamente conexões de clientes ao servidor Socks5. Graças às goroutines do Golang, alcança bom desempenho de concorrência multi-cliente:

    root@kitploit:~
    gonc -e ":s5s -auth user:passwd" -keep-open -l 1080
    
  • Socks5 Seguro sobre TLS: Como o Socks5 padrão não é criptografado, use -e :s5s com -tls e -psk para personalizar comunicação Socks5 segura sobre TLS. Use -P para monitorar informações de transmissão de conexão, e -acl para implementar controle de acesso para conexões de entrada e destinos de proxy. Para o formato do arquivo acl.txt, veja acl-example.txt.

    gonc.exe -tls -psk passphrase -e :s5s -keep-open -acl acl.txt -P -l 1080

    No outro lado, use :s5c (comando s5c integrado) para converter Socks5 sobre TLS em Socks5 padrão, fornecendo acesso de cliente local em 127.0.0.1:3080:

    gonc.exe -e ":s5c -tls -psk passphrase x.x.x.x 1080" -keep-open -l -local 127.0.0.1:3080

Estabelecendo um Túnel para Outras Aplicações

  • Auxiliar o WireGuard no NAT Traversal para Formar uma VPN

    No lado passivo (listening), PC-S, execute o seguinte comando (usando a chave pública do par WireGuard como passphrase, e assumindo que o WireGuard está escutando na porta 51820):

    gonc -p2p <PublicKey-of-PS-S> -mqtt-wait -u -k -e ":nc -u 127.0.0.1 51820"

    No lado ativo (iniciador), PC-C, defina o Endpoint do par WireGuard (PS-S) para 127.0.0.1:51821, com sua própria interface WireGuard escutando em 51820. Em seguida, execute o seguinte comando. A flag -k permite que o gonc se reconecte automaticamente se a rede cair:

    gonc -p2p <PublicKey-of-PS-S> -mqtt-hello -u -k -e ":nc -u -local 127.0.0.1:51821 127.0.0.1 51820"

Capacidades de NAT Traversal P2P

Como o gonc estabelece uma conexão P2P?

  • Usa simultaneamente múltiplos servidores STUN públicos para detectar mapeamentos NAT TCP/UDP locais e determinar inteligentemente o tipo de NAT
  • Troca informações de endereço de forma segura via servidores MQTT públicos, usando um hash derivado da SessionKey como tópico compartilhado
  • Tenta conexão direta na seguinte ordem de prioridade: IPv6 TCP > IPv4 TCP > IPv4 UDP, visando comunicação ponto a ponto verdadeira
  • Nenhum servidor de relay é usado, e nenhum mecanismo de fallback é fornecido — ou a conexão falha, ou é um sucesso P2P real

Como Implantar um Servidor de Relay para Casos Onde o P2P Não É Viável

  • Um servidor SOCKS5 com suporte a UDP ASSOCIATE rodando em um IP público é suficiente como relay. Você também pode executar o proxy SOCKS5 integrado do gonc em seu próprio VPS para atuar como servidor de relay.

    O comando a seguir inicia um proxy SOCKS5 que suporta apenas encaminhamento UDP. As opções -psk e -tls habilitam criptografia e autenticação baseada em PSK. Nota: Não apenas abra a porta 1080 no seu firewall — o encaminhamento UDP usa portas aleatórias para cada sessão.

    gonc -e ":s5s -u -c=0" -psk <password> -tls -k -l 1080

  • Quando o P2P falha, você só precisa que um lado do gonc tente novamente o processo P2P usando a opção -x para rotear através do relay SOCKS5:

    gonc -p2p <passphrase> -x "-psk <password> -tls <socks5server-ip>:1080"

    Alternativamente, você pode usar um servidor proxy SOCKS5 padrão que suporta encaminhamento UDP:

    gonc -p2p <passphrase> -x "<socks5server-ip>:1080" -auth "user:password"

Por exemplo, se ambos os pares estiverem atrás de NATs simétricos e o P2P falhar, ter apenas um lado usando um relay SOCKS5 UDP efetivamente muda seu comportamento NAT para "easy", tornando muito mais fácil estabelecer uma conexão. Os dados permanecem criptografados ponta a ponta.

Servidores públicos usados(STUN & MQTT):

root@kitploit:~
"tcp://turn.cloudflare.com:80",
"udp://turn.cloudflare.com:53",
"udp://stun.l.google.com:19302",
"stun.gonc.cc:3478",
"global.turn.twilio.com:3478",
"stun.nextcloud.com:443",

"tcp://broker.hivemq.com:1883",
"tcp://broker.emqx.io:1883",
"tcp://test.mosquitto.org:1883",
"tcp://mqtt.gonc.cc:1883"

Quão eficaz é o gonc no NAT traversal?

Exceto em cenários de NAT simétrico em ambas as extremidades, o gonc alcança uma taxa de sucesso muito alta

O gonc classifica os tipos de NAT em três categorias:

  1. Easy: Uma única porta interna mapeia para a mesma porta externa em múltiplos servidores STUN

  2. Hard: Uma única porta interna mapeia para uma porta externa consistente mas diferente em servidores STUN — mais difícil que o tipo 1

  3. Symmetric: Uma única porta interna mapeia para portas externas diferentes dependendo do destino — o tipo mais difícil

Para lidar com esses tipos de NAT, o gonc emprega várias estratégias de traversal:

  • Usa múltiplos servidores STUN para detectar o comportamento do NAT e identificar cenários de múltiplas saídas de IP

  • Prefere conexões IPv6 quando ambos os lados suportam (por exemplo, discagem direta TCP6-to-TCP6)

  • Ambos os pares escutam em TCP enquanto simultaneamente discam um para o outro para aumentar o sucesso do TCP hole punching

  • O par com o NAT mais fácil atrasa seu pacote UDP inicial para evitar acionar mudanças de porta no lado mais difícil

  • O par com o NAT mais difícil envia pacotes UDP com um TTL baixo para reduzir a interferência do firewall remoto

  • Como último recurso, usa uma estratégia de "paradoxo do aniversário": o lado mais difícil usa 600 portas de origem aleatórias, e o outro lado tenta 600 portas de destino aleatórias, aumentando a chance de uma colisão bem-sucedida de porta UDP

Baixar ferramenta