ncat またはnc catコマンドと同様の機能を備えたネットワークユーティリティですが、ネットワーク用です。これは、ネットワークを介してデータを読み取り、書き込み、リダイレクトするための汎用CLIツールです。スクリプトやその他のプログラムで使用できる信頼性の高いバックエンドツールとして設計されています。また、必要なあらゆる種類の接続を作成できるため、ネットワークデバッグに最適なツールです。
ncat / ncは、ポートスキャンツールまたはセキュリティツールにすることができます 、または監視ツール シンプルなTCPプロキシでもあります 。それは非常に多くの機能を持っているので、それはネットワークスイスアーミーナイフとして知られています。これは、すべてのシステム管理者が知って習得する必要のあるツールの1つです。
ほとんどのDebianディストリビューションでは「nc」が利用可能であり、そのパッケージはインストール中に自動的にインストールされます。ただし、最小限のCentOS 7 / RHEL 7インストールでは、デフォルトパッケージとしてncは見つかりません。次のコマンドを使用してインストールする必要があります。
[[email protected]〜]#yum install nmap-ncat -y
システム管理者は、これを使用してシステムセキュリティを監査し、開いているポートを見つけて保護することができます。管理者は、Webサーバー、Telnetサーバー、メールサーバーなどを監査するためのクライアントとしても使用できます。「nc」を使用すると、送信されるすべての文字を制御したり、送信されたクエリへの応答を表示したりできます。
また、クライアントから送信されたデータをキャプチャして、クライアントが何をしているのかを理解することもできます。
このチュートリアルでは、「nc」コマンドの使用方法を10の例で学習します。
例:1)インバウンド接続をリッスンします
Ncatはリッスンモードで動作でき、オプション「l」を使用してポート番号でインバウンド接続をリッスンできます。完全なコマンドは、
$ ncat -l port_number
たとえば、
$ ncat -l 8080
これで、サーバーはインバウンド接続のポート8080のリッスンを開始します。
例:2)リモートシステムに接続する
ncを使用してリモートシステムに接続するには、次のコマンドを使用できます。
$ ncat IP_address port_number
例を見てみましょう
$ ncat 192.168.1.100 80
これで、IPアドレス192.168.1.100のサーバーへの接続がポート80で行われ、サーバーに指示を送信できるようになります。
で完全なページコンテンツを取得できるようにGET / HTTP / 1.1
またはページ名を取得します
GET / HTTP / 1.1
または、次の方法でOSフィンガープリントのバナーを取得できます
HEAD / HTTP / 1.1
これにより、Webサーバーの実行に使用されているソフトウェアがわかります。
例:3)UDPポートへの接続
デフォルトでは、ncユーティリティはTCPポートにのみ接続します。ただし、UDPポートに接続することもできます。そのため、オプション「u」を使用できます。
$ ncat -l -u 1234
これで、システムはudpポート「1234」のリッスンを開始します。これは、以下のnetstatコマンドを使用して確認できます。
$ netstat -tunlp | grep 1234udp 0 0.0.0.0:1234 0.0.0.0:* 17341 / ncudp6 ::341特定のリモートホストにUDPポート接続を送信またはテストしたいとします。次に、次のコマンドを使用します。
$ ncat -v -u {host-ip} {udp-port}
例:
[[email protected]〜]#ncat -v -u 192.168.105.150 53Ncat:バージョン6.40(http://nmap.org/ncat)Ncat:192.168.105.150:53に接続されています。例:4)チャットツールとしてのNC
NCはチャットツールとしても使用できます。ポートをリッスンするようにサーバーを構成し、同じポート上のリモートマシンからサーバーに接続してメッセージの送信を開始することができます。サーバー側で実行
$ ncat -l 8080リモートクライアントマシンで、
を実行します$ ncat 192.168.1.100 8080メッセージの送信を開始するよりも、サーバー端末に表示されます。
例:5)プロキシとしてのNC
NCは、簡単なコマンドでプロキシとして使用することもできます。例を見てみましょう
$ ncat -l 8080 | ncat 192.168.1.200 80これで、ポート8080でサーバーに到達するすべての接続が、ポート80で192.168.1.200サーバーに自動的にリダイレクトされます。ただし、パイプを使用しているため、データの転送と受信のみが可能であるため、次のことを行う必要があります。双方向パイプを作成します。これを行うには、次のコマンドを使用します。
$ mkfifo 2way $ ncat -l 8080 0 <2way | ncat 192.168.1.200 80 1> 2wayこれで、ncプロキシを介してデータを送受信できるようになります。
例:6)nc/ncatを使用したファイルのコピー
NCを使用して、あるシステムから別のシステムにファイルをコピーすることもできますが、推奨されておらず、ほとんどすべてのシステムにデフォルトでssh/scpがインストールされています。ただし、ssh / scpのないシステムに遭遇した場合でも、最後の手段としてncを使用することもできます。
データを受信するマシンから開始し、ncをリスナーモードで開始します。
$ ncat -l 8080> file.txtデータのコピー元のマシンで、次のコマンドを実行します。
$ ncat 192.168.1.100 8080 --send-onlyここで、data.txtは送信する必要のあるファイルです。 –send-onlyオプションは、ファイルがコピーされると接続を閉じます。このオプションを使用しない場合は、ctrl+cを押して接続を手動で閉じます。
この方法を使用してディスクパーティション全体をコピーすることもできますが、注意して行う必要があります。
例:7)nc/nactを介してバックドアを作成する
NCコマンドを使用して、システムへのバックドアを作成することもできます。この手法は、実際にはハッカーによって多く使用されています。システムを保護するには、それがどのように機能するかを知る必要があります。バックドアを作成するためのコマンドは、
$ ncat -l 10000 -e / bin / bash‘ e ‘フラグはbashをポート10000に接続します。これで、クライアントはサーバーのポート10000に接続でき、bashを介してシステムに完全にアクセスできるようになります。
$ ncat 192.168.1.100 1000例:8)nc/ncatを介したポートフォワーディング
オプション「c」を使用してポート転送にNCを使用することもできます。ポート転送を実行するための構文は、
です。$ ncat -u -l 80 -c'ncat -u -l 8080'これで、ポート80のすべての接続がポート8080に転送されます。
例:9)接続タイムアウトを設定する
ncatのリスナーモードは引き続き実行され、手動で終了する必要があります。ただし、オプション「w」を使用してタイムアウトを構成できます
$ ncat -w 10 192.168.1.100 8080これにより、接続は10秒で終了しますが、クライアント側でのみ使用でき、サーバー側では使用できません。
例:10)ncatの-kオプションを使用してサーバーを強制的に稼働させます
クライアントがサーバーから切断すると、しばらくするとサーバーもリッスンを停止します。ただし、オプション「k」を使用して、サーバーを強制的に接続したままポートリッスンを継続することができます。次のコマンドを実行します
$ ncat -l -k 8080これで、クライアントからの接続が切断されても、サーバーは稼働したままになります。
これでチュートリアルは終了です。下のコメントボックスを使用して、この記事に関する質問をしてください。
Linux