
Actualmente estoy usando el estándar netcat -e /bin/sh
para proporcionar un shell remoto al que puedan acceder otras computadoras.
Sin embargo, el problema es que este shell es bastante terrible, ya que tiene un rendimiento limitado. Por ejemplo, si envío algún comando no válido xxxxx
, no obtendré respuesta de la máquina, pero en la máquina habrá un error en la terminal que dice /bin/sh: xxxxx: not found
.
Si uso el shell para iniciar una aplicación de consola, a menudo no puedo ver nada de lo que genera la aplicación de consola y no puedo pasar Ctrlzpor alto el shell porque eso cerrará netcat en la máquina. Es un desastre, me gustaría que funcionara igual que SSH (que no puedo usar).
En lugar de canalizar todo /bin/sh
como lo estoy haciendo con netcat, ¿sería posible crear una aplicación personalizada que me muestre todas las salidas en una terminal? ¿Es posible de alguna manera sacar el texto del terminal, independientemente del proceso que lo haya escrito?
¿Sería posible iniciar un proceso sshd
en la caja y luego netcat -e "ssh root@localhost"
hacerlo de esa manera? (He intentado esto, no parece funcionar).
Estoy buscando cualquier tipo de solución.
Respuesta1
Crear una "aplicación personalizada" sería volver a implementar telnet/ssh. Por supuesto, esto es posible, pero no necesario.
Si hay sshd (o telnetd) en el host, puede iniciarlo desde su sesión de netcat-shell con, por ejemplo, /usr/sbin/sshd -p <port> -D 2>&1
y luego hacerlo ssh -p <port> root@<host>
en su cliente. Es posible que necesites agregar más opciones a sshd, tal vez crear un archivo de configuración y proporcionarlo en la línea de comando:/usr/sbin/sshd -f <config-file> ...
De lo contrario, puede usar la sesión de netcat para cargar telnetd o sshd, configurar el entorno/configuración necesario y ejecutarlo en algún puerto.
También puede crear un contenedor alrededor de su shell para redirigir stderr a stdout, como /bin/sh 2>&1
, lo que le permitiría ver stderr en su sesión de netcat, pero no le brindaría la funcionalidad de "terminal real".
Otra opción es DISPLAY=<client>:0 xtrem
si tiene xterm o equivalente en el host y X Server en el cliente.