Welcome to Our Website

Linux nc příkaz

Aktualizováno: 03/06/2020 do Počítače, Doufám, že

Na Unix-jako operační systémy, nc příkaz spustí Netcat, nástroj pro odesílání raw dat přes síťové připojení.

tento dokument pokrývá Linuxovou verzi nc.

popis

Netcat je nástroj, který čte a zapisuje data přes síťová připojení pomocí protokolu TCP nebo UDP. Je navržen tak, aby byl spolehlivým nástrojem „back-end“, který lze použít přímo nebo řízený jinými programy a skripty., Současně je to nástroj pro ladění a průzkum sítě bohatý na funkce, protože dokáže vytvořit téměř jakýkoli druh připojení, které byste potřebovali, a má několik zajímavých vestavěných funkcí. Společné využití patří:

  • Jednoduchý TCP proxy
  • Shell-skript založený HTTP klientů a serverů
  • Network daemon testování
  • Ponožky nebo HTTP ProxyCommand ssh

Syntax

Možnosti

-4 Síly nc používat IPv4 adresy.
-6 nutí nc používat pouze adresy IPv6.,
-B povolit vysílání.
-c odeslat CRLF jako konec řádku.
-D Povolit ladění na soketu.
– d nepokoušejte se číst ze stdin.
-h vytiskne nápovědu nc.
-I Délka určuje velikost vyrovnávací paměti pro příjem TCP.
-i interval určuje časový interval zpoždění mezi řádky odeslaného a přijatého textu. Také způsobuje zpoždění mezi připojením k více portům.,
-k nutí nc, aby po dokončení jeho aktuálního připojení zůstala poslouchat další připojení. Je chybou používat tuto možnost bez volby-l.
– L Používá se k určení, že nc by měl poslouchat příchozí připojení, spíše než zahájit připojení ke vzdálenému hostiteli. Je chybou použít tuto možnost ve spojení s možnostmi-p,- s nebo-z. Navíc jsou ignorovány všechny časové limity zadané s volbou-w.
-n ne dělat žádné DNS nebo služby vyhledávání na jakékoliv zadané adresy, názvy hostitelů nebo porty.,
-o délka určuje velikost vyrovnávací paměti odesílání TCP.
– p proxy_username určuje uživatelské jméno pro prezentaci proxy serveru, který vyžaduje autentizaci. Pokud není zadáno žádné uživatelské jméno, ověření se nepokouší. Proxy autentizace je podporována pouze pro proxy HTTP CONNECT v současné době.
-p source_port určuje zdrojový port, který má NC používat, s výhradou omezení oprávnění a dostupnosti.,
– Q seconds po EOF na stdin počkejte zadaný počet sekund a poté ukončete. Pokud jsou sekundy negativní, počkejte navždy.
-r určuje, že zdrojové nebo cílové porty by měly být vybrány náhodně místo postupně v rozsahu nebo v pořadí, v jakém je systém přiřadí.
-s umožňuje možnost podpisu RFC 2385 TCP MD5.
-s source určuje IP rozhraní, které se používá k odesílání paketů., Pro Unix-domain datagram sokety, určuje místní dočasný soubor socket vytvářet a používat tak, že datagramy mohou být přijaty. Je chybou použít tuto možnost ve spojení s volbou-l.
– t toskeyword změna hodnoty IPv4 TOS. toskeyword může být jedním z kritických, inetcontrol, lowcost, lowdelay, netcontrol, propustnost, spolehlivost, nebo jeden z DiffServ Code Bodů: ef, af11 … af43, cs0 … cs7; nebo číslo v hex nebo desítkové.
-t způsobí, že nc pošle RFC 854 DON ‚ t a nebude odpovídat na RFC 854 DO A WILL requests., To umožňuje použít NC ke skriptu relací telnet.
-u určuje použití soketů unixové domény.
-u použijte UDP místo výchozí volby TCP. Pro Unix-domain sockets použijte datagram socket místo stream socket. Pokud je použita zásuvka UNIX-domain, vytvoří se v / tmp Dočasná přijímací zásuvka, pokud není uveden příznak-s.
-v rtable nastavte směrovací tabulku, která má být použita. Výchozí hodnota je 0.
– v mají NC dát více upovídaný výstup.,
-w timeout spojení, která nelze navázat nebo jsou nečinná timeout po uplynutí sekund časového limitu. Vlajka-w nemá žádný vliv na možnost-l, tj. NC bude navždy poslouchat spojení s vlajkou-w nebo bez ní. Výchozí hodnota není časový limit.
– X proxy_protocol požaduje, aby nc používala zadaný protokol při rozhovoru s proxy serverem. Podporované protokoly jsou „4“ (ponožky v. 4), „5“ (ponožky v. 5) a „connect“ (HTTPS proxy). Pokud protokol není specifikován, použije se verze ponožky 5.,
– x proxy_address požaduje, aby se nc připojila k cíli pomocí proxy serveru proxy_address a portu. Není-li port specifikován, použije se známý port pro protokol proxy (1080 pro ponožky, 3128 pro HTTPS).
-z režim DCCP.
-z určuje, že nc by měl skenovat pouze pro poslech démonů, aniž by jim poslal Žádná data. Je chybou použít tuto možnost ve spojení s volbou-l.,

cíl může být číselná IP adresa nebo symbolický název hostitele (pokud není uvedena volba-n). Obecně musí být zadáno místo určení, pokud není uvedena možnost-l (v takovém případě je použit místní hostitel). Pro Unix-domain sockets je vyžadován cíl a je cesta socketu, ke které se chcete připojit (nebo poslouchat, pokud je zadána volba-l).

port může být jedno celé číslo nebo řada portů. Rozsahy jsou ve tvaru nn-mm. obecně musí být zadán cílový port, pokud není uvedena možnost-u.,

Model klienta / serveru

je poměrně jednoduché vytvořit velmi základní model klienta / serveru pomocí nc. Na jedné konzoli spusťte NC poslech na konkrétním portu pro připojení. Například:

nc -l 1234

nc nyní poslouchá port 1234 pro připojení. Na druhé konzoli (nebo druhém počítači) se připojte k počítači a portu, který je poslouchán:

nc 127.0.0.1 1234

mezi porty by nyní mělo být spojení. Cokoli napsané na druhé konzoli bude zřetězeno na první a naopak., Po nastavení připojení se nc ve skutečnosti nestará o to, která strana se používá jako „server“ a která strana se používá jako „klient“. Připojení může být ukončeno pomocí EOF (‚^D‘).

v moderním netcatu není žádná volba – C nebo-e, ale po navázání spojení přesměrováním deskriptorů souborů můžete stále spustit příkaz. Buďte opatrní, protože otevření portu a nechat někoho připojeného provést libovolný příkaz na vašem webu je nebezpečné., Pokud opravdu potřebujete udělat, zde je příklad:

Na ‚serveru‘ na straně:

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

Na „klientem“ na straně:

nc host.example.com 1234

(příkazový řádek z host.example.com)

Tím, vytvoření fifo v /tmp/f a vytvořit nc poslouchat na portu 1234 adresy 127.0.0.1 na „server“ straně, když se „klientem“ se vytváří spojení úspěšně do přístavu, /bin/sh dostane popraven na „server“ straně a shellu je věnována „klientem“ straně.

když je připojení ukončeno, NC také skončí., Použijte -k, Pokud chcete, aby poslouchal, ale pokud příkaz ukončí, tato možnost jej restartuje nebo udržuje NC v chodu. Také nezapomeňte odstranit soubor deskriptoru jakmile už to nepotřebuju:

rm -f /tmp/f

přenos Dat

příklad v předchozí části může být rozšířena na vybudování základní přenos dat modelu. Veškeré informace vstup do jednoho konce připojení bude výstup na druhý konec, a vstup a výstup lze snadno zachytit emulovat přenos souborů.,

Začněte tím, že pomocí nc k naslouchání na konkrétní port, výstup zachycen do souboru:

nc -l 1234 > filename.out

Pomocí druhého stroje, připojit k poslechu nc proces, krmení soubor, který má být převeden:

nc host.example.com 1234 < filename.in

Po přenosu souboru, spojení se ukončí automaticky.

servery

někdy je užitečné mluvit servery „ručně“, spíše než prostřednictvím uživatelského rozhraní., Může pomoci při odstraňování problémů, kdy může být nutné ověřit, jaká data server odesílá v reakci na příkazy vydané klientem. Chcete-li například načíst domovskou stránku webové stránky:

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

Všimněte si, že se zobrazí také záhlaví odeslané webovým serverem. Mohou být filtrovány pomocí nástroje, jako je sed, pokud je to nutné.

složitější příklady lze vytvořit, když uživatel zná formát požadavků požadovaných serverem., Jako další příklad, e-mail, může být předložen na SMTP server pomocí:

skenování Portů

To může být užitečné vědět, které porty jsou otevřené a běžících služeb na cílovém počítači. Příznak-z Lze použít k tomu, aby NC nahlásil otevřené porty, spíše než k zahájení připojení. Obvykle je užitečné zapnout verbose výstup do stderr pomocí této možnosti ve spojení s volbou-v.

například:

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

rozsah portů byl zadán omezit vyhledávání na porty 20 – 30, a je snímán rostoucím pořadí.,

můžete také zadat seznam portů, skenování, například:

nc -zv host.example.com 80 20 22

porty jsou testovány, aby vám dáno.

Alternativně může být užitečné vědět, který serverový software běží a které verze. Tyto informace jsou často obsaženy v pozdravných bannerech. Chcete-li je načíst, je nutné nejprve vytvořit spojení a poté přerušit připojení, když byl banner načten., To lze provést zadáním malý timeout, s -w vlajky, nebo snad tím, že vydá příkaz „QUIT“ na serveru:

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

Příklady

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

Otevře TCP spojení na port 42 host.example.com pomocí portu 31337 jako zdrojový port, s časový limit 5 sekund.

nc -u host.example.com 53

Otevře UDP spojení na portu 53 host.example.com.

nc -s 10.1.2.3 host.example.com 42

Otevře TCP spojení na port 42 host.example.com pomocí 10.1.2.3 jako IP pro lokální připojení.,

nc -lU /var/tmp/dsocket

vytváří a poslouchá na soketu Unix-domain stream.

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

připojuje se k portu 42 host.example.com přes HTTP proxy na 10.2.3.4, port 8080. Tento příklad by mohl použít i ssh.

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

stejný jako výše uvedený příklad, ale tentokrát umožňující autentizaci proxy s uživatelským jménem „ruser“, pokud to proxy vyžaduje.

ifconfig-zobrazení nebo změna konfigurace síťových rozhraní.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *