Welcome to Our Website

Linux NC command (Polski)

aktualizacja: 03/06/2020 przez Computer Hope

w systemach operacyjnych uniksopodobnych polecenie NC uruchamia Netcat, narzędzie do przesyłania nieprzetworzonych danych przez połączenie sieciowe.

ten dokument obejmuje Linuksową wersję nc.

opis

Netcat jest narzędziem, które odczytuje i zapisuje dane między połączeniami sieciowymi, przy użyciu protokołu TCP lub UDP. Jest zaprojektowany jako niezawodne narzędzie „back-end”, które może być używane bezpośrednio lub napędzane przez inne programy i skrypty., Jednocześnie jest to bogate w funkcje narzędzie do debugowania i eksploracji sieci, ponieważ może tworzyć prawie każdy rodzaj połączenia, którego potrzebujesz i ma kilka ciekawych wbudowanych możliwości. Typowe zastosowania to:

  • proste proxy TCP
  • klienci i serwery HTTP oparte na skryptach powłoki
  • testowanie demonów sieciowych
  • a Socks lub HTTP ProxyCommand dla ssh

składnia

opcje

-4 wymusza na NC używanie tylko adresów IPv4.
-6 zmusza nc do używania tylko adresów IPv6.,
-b Zezwalaj na transmisję.
-C Wyślij CRLF jako zakończenie linii.
-D Włącz debugowanie na gnieździe.
-d nie próbuj odczytywać ze standardowego wejścia.
-h wypisuje pomoc nc.
-i długość określa rozmiar bufora odbioru TCP.
-i interwał określa odstęp czasu opóźnienia między wierszami wysyłanego i odbieranego tekstu. Powoduje również opóźnienie między połączeniami z wieloma portami.,
-k wymusza, że nc będzie nasłuchiwać innego połączenia po zakończeniu bieżącego połączenia. Używanie tej opcji bez opcji-l jest błędem.
-l używany do określenia, że nc powinien nasłuchiwać połączenia przychodzącego, a nie inicjować połączenie ze zdalnym hostem. Używanie tej opcji w połączeniu z opcjami-p, -s lub-z jest błędem. Dodatkowo, wszelkie przekroczenia czasu określone opcją-w są ignorowane.
-n nie wykonuje żadnych wyszukiwań DNS ani usług na żadnych podanych adresach, nazwach hostów lub portach.,
-o długość określa rozmiar bufora wysyłania TCP.
-p proxy_username Określa nazwę użytkownika, która ma zostać wyświetlona na serwerze proxy, który wymaga uwierzytelnienia. Jeśli nie podano nazwy użytkownika, nie zostanie podjęta próba uwierzytelnienia. Uwierzytelnianie Proxy jest obecnie obsługiwane tylko dla proxy HTTP CONNECT.
-p source_port określa port źródłowy nc, z zastrzeżeniem ograniczeń uprawnień i dostępności.,
– Q seconds po EOF na stdin odczekaj określoną liczbę sekund, a następnie zakończ. Jeśli liczba sekund jest ujemna, poczekaj w nieskończoność.
-r Określa, że porty źródłowe lub docelowe powinny być wybierane losowo zamiast kolejno w zakresie lub w kolejności, w jakiej system je przypisuje.
-s włącza opcję podpisu RFC 2385 TCP MD5.
-s source Określa adres IP interfejsu używanego do wysyłania pakietów., W przypadku gniazd datagramowych domeny uniksowej określa lokalny tymczasowy plik gniazd do utworzenia i użycia, aby można było odbierać datagramy. Używanie tej opcji w połączeniu z opcją-l jest błędem.
-toskeyword zmień wartość TOS IPv4. toskeyword może być jednym z krytycznych, inetcontrol, lowcost, lowdelay, netcontrol, throughput, reliability lub jednym z punktów kodu DiffServ: EF, af11 … af43, cs0 … cs7; lub liczby w szesnastkowym lub dziesiętnym.
-T powoduje, że nc wysyła żądania RFC 854 DON ' t i nie odpowie na żądania RFC 854 DO I WILL., Umożliwia to Korzystanie z nc do skryptowania sesji telnet.
-U określa użycie gniazd domen uniksowych.
-u użyj UDP zamiast domyślnej opcji TCP. W przypadku gniazd domen uniksowych użyj gniazda datagramowego zamiast gniazda strumieniowego. Jeśli używane jest gniazdo domeny uniksowej, tymczasowe Gniazdo odbiorcze jest tworzone w /tmp, chyba że podano flagę-s.
-V rtable Ustawia tabelę routingu, która ma być używana. Wartość domyślna to 0.
-V mają nc dające więcej danych wyjściowych.,
-w timeout połączenia, które nie mogą być ustawione lub są bezczynne timeout po timeout sekundach. Flaga-w nie ma wpływu na opcję-l, tzn. nc będzie nasłuchiwać połączenia w nieskończoność, z flagą-w lub bez niej. Domyślnie nie ma limitu czasu.
– x proxy_protocol żąda, aby nc używało określonego protokołu podczas rozmowy z serwerem proxy. Obsługiwane protokoły to „4” (SOCKS V.4), „5” (SOCKS V. 5) I „connect” (HTTPS proxy). Jeśli protokół nie jest określony, używana jest wersja SOCKS 5.,
-x proxy_address żąda, aby nc połączyło się z miejscem docelowym używając proxy w proxy_address i porcie. Jeśli port nie jest określony, używany jest dobrze znany port dla protokołu proxy (1080 Dla SOCKS, 3128 dla HTTPS).
-z tryb DCCP.
-z Określa, że nc powinno skanować tylko demony nasłuchujące, bez wysyłania do nich żadnych danych. Używanie tej opcji w połączeniu z opcją-l jest błędem.,

adres docelowy może być numerycznym adresem IP lub symboliczną nazwą hosta(chyba że podano opcję-n). Ogólnie rzecz biorąc, musi być określone miejsce docelowe, chyba że podano opcję-l (w tym przypadku używany jest lokalny host). W przypadku gniazd domen uniksowych wymagane jest miejsce docelowe i jest to ścieżka gniazda do połączenia (lub nasłuchiwanie, jeśli podano opcję-l).

port może być pojedynczą liczbą całkowitą lub zakresem portów. Zakresy mają postać nn-mm. Ogólnie, port docelowy musi być określony, chyba że podano opcję-U.,

model klienta/serwera

zbudowanie bardzo podstawowego modelu klienta / serwera przy użyciu nc jest dość proste. Na jednej konsoli rozpocznij nasłuchiwanie nc na określonym porcie dla połączenia. Na przykład:

nc -l 1234

nc nasłuchuje teraz połączenia na porcie 1234. Na drugiej konsoli (lub na drugiej maszynie), połącz się z maszyną i portem, na którym jest nasłuchiwany:

nc 127.0.0.1 1234

powinno być teraz połączenie między portami. Wszystko wpisane na drugiej konsoli zostanie połączone z pierwszą i vice-versa., Po skonfigurowaniu połączenia nc nie obchodzi, która strona jest używana jako „serwer”, a która jako „klient”. Połączenie może zostać zakończone za pomocą EOF (’^D').

nie ma opcji-c lub-e w nowoczesnym netcacie, ale nadal można wykonać polecenie po nawiązaniu połączenia przez przekierowanie deskryptorów plików. Bądź ostrożny, ponieważ otwieranie portu i pozwalanie każdemu połączonemu wykonać dowolne polecenie w Twojej witrynie jest niebezpieczne., Jeśli naprawdę musisz to zrobić, oto przykład:

Po stronie serwera:

rm -f /tmp/f; mkfifo /tmp/f
cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f

Po stronie klienta:

nc host.example.com 1234

(wiersz polecenia powłoki z host.example.com)

w ten sposób tworzysz fifo w/tmp /f i sprawiasz, że nc nasłuchuje na porcie 1234 o adresie 127.0.0.1 po stronie 'serwera', gdy 'klient' pomyślnie nawiąże połączenie z tym portem,/bin / sh zostanie uruchomione po stronie 'serwera', a monit powłoki zostanie przekazany po stronie 'klienta'.

Po zakończeniu połączenia NC również się kończy., Użyj opcji-k, jeśli chcesz, aby nasłuchiwała, ale jeśli polecenie zakończy działanie, ta opcja nie uruchomi jej ponownie ani nie uruchomi nc. Nie zapomnij również usunąć deskryptora pliku, gdy już go nie potrzebujesz:

rm -f /tmp/f

transfer danych

przykład z poprzedniej sekcji można rozszerzyć, aby zbudować podstawowy model transferu danych. Wszelkie informacje wprowadzone do jednego końca połączenia będą wyprowadzane na drugi koniec, a dane wejściowe i wyjściowe mogą być łatwo przechwycone w celu emulowania transferu plików.,

zacznij od użycia nc do nasłuchu na określonym porcie, z wyjściem przechwyconym do pliku:

nc -l 1234 > filename.out

za pomocą drugiego urządzenia połącz się z procesem nasłuchiwania NC, podając mu plik, który ma zostać przesłany:

nc host.example.com 1234 < filename.in

Po przesłaniu pliku połączenie zostanie automatycznie zamknięte.

rozmowa z serwerami

czasami warto rozmawiać z serwerami „ręcznie”, a nie przez interfejs użytkownika., Może pomóc w rozwiązywaniu problemów, kiedy może być konieczne sprawdzenie, jakie dane serwer wysyła w odpowiedzi na polecenia wydane przez Klienta. Na przykład, aby pobrać stronę główną witryny:

printf "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80

zauważ, że to również wyświetla nagłówki wysłane przez serwer WWW. W razie potrzeby można je filtrować za pomocą narzędzia takiego jak sed.

bardziej skomplikowane przykłady można zbudować, gdy użytkownik zna format żądań wymaganych przez serwer., Jako kolejny przykład, wiadomość e-mail może być przesłana na serwer SMTP za pomocą:

skanowanie portów

przydatne może być wiedzieć, które porty są otwarte i uruchomione usługi na docelowej maszynie. Flaga-z Może być używana, aby NC zgłaszało otwarte porty, zamiast inicjować połączenie. Zwykle jest przydatne, aby włączyć szczegółowe wyjście na stderr, używając tej opcji w połączeniu z opcją-V.

na przykład:

nc -zv host.example.com 20-30
Connection to host.example.com 22 port succeeded!Connection to host.example.com 25 port succeeded!

zakres portów został określony w celu ograniczenia wyszukiwania do portów 20 – 30 i jest skanowany według rosnącej kolejności.,

Możesz również określić listę portów do skanowania, na przykład:

nc -zv host.example.com 80 20 22

porty są skanowane według podanej kolejności.

alternatywnie, może być przydatne wiedzieć, które oprogramowanie serwera jest uruchomione i które wersje. Informacje te są często zawarte w banerach powitalnych. Aby je odzyskać, konieczne jest najpierw nawiązanie połączenia, a następnie zerwanie połączenia, gdy baner został odzyskany., Można to osiągnąć przez podanie małego limitu czasu z flagą-w, lub przez wydanie polecenia „QUIT” na serwerze:

echo "QUIT" | nc host.example.com 20-30
SSH-1.99-OpenSSH_3.6.1p2 Protocol mismatch. 220 host.example.com IMS SMTP Receiver Version 0.84 Ready

przykłady

nc -p 31337 -w 5 host.example.com 42

otwiera połączenie TCP do portu 42. host.example.com, używając portu 31337 jako portu źródłowego, z czasem 5 sekund.

nc -u host.example.com 53

otwiera połączenie UDP do portu 53 Z host.example.com.

nc -s 10.1.2.3 host.example.com 42

otwiera połączenie TCP do portu 42 Z host.example.com używanie 10.1.2.3 jako IP dla lokalnego końca połączenia.,

nc -lU /var/tmp/dsocket

tworzy i nasłuchuje Gniazdo strumienia domeny UNIX.

nc -x10.2.3.4:8080 -Xconnect host.example.com 42

łączy się z portem 42 Z host.example.com poprzez proxy HTTP w 10.2.3.4, port 8080. Ten przykład może być również używany przez ssh.

nc -x10.2.3.4:8080 -Xconnect -Pruser host.example.com 42

to samo co w powyższym przykładzie, ale tym razem włączenie uwierzytelniania proxy za pomocą nazwy użytkownika „ruser”, jeśli proxy tego wymaga.

ifconfig-przeglądanie lub modyfikowanie konfiguracji interfejsów sieciowych.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *