Com um ouvinte netcat como:
nc -l <port> < ~/.bashrc
Posso pegar meu .bashrc em uma nova máquina (não possui nc
ou LDAP) com:
cat < /dev/tcp/<ip>/<port> > ~/.bashrc
Minha pergunta é: Existe uma maneira de imitar os recursos da nc -l <port>
minha primeira linha com / dev / tcp em vez de nc
?
As máquinas nas quais estou trabalhando são RHEL extremamente endurecidas (sem ssh, nc, LDAP, yum, não consigo instalar novos softwares e eles não estão conectados à Internet)
Respostas:
Se o Perl estiver instalado (como em uma máquina RHEL):
funcionaria, a menos que um firewall local não permita conexões de entrada para 1234.
Se o socat estiver instalado:
Se o zsh estiver instalado:
fonte
ztcp -c 4
comando não deveria ler 3? Caso contrário, ótimas informações, ótima dica.Infelizmente, é impossível fazer apenas com o bash.
/dev/tcp/<ip>/<port>
arquivos virtuais são implementados da maneira que o bash tenta se conectar à função especificada<ip>:<port>
usandoconnect(2)
. Para criar um soquete de escuta, ele teria que chamar abind(2)
função.Você pode verificar isso fazendo o download de
bash
fontes e olhando para ele. É implementado nolib/sh/netopen.c
arquivo na_netopen4
função (ou _netopen6, que também suporta IPv6). Essa função é usada pela função wrappernetopen
do mesmo arquivo, que por sua vez é usada diretamente no arquivoredir.c
(redir_special_open
função) para implementar esse redirecionamento virtual.Você precisa encontrar outro aplicativo que possa criar um soquete de escuta em sua máquina.
fonte
Não há como escutar, porque escutar não está na festa, como apontou Adamski.
Mas você não precisa escutar no cliente para não precisar do netcat no cliente para transferir arquivos, por exemplo:
fonte
você pode fazer isso como disse, perguntando / dev / tcp, com o bash:
se for executado imediatamente, está ouvindo, de qualquer forma
fonte