Remote shell («удаленная оболочка») — инструмент, позволяющий через командную оболочку (программу для управления компьютером с помощью команд) на одном устройстве выполнять команды на другом.

Функциональность remote shell впервые появилась в 1983 году в операционной системе BSD. Позднее ее реализовали и в других ОС, в том числе в Windows. В качестве remote shell могут использоваться как встроенные инструменты системы, так и самописные утилиты.

Также термин remote shell может обозначать штатную утилиту операционной системы для удаленного выполнения команд (rsh) и устаревший протокол, который использует эта утилита (RSH).

Для чего нужна «удаленная оболочка»

Remote shell может использоваться для удаленной настройки устройств, мониторинга, обнаружения и исправления ошибок, работы на удаленном сервере и т. д. Также инструменты типа remote shell используют злоумышленники, чтобы получить доступ к компьютеру жертвы.

Bind shell и reverse shell

Инициировать сессию remote shell может как локальное устройство (которое отправляет команды), так и удаленное (на котором команды выполняются). В первом случае remote shell будет называться bind shell («прямая оболочка»), во втором — reverse shell («обратная оболочка»).

Reverse shell может использоваться, когда устройство, на котором нужно выполнить команду, недоступно напрямую, — например, для удаленного техобслуживания компьютеров, расположенных за NAT, к которым нельзя подключиться извне. Также reverse shell создают вредоносные программы, чтобы дать злоумышленникам возможность управлять зараженным устройством.

Протоколы RSH и SSH

Исторически для сессий remote shell использовался протокол RSH. Этот протокол использует для авторизации файлы со списком доверенных устройств и пользователей, которые могут без каких-либо проверок подключиться к компьютеру, на котором хранится файл. Этот протокол устарел и сейчас считается небезопасным по ряду причин:

  • При передаче по этому протоколу данные не шифруются и их можно перехватить. Это делает взаимодействие через RSH уязвимым для MitM-атак.
  • Протокол RSH допускает выполнение команд без проверки подлинности, если эти команды поступили с доверенного устройства, IP-адрес которого могут подделать злоумышленники.

На смену RSH пришел протокол SSH (Secure Shell, «защищенная оболочка») с возможностью шифрования и обязательной аутентификацией.

Публикации на схожие темы