Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/threatexpert/gonc
General Purpose UtilitiesEncryption/Decryption ToolsWeb Proxies & InterceptionData ExfiltrationNetwork SecurityPenetration TestingCommand and ControlRed TeamingRemote Access Tool
GitHubthreatexpert/gonc

gonc

자동 NAT 트래버설, 보안 P2P, 그리고 셸 접근, 파일 전송, 네트워크 프록시를 위한 고급 기능을 갖춘 Netcat.

저장소 보기웹사이트
73362775일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

gonc 소개

中文 、 English README

gonc는 P2P 통신을 용이하게 하기 위해 설계된 Golang 기반의 netcat 도구입니다. 주요 기능은 다음과 같습니다:

  • 🔁 자동화된 NAT 트래버설: 제로 구성. 양쪽 모두 패스프레이즈에 합의하기만 하면 됩니다. -p2p 매개변수를 사용하면 피어가 서로의 네트워크 주소를 자동으로 검색하고 NAT 트래버설을 통해 점대점 연결을 설정할 수 있으며, 주소 교환을 위해 공용 STUN 및 MQTT 서비스를 활용합니다.

  • 🔒 상호 인증을 통한 종단간 암호화: TCP용 TLS와 UDP용 DTLS 암호화 전송을 지원하며, 패스프레이즈 기반 상호 신원 인증을 제공합니다.

  • 🧩 유연한 서비스 구성: -e 매개변수를 사용하면 각 연결에 서비스를 제공하도록 애플리케이션을 유연하게 설정할 수 있습니다. 예를 들어 -e /bin/sh는 원격 cmd 셸을 제공할 수 있습니다. 또한 내장 가상 명령을 사용하여 편리한 SOCKS5 서비스, HTTP 파일 서비스, 트래픽 포워딩을 제공할 수 있습니다.


최신 버전 다운로드

docs


관련 프로젝트

  • gonc-gui — gonc를 기반으로 구축된 데스크톱(Windows) 및 Android 앱: 편리한 기기 간, 네트워크 간 P2P 직접 연결 및 보안 파일 전송. 패스프레이즈를 공유하거나(또는 QR 코드를 스캔)하기만 하면 되며, 명령줄이 필요하지 않습니다.

사용 예시

기본 사용법

  • nc처럼 사용:

    gonc www.baidu.com 80
    gonc -tls www.baidu.com 443
    

    IP와 포트를 기반으로만 점대점 연결을 설정할 수 있습니다.

  • 이제 공유 패스프레이즈를 기반으로 자동화된 NAT 트래버설을 통해 점대점 연결을 설정할 수도 있습니다.

    다음 다이어그램은 홈 광대역 네트워크(하드 NAT)와 모바일 네트워크(대칭 NAT)의 피어 간에 gonc가 P2P 연결을 설정하는 과정을 보여줍니다. 양쪽 모두 IPv6를 가지고 있으므로 NAT 트래버설을 시연하기 위해 양쪽 끝에서 -4 옵션을 사용하여 IPv4를 강제합니다.

    hole-punching

P2P 터널 및 HTTP 파일 서버

  • 양쪽이 동일한 패스프레이즈에 합의합니다. 송신 측에서 공유할 파일이나 디렉터리를 노출하는 HTTP 파일 서버를 시작합니다. -httpserver 옵션은 여러 경로를 허용하며, 각 경로는 단일 파일 또는 디렉터리일 수 있습니다:

    gonc -p2p <passphrase> -httpserver c:/RootDir1 c:/RootDir2
    
  • 수신 측에는 두 가지 옵션이 있습니다:

  1. 전체 디렉터리 자동 다운로드

    다음 명령을 실행하면 모든 파일이 로컬 머신에 재귀적으로 다운로드됩니다. 프로세스가 중단되면 명령을 다시 실행하면 중단된 지점부터 자동으로 재개됩니다:

    gonc -p2p <passphrase> -download c:/SavePath
    
  2. 브라우저를 통한 탐색 및 선택적 다운로드

    이 옵션은 자동으로 다운로드를 시작하지 않습니다. 대신 브라우저를 수동으로 열고 http://127.0.0.1:9999를 방문하여 피어의 파일 목록을 보고 필요에 따라 파일을 다운로드해야 합니다:

    gonc -p2p <passphrase> -httplocal-port 9999
    

    특정 하위 디렉터리를 다운로드해야 하는 경우 브라우저는 불편해지지만, 다음과 같이 할 수 있습니다:

    gonc -http-download c:/SavePath http://127.0.0.1:9999/subdir
    

보안 암호화 P2P 통신

  • 패스프레이즈에 합의하여 두 개의 서로 다른 네트워크 간에 보안 암호화 P2P 통신을 설정합니다(gonc -psk .를 사용하여 passphrase를 대체할 고엔트로피 패스프레이즈를 생성). 이 패스프레이즈는 상호 검색 및 인증서 파생에 사용되어 TLS 1.3으로 통신 보안을 보장합니다.

    gonc -p2p passphrase
    

    다른 쪽에서도 동일한 매개변수를 사용합니다(프로그램은 자동으로 TCP 또는 UDP 통신을 시도하고(TCP 우선), 역할(TLS 클라이언트/서버)을 협상하며, TLS 프로토콜을 완료합니다):

    gonc -p2p passphrase
    

    다른 쪽이 실행 시간을 지연시키면 약 30초 이내에 정보를 교환할 상대방을 찾지 못하면 종료됩니다. 따라서 MQTT 메시지 구독 기반 대기 메커니즘도 지원하며, -mqtt-wait와 -mqtt-hello를 사용하여 양측의 P2P 시작 타이밍을 동기화합니다. 예를 들어 다음은 -mqtt-wait를 사용하여 지속적으로 대기합니다,

    gonc -p2p passphrase -mqtt-wait
    

    다른 쪽에서는,

    gonc -p2p passphrase -mqtt-hello
    
  • NAT 유형 확인

    gonc -nat-checker
    

    이는 IPv6 및 IPv4 TCP 및 UDP NAT 주소를 확인하고 NAT 후 포트 변경을 분석합니다. TCP6 또는 UDP6 주소가 나열되지 않으면 IPv6가 없는 것입니다. 각 프로토콜 주소는 "(easy)"로 끝나며, 이는 홀 펀칭 성공률이 가장 높음을 나타냅니다. "(hard)"는 더 높은 성공률을 나타내며, "(symm)"은 가장 어렵습니다. Symm은 P2P가 작동하려면 다른 쪽이 "easy" 또는 "hard"여야 합니다.

리버스 셸 (UNIX 계열 시스템용 의사 터미널 지원)

  • 리스너(-keep-open을 사용하지 않으며, 하나의 연결만 수락하고, -psk로 인증하지 않음):
    gonc -tls -exec ":sh /bin/bash" -l 1234
    
  • 셸을 얻기 위해 연결(TAB, Ctrl+C 등 지원):
    gonc -tls -pty x.x.x.x 1234
    
  • 리버스 셸에 P2P 사용(passphrase는 인증에 사용되어 TLS 1.3으로 보안 통신을 보장):
    gonc -exec ":sh /bin/bash" -p2p passphrase
    
    다른 쪽에서는:
    gonc -pty -p2p passphrase
    

전송 속도 테스트

  • 데이터를 전송하고 전송 속도 측정(내장 /dev/zero 및 /dev/urandom):
    gonc.exe -send /dev/zero -P x.x.x.x 1234
    
    출력 예시:
    IN: 76.8 MiB (80543744 bytes), 3.3 MiB/s | OUT: 0.0 B (0 bytes), 0.0 B/s | 00:00:23
    
    수신 측에서는:
    gonc -P -l 1234 > NUL
    

P2P 터널 및 SOCKS5 / HTTP 프록시

  • 터널이 설정될 때까지 대기:

    gonc -p2p passphrase -linkagent
    
  • 다른 쪽에서 원격 네트워크에 접근하기 위해 포트 3080에서 로컬 SOCKS5 / HTTP 프록시 서비스를 시작:

    # 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"
    

    다음으로, 예를 들어 원격 네트워크의 10.0.0.1:3389에 연결하려면 로컬 원격 데스크톱 클라이언트에 다음 주소를 입력하기만 하면 됩니다:

    10.0.0.1-3389.gonc.cc:3080
    

    이 도메인은 127.b.c.d 형식의 IP로 확인됩니다. 결과적으로 원격 데스크톱 클라이언트는 포트 3080의 로컬 SOCKS5 프록시에 연결하고, gonc는 127.b.c.d 주소를 역으로 파싱하여 도메인 이름에서 10.0.0.1-3389 정보를 추출합니다.

  • link 구성 형식

    # 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"
    

유연한 서비스 구성

  • -exec를 사용하여 각 연결에 서비스를 제공하도록 애플리케이션을 유연하게 구성합니다. 예를 들어 셸 명령에 /bin/bash를 지정하는 대신 포트 포워딩에도 사용할 수 있습니다. 그러나 다음 예시는 각 연결마다 새로운 gonc 프로세스를 시작합니다:
    gonc -keep-open -exec "gonc -tls www.baidu.com 443" -l 8000
    
  • 여러 자식 프로세스를 생성하지 않으려면 내장 nc 모듈을 사용하세요:
    gonc -keep-open -exec ":nc -tls www.baidu.com 443" -l 8000
    

Socks5 프록시 서비스

  • 클라이언트 모드 구성:

    gonc -x s.s.s.s:port x.x.x.x 1234
    
  • 내장 Socks5 서버: -e :s5s를 사용하여 표준 Socks5 서비스를 제공합니다. Socks5에 대한 사용자 이름과 비밀번호를 설정하려면 -auth를 지원합니다. Socks5 서버에 대한 클라이언트 연결을 지속적으로 수락하려면 -keep-open을 사용하세요. Golang의 고루틴 덕분에 우수한 다중 클라이언트 동시성 성능을 달성합니다:

    gonc -e ":s5s -auth user:passwd" -keep-open -l 1080
    
  • TLS를 통한 보안 Socks5: 표준 Socks5는 암호화되지 않으므로 -e :s5s를 -tls 및 -psk와 함께 사용하여 TLS 통신을 통한 보안 Socks5를 사용자 정의합니다. 연결 전송 정보를 모니터링하려면 -P를 사용하고, 수신 연결 및 프록시 대상에 대한 액세스 제어를 구현하려면 -acl을 사용하세요. acl.txt 파일 형식은 acl-example.txt를 참조하세요.

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

    다른 쪽에서는 :s5c(내장 s5c 명령)를 사용하여 TLS를 통한 Socks5를 표준 Socks5로 변환하여 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

다른 애플리케이션을 위한 터널 설정

  • WireGuard가 NAT 트래버설을 통해 VPN을 형성하도록 지원

    수동(리스닝) 측 PC-S에서 다음 명령을 실행합니다(WireGuard 피어의 공개 키를 패스프레이즈로 사용하고, WireGuard가 포트 51820에서 리스닝 중이라고 가정):

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

도구 다운로드