Gibt es eine Möglichkeit, schnell eine Verbindung zu einem TCP-Port / einer IP-Adresse herzustellen und einfach alle Informationen an STDOUT auszudrucken? Ich habe eine einfache Debugging-Lösung, die Dinge in 127.0.0.1:4444 schreibt, und ich möchte in der Lage sein, einfach einen Port von Bash zu binden und alles zu drucken, was auftaucht. Gibt es eine einfache Möglichkeit, dies zu tun?
76
Antworten:
sehen
nc(1)
quelle
nc
sterbe, wenn ich sie nicht so laufen lasse :while true; do nc -l 4444; done
.ncat
anstelle vonnc
(es wird mitgeliefertnmap
und es ist eine moderne Inkarnation vonnc
)Nur weil Sie gefragt haben, wie es geht
bash
, obwohl dienetcat
Antwort sehr gültig ist:$ exec 3<>/dev/tcp/127.0.0.1/4444 $ cat <&3
quelle
/dev/tcp
wie in unix.stackexchange.com/a/49947/13746Das funktioniert wie erwartet:
und dann du
echo "ls" >/dev/tcp/127.0.0.1/4444
dann sehen Sie die Auflistung von bash durchgeführt.
[Eine kurze Sicherheitswarnung]
Wenn Sie so etwas auf Ihrem Computer laufen lassen, haben Sie natürlich ein weit offenes Gateway für alle Arten von Angriffen, da Befehle von jedem Benutzerkonto auf jedem Host in Ihrem Netzwerk gesendet werden können. Dies implementiert keinerlei Sicherheit (Authentifizierung, Identifikation) und sendet alle übertragenen Befehle unverschlüsselt über das Netzwerk, sodass sie sehr leicht missbraucht werden können.
quelle
/dev/tcp
, können Sie laufen:echo "ls" | nc 127.0.0.1 4444
ls
wird dies nicht--enable-net-redirections
.Hinzufügen einer Antwort mit
ncat
diesem @Freedom_Ben spielte an:und Erklärung der Optionen von man ncat:
-k, --keep-open Accept multiple connections in listen mode -l, --listen Bind and listen for incoming connections
quelle
ncat
kommt mitnmap
und unterstützt gleichzeitige Verbindungen, während der Legacy-nc
Befehl dies nicht tut.