Mit einem Netcat-Listener wie:
nc -l <port> < ~/.bashrc
Ich kann meine .bashrc-Datei auf einem neuen Computer (ohne nc
oder mit LDAP) abrufen mit:
cat < /dev/tcp/<ip>/<port> > ~/.bashrc
Meine Frage ist: Gibt es eine Möglichkeit, die Fähigkeiten von nc -l <port>
in meiner ersten Zeile mit / dev / tcp nachzuahmen, anstatt nc
?
Die Maschinen, auf denen ich arbeite, sind extrem gehärtete RHEL-Umgebungen (kein SSH, kein NC, kein LDAP, kein YUM, ich kann keine neue Software installieren und sie sind nicht mit dem Internet verbunden)
Antworten:
Wenn Perl installiert ist (wie auf einem RHEL-Computer):
würde funktionieren, wenn eine lokale Firewall keine eingehenden Verbindungen zu 1234 zulässt.
Wenn socat installiert ist:
Wenn zsh installiert ist:
quelle
ztcp -c 4
Befehl nicht 3 lauten? Ansonsten tolle Infos, toller Tipp.Leider ist es unmöglich, nur mit Bash zu tun.
/dev/tcp/<ip>/<port>
Virtuelle Dateien werden so implementiert, dass bash versucht, eine Verbindung mit der angegebenen<ip>:<port>
using-connect(2)
Funktion herzustellen. Um eine Hörbuchse zu erstellen, müsste sie diebind(2)
Funktion aufrufen .Sie können dies überprüfen, indem Sie
bash
Quellen herunterladen und ansehen. Es ist inlib/sh/netopen.c
file in_netopen4
function (oder _netopen6, das auch IPv6 unterstützt) implementiert . Diese Funktion wird von der Wrapper-Funktionnetopen
aus derselben Datei verwendet, die wiederum direkt in der Dateiredir.c
(redir_special_open
Funktion) verwendet wird, um diese virtuelle Umleitung zu implementieren.Sie müssen eine andere Anwendung finden, die einen Listening-Socket auf Ihrem Computer erstellen kann.
quelle
Es gibt keine Möglichkeit zuzuhören, da das Zuhören nicht in der Bash ist, wie Adamski betonte.
Sie müssen den Client jedoch nicht abhören, damit Sie zum Übertragen von Dateien kein Netcat auf dem Client benötigen. Beispiel:
quelle
Sie können das tun, wie Sie sagten, indem Sie / dev / tcp mit bash fragen:
Wenn es sofort ausgeführt wird, hört es zu, in beiden Fällen tritt eine Zeitüberschreitung auf
quelle