[Bash] Transférer un fichier
Introduction
Si vous êtes dans un environnement restreint et que vous disposez seulement d'un shell, vous pouvez vous poser la question de comment transférer un fichier via le réseau. Heureusement, bash propose plusieurs solution pour palier ce problème.
Bash
Il est possible de transférer un fichier avec une méthode Living Of The Land en Bash :
HOST="127.0.0.1"; PORT="8000"; RESOURCE="/data.txt"; OUTPUT_FILE="data.txt"; exec 3<>/dev/tcp/$HOST/$PORT; echo -e "GET $RESOURCE HTTP/1.1\r\nHost: $HOST\r\nConnection: close\r\n\r\n" >&3; { while IFS= read -r line; do [[ $line == $'\r' ]] && break; done; cat; } <&3 > "$OUTPUT_FILE"; exec 3<&-; exec 3>&-
Netcat
Cet outil est pratique et présent sur de nombreuses distributions Linux.
Tout d'abord, mettez vous en écoute depuis la machine source (qui envoie le fichier) :
nc -lp <PORT> < <FILE>
Puis réceptionnez le fichier depuis la machine cible :
nc <SRC_IP> <PORT> > <FILE>
No Comments