netcat(略称:nc )は、 TCPまたはUDPを使用してネットワーク接続の読み書きを行うためのコンピュータネットワークユーティリティです。このコマンドは、直接使用することも、他のプログラムやスクリプトから簡単に操作することもできる、信頼性の高いバックエンドとして設計されています。同時に、ユーザーが必要とするほぼすべての種類の接続を作成でき、多くの組み込み機能を備えているため、機能豊富なネットワークデバッグおよび調査ツールでもあります。
オリジナルの netcat の機能は次のとおりです。[ 2 ]
GNUやOpenBSDのような書き換え版は、追加機能をサポートしています。たとえば、OpenBSDのncはTLSをサポートし、GNU netcatはUDPとTCPをサポートするトンネルモードをネイティブにサポートしています(オプションで、一方を他方の上にトンネルすることも可能です) 。 [ 3 ]他のバージョンでは、あるnetcatインスタンスから別のnetcatインスタンスにデータをパイプする必要がある場合があります。
netcat のオリジナル版はUnixプログラムでした。最終バージョン (1.10) は 1996 年 3 月にリリースされました。[ 4 ]
POSIXシステムには、 GNU netcat [ 5 ]やOpenBSD netcat [ 6 ]のようにゼロから書き直されたものを含め、いくつかの実装があります 。後者は IPv6 とTLSをサポートしています。OpenBSD 版はFreeBSDベース[ 7 ] 、 Windows/Cygwin [ 8 ] 、Linux [ 9 ]に移植されています。Mac OS Xには OSX 10.13 以降、netcat がインストール済みで付属していますが、ユーザーはMacPorts を使用してバリアントをインストールすることもできます。[ 10 ]
NetcatのDOS版であるNTOOLは、 FreeDOSパッケージグループNetworkingに含まれています。[ 11 ]これはWatTCPスタックに基づいており、欧州連合パブリックライセンスバージョン1.1の下でライセンスされています。[ 12 ]
組み込みシステム向けの既知の移植版には、Windows CE用(「Netcat 4 wince」[ 13 ]と呼ばれる)やiPhone用[ 14 ]がある。
BusyBoxにはデフォルトで、mini-netcatという名前の軽量版netcatが含まれています。[ 15 ] bloaty ncという名前の、より多くの機能を備えた別のバージョンも利用可能です。[ 16 ]
Solaris 11には、OpenBSD netcatに基づいたnetcatの実装が含まれています。[ 17 ]
Socat [ 18 ]はnetcatのより複雑なバリアントです。規模が大きく柔軟性があり、特定のタスクに合わせて設定する必要のあるオプションが多くあります。2016 年 2 月 1 日、Santiago Zanella-BeguelinとMicrosoft Vulnerability Research は、socatのOpenSSL実装にハードコードされていた複合Diffie-Hellmanパラメータに関するセキュリティ アドバイザリを発行しました。[ 19 ]素数が必要な場所に複合が意図せず導入された可能性が低いことから、バックドアソフトウェアの脆弱性を導入するための妨害行為の疑いが生じています。[ 20 ]この socat のバグはバージョン 1.7.3.0 と 2.0.0-b8 に影響し、1.7.3.1 と 2.0.0-b9 以降のリリースで修正されました。[ 19 ]
Cryptcat [ 21 ]は、トランスポート暗号化機能を統合したnetcatのバージョンです。
2005 年半ば、Nmap は、Ncat と呼ばれる別の netcat のバージョンを発表しました。[ 22 ]これは、「接続ブローカー」、TCP/UDP リダイレクト、SOCKS4 クライアントおよびサーバーのサポート、Ncat プロセスの「チェーン」機能、HTTP CONNECT プロキシ (およびプロキシチェーン)、SSL 接続/リスニングのサポート、IP アドレス/接続フィルタリングなどの新しい機能を備えています。Nmap と同様に、 Ncat はクロスプラットフォームです。
一部のシステムでは、修正版または類似の netcat ユーティリティは、コマンド名nc、ncat、pnetcat、socat、sock、で呼ばれますsocket。sbd
Ncatは、 Nmapスイートが提供するnetcatに似たツールです。[ 22 ]「Ncatは「従来型」Netcat(または他の実装)のコードに基づいて構築されているわけではありませんが、Ncatは間違いなくNetcatの精神と機能に基づいています。」[ 23 ]
Ncatの機能には、Ncatを連結する機能、TCPポートとUDPポートの両方を他のサイトにリダイレクトする機能、SSLサポート、SOCKS4またはHTTP(CONNECTメソッド)プロキシによるプロキシ接続(オプションでプロキシ認証も可能)が含まれます。[ 24 ]