Con un oyente netcat como:
nc -l <port> < ~/.bashrc
Puedo tomar mi .bashrc en una nueva máquina (no tiene nc
o LDAP) con:
cat < /dev/tcp/<ip>/<port> > ~/.bashrc
Mi pregunta es: ¿hay alguna manera de imitar las capacidades de nc -l <port>
mi primera línea con / dev / tcp en lugar de nc
?
Las máquinas en las que estoy trabajando son un entorno de laboratorio / caja de arena extremadamente resistente RHEL (sin ssh, sin nc, sin LDAP, sin mmm, no puedo instalar un nuevo software y no están conectados a Internet)
Respuestas:
Si Perl está instalado (como lo estará en una máquina RHEL):
funcionaría, a menos que un firewall local no permita conexiones entrantes a 1234.
Si se instala socat:
Si está instalado zsh:
fuente
ztcp -c 4
comando leer 3? De lo contrario, excelente información, excelente consejo.Desafortunadamente, es imposible hacerlo con solo bash.
/dev/tcp/<ip>/<port>
los archivos virtuales se implementan de la forma en que bash intenta conectarse a la función de<ip>:<port>
uso especificadaconnect(2)
. Para crear un socket de escucha, tendría que llamar a labind(2)
función.Puede verificar esto descargando
bash
fuentes y mirándolo. Se implementa en ellib/sh/netopen.c
archivo en_netopen4
función (o _netopen6, que también es compatible con IPv6). Esta función es utilizada por la función contenedoranetopen
del mismo archivo, que a su vez se usa directamente en el archivoredir.c
(redir_special_open
función) para implementar esta redirección virtual.Debe encontrar alguna otra aplicación que pueda crear un socket de escucha en su máquina.
fuente
No hay una manera de escuchar porque escuchar no es una fiesta como Adamski señaló.
Pero no necesita escuchar en el cliente, por lo que no necesita netcat en el cliente para transferir archivos, por ejemplo:
fuente
puedes hacer eso como dijiste, preguntando / dev / tcp, con bash:
si se ejecuta de inmediato, está escuchando, de cualquier manera se agota el tiempo de espera
fuente