web-dev-qa-db-ja.com

pingのようにnetcatを使用するにはどうすればよいですか?

Netcat(nc)を使用して、特定のマシンがWeb、メール、またはSSHサービスを実行しているかどうかをどのように判断できますか?

6
stevGates

サーバーが実行されているかどうかを確認するには、ポートがリクエスト用に開いているかどうかを確認するだけです。 netcatを使用すると、次のようにサーバーを照会できます。

nc -z www.example.com 80

これは、ポート80、Webポートをリッスンしているかどうかを通知しますが、サーバーについては何も通知しません。

Netcatを使用して詳細を学習するには、正しいデータを渡して有効な応答を引き出す必要があります。つまり、Webサーバーが実行されているかどうかを確認する場合はhttp、メール送信者が実行されている場合はsmtpなどを理解する必要があります。Webサーバーが実行されているポート、サーバーの名前、プロトコルを知っている必要があります。 、すべて。

これは、www.example.comがnetcatを使用してライブWebサーバーをホストしていたかどうかを判断する簡単な例です。

echo -e "GET http://www.example.com HTTP/1.0\n\n" | nc www.example.com 80 | less 

これがHTTP/1.0 200 OKを含む応答で戻ってきた場合は、ポート80でWebサーバーを実行しています。そうでない場合は、通常のWebサーバーを実行していない可能性があります。

同様の方法でクエリを行う場合は、メールサーバーとSSHサーバーのプロトコルを検出して理解する必要があります。

ただし、Netcatはこの仕事には実際には不適切なツールです。ホストが実行しているサーバーの種類を識別したい場合、nmapは、遭遇する可能性が高い一般的なサーバーのさまざまなフィンガープリントを最新に保つため、はるかに優れたツールです。

9
John Deters

質問に対する回答。追加の提案や情報はありません。

サービスがリモートサーバーで実行されているかどうかをテストします。

nc -zvn IP PORT

例smtpをテストする

nc -zvn 10.8.0.45 25
3
avicoder

Superuser.comで言ったように:

はい、使用するには HPing を使用します。

$ Sudo hping -S -p 80 google.com
HPING google.com (p5p1 77.237.27.37): S set, 40 headers + 0 data bytes
len=46 ip=77.237.27.37 ttl=58 id=25706 sport=80 flags=SA seq=0 win=29200 rtt=7.5 ms
len=46 ip=77.237.27.37 ttl=58 id=25707 sport=80 flags=SA seq=1 win=29200 rtt=7.4 ms
len=46 ip=77.237.27.37 ttl=58 id=25708 sport=80 flags=SA seq=2 win=29200 rtt=8.5 ms
len=46 ip=77.237.27.37 ttl=58 id=25709 sport=80 flags=SA seq=3 win=29200 rtt=7.8 ms
^C
--- google.com hping statistic ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 7.4/7.8/8.5 ms

Ping(システムでsuidである可能性が最も高い)と同様に、生のIPパケットを作成するにはroot特権(またはSELinux機能)が必要であることに注意してください。

出典: https://superuser.com/a/769980/171552

0
d33tah

これはあなたの質問に答えるかもしれません。 netcatはいくつかのポートスキャンを行うことができます:

「ポートスキャンは、そこに何があるかを調べるための一般的な方法です。Netcatは、最初にオプション、次にターゲットホストでコマンドを受け入れ、その後すべてがMN構文のポート名または番号、またはポートの範囲として解釈されます。警告:一部のポート_/etc/services_の名前にはハイフンが含まれています-現在、netcatはそれらを正しく解析しません。可能な場合、数値を使用して範囲を指定してください。複数のポートがこのように指定されている場合、netcatはallに接続しますそれらの、正常に接続されている各ポートに標準入力から最大8K相当のデータの同じバッチを送信します。複数のポートを指定すると、拒否された接続に関する診断メッセージも抑制されます(_-v_は、「詳細度を上げる」ために2回指定されます。これにより、通常は真に開いている接続についてのみ通知されます。例:_nc -v -w 2 -z target 20-30_は、ターゲットで20から30(両端を含む)までのすべてのポートへの接続を試み、 FTPサーバー、Telnetサーバー、およびメーラーについて通知する可能性があります途中で。 _-z_スイッチは、TCP接続へのデータ送信およびUDP接続への非常に限定されたプローブデータを送信しないようにします。したがって、ターゲットをどのポートにするかを確認するだけの高速スキャンモードとして役立ちます。必要に応じてスキャン速度を制限するために、_-i_は各ポートプローブの間に遅延を挿入します。後で説明するように、UDPスキャンに関していくつかの落とし穴がありますが、一般的にはうまく機能します。 "

http://nc110.sourceforge.net

0
multithr3at3d