Security Record

セキュリティ全般に関する情報を発信しています

Netcatを用いたファイル転送の基本についてまとめた

※注意 こちらで紹介した内容を外部サーバーに対して実行した場合、場合によっては刑法にて処罰されます。 実験を行う場合は必ずローカル環境にテスト用のサーバーを構築して実行してください。

IPアドレスの確認

標的サーバー:Metasploitable2
192.168.28.4
攻撃サーバー:Kali Linux
192.168.28.5

Metasploitable2側の操作

転送するファイルの用意

root@metasploitable/home/msfadmin/netcat# vim netcat.txt
root@metasploitable/home/msfadmin/netcat# cat netcat.txt
Hacking Lab

ncコマンドで転送させるファイルを用意します。
ファイルにはHacking Labと記載しておきます。

ncコマンドの実行

ncコマンドを実行すると下記のように待機状態になります。

root@metasploitable/home/msfadmin/netcat# nc -lvp 192.168.28.4 4444 < netcat.txt
4444: inverse host lookup failed: Unknown host
listening on [any] 4444 ...

Kali Linux側の操作

┌──(root㉿kali)-[~/netcat]
└─# nc 192.168.28.4 4444 > output.txt

Metasploitable2が待機状態のまま、Kali Linuxでncコマンドを実行するとoutput.txtが出力されます。

ファイルの出力を確認する

┌──(root㉿kali)-[~/netcat]
└─# ls
output.txt

lsコマンドを実行して実際にファイルが出力されているか確認するとoutput.txtが確認出来きます。

出力されたファイルの内容の確認

┌──(root㉿kali)-[~/netcat]
└─# cat output.txt                         
Hacking Lab

catコマンドで出力されたファイルの中身を参照してみます。
Metasploitable2の方で用意したテキストと文言が一致するのが確認できました。

再びMetasploitable2を確認する

Kali Linuxでncコマンド実行後、Metasploitable2側では以下のように表示されておりセッションが確立されていた事が分かります。

root@metasploitable/home/msfadmin/netcat# nc -lvp 192.168.28.4 4444 < netcat.txt
4444: inverse host lookup failed: Unknown host
listening on [any] 4444 ...
192.168.28.5: inverse host lookup faild: Host name lookup failure
connect to (UNKNOWN) [192.168.28.4] from  (UNKNOWN) [192.168.28.5] 34124

フォレンジック調査としてのNetcat

フォレンジック調査は、システムが攻撃を受けた場合やセキュリティインシデントが発生した場合に、証拠を収集し、事件の経緯を解明するために重要な調査です。Netcatを使用してデータを転送することで、攻撃サーバーと被害サーバーの通信を解析し、攻撃の手法や目的を特定することができます。

例として、あるサーバーが攻撃されたとします。
その際、そのシステムで調査を行ってしまうと証拠が消えてしまう恐れがあります。
そういった場合、下記のように/bin/bashを転送させて、 転送先の環境でbashの改竄等がされていないかの調査を行います。

root@metasploitable/home/msfadmin/netcat# nc -lvp 192.168.28.4 4444 < /bin/bash

/bin/bashを退避させる際のコマンド例。

Netcatの用途とセキュリティリスク

Netcatはバインドシェルやリバースシェルといった機能を持つツールとして広く知られており、ネットワーク通信を介してコマンドやファイルを送受信するために使用されます。
これらの機能は攻撃者によって悪用される可能性があるため、適切なセキュリティ対策を講じないままNetcatを利用すると、システムやネットワークの侵入手段として悪用されるリスクがあります。

まとめ

ハッキングやセキュリティテストの実験において、Netcatは重要なツールとなります。攻撃者の視点からシステムの脆弱性をテストするために、バインドシェルやリバースシェルを用いることで、攻撃者がシステム内にアクセスする手法を模倣してテストを行うことができます。ハッキングの実験をしていく上で今後非常に使う頻度が多くなりそうなツールです。