Z detektorem netcat takim jak:
nc -l <port> < ~/.bashrc
Mogę pobrać mój .bashrc na nowym komputerze (nie ma nc
lub LDAP) za pomocą:
cat < /dev/tcp/<ip>/<port> > ~/.bashrc
Moje pytanie brzmi: czy istnieje sposób naśladowania możliwości nc -l <port>
w mojej pierwszej linii za pomocą / dev / tcp zamiast nc
?
Maszyny, nad którymi pracuję, to wyjątkowo zahartowane środowisko laboratoryjne / piaskownicy RHEL (bez ssh, bez nc, bez LDAP, bez mniam, nie mogę zainstalować nowego oprogramowania i nie mają połączenia z Internetem)
Odpowiedzi:
Jeśli Perl jest zainstalowany (tak jak będzie na maszynie RHEL):
działałoby, chyba że lokalna zapora sieciowa nie zezwala na połączenia przychodzące do 1234.
Jeśli socat jest zainstalowany:
Jeśli zsh jest zainstalowany:
źródło
ztcp -c 4
polecenie nie powinno brzmieć 3? W przeciwnym razie świetna informacja, świetna wskazówka.Niestety, nie można tego zrobić tylko po prostu bash.
/dev/tcp/<ip>/<port>
Pliki wirtualne są realizowane w sposób, który próbuje bash do łączenia się z określonym<ip>:<port>
przy użyciuconnect(2)
funkcji. Aby utworzyć gniazdo nasłuchiwania, musiałby wywołaćbind(2)
funkcję.Możesz to sprawdzić, pobierając
bash
źródła i przeglądając je. Jest zaimplementowany wlib/sh/netopen.c
pliku w_netopen4
funkcji (lub _netopen6, który obsługuje również IPv6). Ta funkcja jest używana przez funkcję otokinetopen
z tego samego pliku, która z kolei jest bezpośrednio używana w plikuredir.c
(redir_special_open
funkcji) do implementacji tego wirtualnego przekierowania.Musisz znaleźć inną aplikację, która może utworzyć gniazdo nasłuchiwania na twoim komputerze.
źródło
Nie ma sposobu na słuchanie, ponieważ słuchanie nie jest zawstydzone, jak zauważył Adamski.
Ale nie musisz nasłuchiwać na kliencie, więc nie potrzebujesz netcata na kliencie do przesyłania plików, na przykład:
źródło
możesz to zrobić tak jak powiedziałeś, pytając / dev / tcp, używając bash:
jeśli uruchomi się natychmiast, nasłuchuje, tak czy inaczej, przekroczy limit czasu
źródło