С слушателем netcat вроде:
nc -l <port> < ~/.bashrc
Я могу получить мой .bashrc на новой машине (не имеет nc
или LDAP) с:
cat < /dev/tcp/<ip>/<port> > ~/.bashrc
Мой вопрос: есть ли способ подражать возможностям nc -l <port>
в моей первой строке с / dev / tcp вместо nc
?
Машины, на которых я работаю, представляют собой чрезвычайно защищенную среду лаборатории / песочницы RHEL (нет ssh, нет nc, нет LDAP, нет yum, я не могу установить новое программное обеспечение, и они не подключены к Интернету)
Ответы:
Если Perl установлен (как это будет на машине RHEL):
будет работать, если только локальный брандмауэр не разрешает входящие соединения до 1234.
Если установлен socat:
Если zsh установлен:
источник
ztcp -c 4
команда прочитать 3? В противном случае отличная информация, отличный совет.К сожалению, это невозможно сделать только с помощью bash.
/dev/tcp/<ip>/<port>
Виртуальные файлы реализованы так, что bash пытается подключиться к указанной функции<ip>:<port>
с помощьюconnect(2)
. Для того чтобы создать сокет прослушивания, он должен был бы вызватьbind(2)
функцию.Вы можете проверить это, загрузив
bash
источники и посмотрев на них. Это реализовано вlib/sh/netopen.c
файле в_netopen4
функции (или _netopen6, которая также поддерживает IPv6). Эта функция используется функцией-оболочкойnetopen
из того же файла, которая, в свою очередь, напрямую используется в файлеredir.c
(redir_special_open
функции) для реализации этого виртуального перенаправления.Вы должны найти какое-то другое приложение, которое может создать сокет прослушивания на вашем компьютере.
источник
Нет способа слушать, потому что слушание не в духе, как указал Адамски.
Но вам не нужно слушать на клиенте, поэтому вам не нужен netcat на клиенте для передачи файлов, например:
источник
вы можете сделать это, как вы сказали, спросив / dev / tcp, с помощью bash:
если он запускается немедленно, он слушает, так или иначе, время ожидания
источник