Netcat を使用して独自のサーバーを展開する


ジェイソン・トーマス著

Unixコマンドラインユーティリティネットキャット「ネットワーク・スイス・アーミー・ナイフ」と呼ばれるのには十分な理由があります。最高の UNIX ユーティリティと同様、非常にシンプルですが、あらゆる種類の便利なタスクを実行できます。これは、そのタイトルからもよく説明されています。netcat はユーティリティ「cat」に似ていますが、ネットワーク全体で実行されます。 1 台のマシンが netcat を使用してリッスンするようにセットアップされ、他のマシンがそれに接続します。接続すると、テキストをパイプしたり、リッスンしているマシン上でコマンド シェルを開いたり、ローカル マシン上の cat でできることであれば何でも行うことができます。

あなたが netcat を使ったことはないが、ネットワークに接続されたマシン上で頻繁に作業するコマンド ライン マニアなら、この netcat の簡単な入門書が最適です。

(ほとんどのディストリビューションでは、netcat は「nc」と呼ばれます。netcat として存在することもあります。ここでは、nc と呼ばれるものとします。シグウィンWindows および Mac OS X の場合。)

ネットキャットを始めましょう。

netcat を実行しているマシン上で 2 つのコマンド ウィンドウを開きます。これは、テスト目的で 1 台のマシンで行うことも、2 つの異なるステーションに接続するターミナル セッションで行うこともできます。

1 つのウィンドウで次のように入力します。

nc -l -p 1234

これにより、netcat にサーバーを起動し、ポート 1234 でのリッスンを開始するように指示されます。

一方、別のウィンドウで次のように入力します。

NC1234

まだあまり刺激的ではありません。各ウィンドウに配置する必要があります。ただし、2 番目のウィンドウに何かを入力して、Return キーを押します。入力した内容が最初のウィンドウにポップアップ表示されるはずです。かなりおしゃれですよね?先ほども言いましたが、猫によく似ています。

おしゃれさはその柔軟性から生まれます。たとえば、マシン A でプロセスを実行し、その出力をマシン B にパイプすることができます。マシン A に誰がログインしているかを監視したいとします。マシン B にリスニング サーバーをセットアップしてから、マシン A にリスニング サーバーをセットアップすることもできます。 dタイプのようなもの

見てください | NC1234

次に、リスニング マシンで実行ログを監視することになります。どういうことですか?セキュリティ上の理由からこれを行う場合もあります。ネット上のどこかにある友人のコロボックスにプロセス リストのログを保存したい場合もあります。

次のように、netcat を簡単でダーティなファイル コピー ユーティリティとして使用することもできます。

(宛先マシン上:)

nc -l -p 1234 > 宛先.ファイル名

(ソースマシン上: )

猫のソース.ファイル名 | NC1234

もう一度、その理由を尋ねるかもしれません。 netcat は非常に標準的なため、どのマシンでも使用できることがほぼ確実です。たとえば、OpenSSH スイートよりもはるかに優れています。

Netcat は、それ自体に接続するだけでよいわけではありません。任意のサービスに接続でき、ポートでリッスンできるため、どのサービスからでも接続できます。ポート 1234 でリッスン サーバーを再度起動し、Firefox を使用してアドレス https:// を使用してそのポートに接続するとします。:1234/「こんにちは」、リッスン セッションで HTTP GET 試行が上にスクロールしていることがわかります。

または、シェルを起動することもできます。次のようにリッスンサーバーを起動します。

nc -l -p 1234 -e /bin/bash

次のように接続します。

NC1234

bash シェルにコマンドを入力し、出力を確認できるはずです。 (注: -e は、netcat がオンになってコンパイルされている場合にのみ有効になります。Gina がこれを自分のマシンでテストしたとき、Cygwin は -e を許可しましたが、Mac OS X は許可しませんでした。nc -h利用可能なオプションをリストします。 -e がリストされていれば、あなたはゴールデンです。)

ただし、Netcat には大きな問題があります。すべてを平文で実行するため、ネットワークを盗聴している人は誰でもあなたが何をしているのかを知ることができます。プログラムを使用する方がはるかに安全ですcryptcat、ここから入手可能を使用すると、任意の暗号化されたセッションをセットアップできます。

netcat を使用すると、古い UNIX write コマンドと同様のクイック チャット セッションを実行できます。これを行うために、リッスン サーバーは次のことを行います。

nc -vlp 1234

ここで、-v は冗長を指定します。通常どおり接続すると、両方のウィンドウで前後に入力できるようになります。

Netcat では、ポートをスキャンしてください!開いているサービスについてマシンをスキャンする場合は、次のように入力します。

nc -v ローカルホスト 1 ~ 1000

応答している 1 ~ 1000 のポートを返します。私の場合、開いているポートが 1 つ返されました。

ローカルホスト [127.0.0.1] 631 (ipp) オープン

631 が何だったのか思い出せなかったので、ネットで検索しました。

nc -v ローカルホスト 631

そしてサーバーを立ち上げました。多くのタイプの TCP ポートの標準終了コマンドである「QUIT」を入力すると、「Server: CUPS/1.2」を含むいくつかの HTML が吐き戻されました。それは私のプリント サーバーの Web インターフェイスでした。

Netcat は非常に便利で便利です。アプリが詰まったサムドライブを持ち歩くなら、netcat もその 1 つになるはずです。 cat と同様に、netcat はバックエンドとして動作するように設計されています。少しの Python プログラミング能力と netcat があれば、驚くべきことが実現できます。あなたが見つけたクールな使い方をすべて聞いてみましょう!

ジェイソン・トーマス彼はツインシティに住むライター兼コンピューターの専門家です。