Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
gonc — 自動NATトラバーサル、安全なP2P、およびシェルアクセス、ファイル転送、ネットワークプロキシのための高度な機能を備えたNetcat。 | Kitploit
ツール/GitHubGitHub/threatexpert/gonc
汎用ユーティリティ暗号化/復号化ツールウェブプロキシと傍受データ流出ネットワークセキュリティペネトレーションテストコマンド&コントロールレッドチーミングリモートアクセスツール
GitHubthreatexpert/gonc

gonc

自動NATトラバーサル、安全なP2P、およびシェルアクセス、ファイル転送、ネットワークプロキシのための高度な機能を備えたNetcat。

73362775日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
リポジトリを見るウェブサイト
共有

gonc の紹介

中文 、 English の README

gonc は、ピアツーピア通信を容易にするために設計された 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
    
  • 受信側には 2 つの選択肢があります:

  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 通信

  • パスフレーズを合意することにより、2 つの異なるネットワーク間で安全な暗号化 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 を使用せず、1 つの接続のみを受け入れ、-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 をサポートします。-keep-open を使用して Socks5 サーバーへのクライアント接続を継続的に受け入れます。Golang の goroutine のおかげで、優れたマルチクライアント同時実行性能を実現します:

    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 コマンド)を使用して Socks5 over TLS を標準の 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"

ツールをダウンロード