Netcat et /dev/tcp
Sep 28, 2017 · 1 minute readEcrire dans un socket avec Netcat
On peut facilement écrire dans un socket avec Netcat (ou nc). Par exemple :
echo 'hello' | nc localhost 8000
# Définir un timeout de 2 secondes
echo 'hello' | nc -w2 localhost 8000
# Attendre une seconde avant de fermer le socket
echo 'hello' | nc -q1 localhost 8000
Il n’est pas toujours possible de bénéficier de l’outil Netcat (ou nc), l’outil n’étant pas installé par défaut sur toutes les distributions.
Le pseudo device /dev/tcp
Netcat peut facilement être remplacé par l’utilisation du pseudo device /dev/tcp
On peut simplement écrire dans ce “fichier” qui va ouvrir un socket selon les paramètres indiqués :
echo 'hello' > /dev/tcp/127.0.0.1/8000
Petite astuce supplémentaire, pour recevoir une éventuelle réponse :
exec 3<>/dev/tcp/127.0.0.1/8000 ; echo labs 1>&3 ; echo $(cat <&3)
exec
permet de remplacer le shell avec un autre programme et de définir une redirection pour le programme courant.
On ouvre le socket en “read/write” et on redirige l’entrée et la sortie vers 3.
On écrit dans le socket puis on récupère la sortie.