Получение большего объема информации от NetCat

Получение большего объема информации от NetCat

В настоящее время я использую этот стандарт netcat -e /bin/shдля предоставления удаленной оболочки для доступа других компьютеров.

Проблема в том, что эта оболочка довольно ужасна, поскольку имеет ограниченный вывод. Например, если я отправлю какую-то недопустимую команду xxxxx, я не получу ответа от машины, но на самой машине в терминале будет ошибка с надписью /bin/sh: xxxxx: not found.

Если я использую оболочку для запуска консольного приложения, часто я не могу видеть ничего, что выводит консольное приложение, и я не могу сделать это Ctrlzчерез оболочку, потому что это закроет netcat на машине. Это беспорядок, я бы хотел, чтобы это работало так же, как SSH (который я не могу использовать).

Вместо того, чтобы передавать все по конвейеру, /bin/shкак я делаю с netcat, можно ли создать пользовательское приложение, которое будет показывать мне все выходные данные в терминале? Возможно ли как-то получить текст с терминала, независимо от того, какой процесс написал в него?

Можно ли запустить его sshdна коробке, а затем netcat -e "ssh root@localhost"сделать это таким образом? (Я пробовал это, похоже, не работает).

Я ищу любое решение.

решение1

Создание "пользовательского приложения" было бы повторной реализацией telnet / ssh. Это, конечно, возможно, но не обязательно.

Если на хосте есть sshd (или telnetd), вы можете запустить его из сеанса netcat-shell с помощью eg /usr/sbin/sshd -p <port> -D 2>&1, а затем сделать это ssh -p <port> root@<host>на клиенте. Возможно, вам придется добавить дополнительные параметры в sshd, возможно, создать файл конфигурации и указать его в командной строке:/usr/sbin/sshd -f <config-file> ...

Если нет, вы можете использовать сессию netcat для загрузки telnetd или sshd, настроить необходимую среду/конфигурацию и запустить ее на каком-либо порту.

Вы также можете создать оболочку вокруг своей оболочки, чтобы перенаправить stderr в stdout, например /bin/sh 2>&1, , что позволит вам видеть stderr в сеансе netcat, но не предоставит вам функциональности «реального терминала».

Другой вариант — DISPLAY=<client>:0 xtremесли на хосте установлен xterm или его эквивалент, а на клиенте — X-сервер.

Связанный контент