Я знаю, что могу создать оболочку на стороне сервера, используя:
nc -l 1111 -e /bin/bash
Но я хочу создать оболочку на стороне клиента.
Я пробовал делать:nc 127.0.0.1 1111 | /bin/bash
Это работает, но я не вижу вывода выполненных команд.
Итак, вопрос в том, есть ли способ запустить оболочку на стороне клиента с помощью netcat?
решение1
Кажется, у меня работает, хотя зависит от версии netcat. Debian имеет два пакета: "netcat-традиционный" и "netcat-openbsd". Первый поддерживает -e
как клиентский, так и серверный режим, последний не поддерживает вообще.
$ nc.traditional localhost 1234 -e /bin/bash
$ nc.openbsd localhost 1234 -e /bin/bash
nc.openbsd: invalid option -- 'e'
Тот, что на моей OSX, тоже не поддерживает.
Если вам нужно сделать это с помощью netcat, который не поддерживает -e
, вам может понадобиться что-то вроде этого:Как создать двунаправленный канал между двумя программами?