Netcat(または略してnc)は、TCP、UDP、またはUNIXドメインソケットに関連するLinuxでの操作を実行するために使用されるシンプルで強力なネットワークコマンドラインツールです。
Netcatは、ポートスキャン、ポートリダイレクト、ポートリスナー(着信接続用)として使用できます。 また、ターゲットサーバーにアクセスするためのバックドアとして使用できます。
この記事では、Netcatの使用コマンドを例とともに説明します。,
LinuxでNetcatをインストールして使用する方法
netcatパッケージをシステムにインストールするには、Linuxディストリビューションのデフォルトのパッケージ
$ yum install nc $ dnf install nc $ sudo apt-get install Netcat
netcatパッケージがインストールされたら、次の例でnetcatコマンドの使用法を学ぶためにさらに進むことができます。
ポートスキャン
Netcatはポートスキャンに使用できます。 それは開いた港の単一か多数または範囲をスキャンできる。,
例を示します。-z
オプションは、実際にデータを送信することなく、単にリスニングデーモンをスキャンするようにncを設定します。 -v
オプションは冗長モードを有効にし、-w
は確立できない接続のタイムアウトを指定します。,
Linuxサーバー間でファイルを転送
Netcatでは、二つのLinuxコンピュータまたはサーバー間でファイルを転送することができます。たとえば、ISOイメージファイルをあるコンピューターから別のコンピューターにコピーして転送の進行状況を監視するpvユーティリティーを使用するには、送信者/サーバーコンピューター(ISOファイルが存在する)で次のコマンドを実行します。,
これは、ポート3000でリスニングモード(-l
フラグ)でncを実行します。
$ tar -zcf - debian-10.0.0-amd64-xfce-CD-1.iso | pv | nc -l -p 3000 -q 5
受信者/クライアントコンピューターで、次のコマンドを実行してファイルを取得します。
$ nc 192.168.1.4 3000 | pv | tar -zxf -
コマンドラインチャットサーバーを作成
Netcatを使用して簡単なコマンドラインメッセージングサーバーを作成することもできますすぐに。, 前の使用例と同様に、ncはチャットルームに使用される両方のシステムにインストールする必要があります。
あるシステムで、次のコマンドを実行して、ポート5000でリッスンするチャットサーバーを作成します。
$ nc -l -vv -p 5000
他のシステムで、次のコマンドを実行して、メッセージングサーバーが実行されているマシンに対してチャットセッションを起動します。,
$ nc 192.168.56.1 5000
基本的なWebサーバーを作成します
-l
オプション。 これを示すには、次のように.html
ファイルを作成します。
$ vim index.html
ファイルに次のHTML行を追加します。
<html> <head> <title>Test Page</title> </head> <body> <p>Serving this file using Netcat Basic HTTP server!</p> </body></html>
ファイルに変更を保存して終了します。,
次に、次のコマンドを実行して上記のファイルをHTTP経由で提供します。
$ while : ; do ( echo -ne "HTTP/1.1 200 OK\r\n" ; cat index.html; ) | nc -l -p 8080 ; done
webブラウザを開き、次のアドレスを使用してコンテンツにアクセスできます。,
を押すことでNetcat HTTPサーバーを停止できることに注意してください。
Linuxサーバー接続のトラブルシューティング
Netcatのもう一つの便利な使用法は、サーバー接続の問題のトラブルシューティングです。 ここでは、Netcatを使用して、クライアントが発行したコマンドに応答してサーバーが送信しているデータを確認できます。
次のコマンドは、次のコマンドのホームページを取得しますexample.com—–,
$ printf "GET / HTTP/1.0\r\n\r\n" | nc text.example.com 80
上記のコマンドの出力には、トラブルシューティングの目的で使用できるwebサーバーから送信されたヘッダーが含まれています。
ポートで実行されているサービスを見つける
Netcatを使用してポートバナーを取得することもできます。 この場合、特定のポートの背後でどのサービスが実行されているかがわかります。 たとえば、特定のサーバーのポート22の背後で実行されているサービスの種類を知るには、次のコマンドを実行します(192.168.56.110をターゲットサーバーのIPアドレス -n
フラグは、DNSまたはサービスルックアップを無効にすることを意味します。,
$ nc -v -n 192.168.56.110 80
Create a Stream Sockets
Netcat also supports creation of UNIX-domain stream sockets. The following command will create and listen on a UNIX-domain stream socket.
$ nc -lU /var/tmp/mysocket &$ ss -lpn | grep "/var/tmp/"
Create a Backdoor
You can as well run Netcat as a backdoor., しかし、この通りです。 Netcatがターゲットサーバーにインストールされている場合は、それを使用してバックドアを作成し、リモートコマンドプロンプト
バックドアを動作させるには、Netcatがターゲットサーバー上の選択したポート(例えばポート3001)をリッスンする必要があり、次のようにマシンからこのポートに接
これは、-d
オプションがstdinからの読み取りを無効にし、-e
ターゲットシステムで実行するコマンドを指定するリモートサーバー,
$ nc -L -p 3001 -d -e cmd.exe
最後に、NetcatはHTTP、SSH、および多くを含むさまざまなサービス/プロトコルのプロキシとして使用できます。 詳細については、manページを参照してください。
$ man nc
この記事では、8つの実用的なNetcatコマンドの使用例について説明しました。 まっている場合その他の実用化の場合には、当社と共有の声を利用する場合に必要となります。 あなたも質問をすることができます。