Y at-il un moyen de lier rapidement à une TCP adresse port/ip et simplement imprimer toutes les informations à STDOUT? J'ai une solution de débogage simple qui écrit des choses à 127.0.0.1:4444 et je ' J'aimerais pouvoir simplement lier un port de bash et imprimer tout ce qui se présente. Existe-t-il un moyen simple de le faire?
$ nc -k -l 4444 > filename.out
voir nc(1)
Juste parce que vous avez demandé comment le faire dans bash
, bien que netcat
answer soit très valide:
$ exec 3<>/dev/tcp/127.0.0.1/4444
$ cat <&3
Cela fonctionne comme vous l'attendez:
nc -k -l 4444 |bash
et puis vous
echo "ls" >/dev/tcp/127.0.0.1/4444
alors vous voyez la liste effectuée par bash.
[Un bref avertissement de sécurité]
Bien sûr, si vous laissez une chose comme celle-ci s'exécuter sur votre ordinateur, vous disposez d'une passerelle largement ouverte pour toutes sortes d'attaques car les commandes peuvent être envoyées à partir de n'importe quel compte utilisateur sur n'importe quel hôte de votre réseau. Cela n'implique aucune sécurité (authentification, identification) et envoie toutes les commandes transmises non chiffrées sur le réseau, de sorte qu'il est très facile d'en abuser.
Ajouter une réponse en utilisant ncat
à laquelle @Freedom_Ben a fait allusion:
ncat -k -l 127.0.0.1 4444
et explication des options de man ncat:
-k, --keep-open Accept multiple connections in listen mode
-l, --listen Bind and listen for incoming connections