
Atualmente estou usando o padrão netcat -e /bin/sh
para fornecer um shell remoto para acesso de outros computadores.
O problema, porém, é que esse shell é bastante terrível, pois tem produção limitada. Por exemplo, se eu enviar algum comando inválido xxxxx
, não obterei resposta da máquina, mas na máquina haverá um erro no terminal dizendo /bin/sh: xxxxx: not found
.
Se eu usar o shell para iniciar um aplicativo de console, geralmente não consigo ver nada que o aplicativo de console produz e não consigo Ctrlzpassar pelo shell porque isso fechará o netcat na máquina. Está uma bagunça, gostaria que funcionasse como SSH (que não posso usar).
Em vez de canalizar tudo /bin/sh
como estou fazendo com o netcat, seria possível criar um aplicativo personalizado que me mostrasse todas as saídas em um terminal? É possível de alguma forma retirar o texto do terminal, independentemente do processo que escreveu nele?
Seria possível começar um sshd
na caixa e depois netcat -e "ssh root@localhost"
fazer dessa forma? (Eu tentei isso, não parece funcionar).
Estou procurando qualquer tipo de solução.
Responder1
Criar um "aplicativo personalizado" seria reimplementar o telnet/ssh. É claro que isto é possível, mas não necessário.
Se houver sshd (ou telnetd) no host, você poderá iniciá-lo a partir de sua sessão netcat-shell com, por exemplo, /usr/sbin/sshd -p <port> -D 2>&1
e depois fazê-lo ssh -p <port> root@<host>
em seu cliente. Talvez seja necessário adicionar mais opções ao sshd, talvez criar um arquivo de configuração e fornecê-lo na linha de comando:/usr/sbin/sshd -f <config-file> ...
Caso contrário, você pode usar a sessão netcat para fazer upload de telnetd ou sshd, configurar o ambiente/configuração necessário e executá-lo em alguma porta.
Você também pode criar um wrapper em torno de seu shell para redirecionar stderr para stdout, como /bin/sh 2>&1
, o que permitiria ver stderr em sua sessão netcat, mas não forneceria funcionalidade de "terminal real".
Outra opção é DISPLAY=<client>:0 xtrem
se você tiver xterm ou equivalente no host e X Server no cliente.