Android

Naredba Netcat (nc) s primjerima

Netcat Tutorial - The Swiss Army Knife of Network Tools

Netcat Tutorial - The Swiss Army Knife of Network Tools

Sadržaj:

Anonim

Netcat (ili nc) je uslužni program naredbenog retka koji čita i piše podatke putem mrežnih veza, koristeći TCP ili UDP protokole. To je jedan od najmoćnijih alata u mrežnom i arsenalu administratora sustava i smatra se nožem švicarske vojske oruđa za umrežavanje.

Netcat je cross-platforma i dostupan je za Linux, macOS, Windows i BSD. Možete koristiti Netcat za uklanjanje pogrešaka i nadzor mrežnih veza, skeniranje otvorenih portova, prijenos podataka kao proxy i još mnogo toga. Netcat paket unaprijed je instaliran na macOS i popularnim Linux distribucijama poput Ubuntu.

Netcat sintaksa

Najosnovnija sintaksa uslužnog programa Netcat ima sljedeći oblik:

nc host port

Na Ubuntuu možete koristiti bilo netcat ili nc . Obje su veze prema openBSD verziji Netcata.

Netcat će prema zadanim postavkama pokušati pokrenuti TCP vezu s navedenim hostom i priključkom. Ako želite uspostaviti UDP vezu, koristite opciju -u :

nc -u host port

Port skeniranje

Skeniranje portova jedno je od najčešćih korištenja za Netcat. Možete skenirati jedan port ili raspon priključaka.

Na primjer, za skeniranje otvorenih portova u rasponu 20-80 upotrijebili biste sljedeću naredbu:

nc -z -v 10.10.8.8 20-80

Opcija -z će reći nc da skenira samo za otvorene portove, bez slanja bilo kakvih podataka, a -v mogućnost pružanja više detaljnih podataka.

Izlaz će izgledati ovako:

nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded! nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused… nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused Connection to 10.10.8.8 80 port succeeded!

nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded

Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!

Također možete koristiti Netcat za pronalazak poslužiteljskog softvera i njegove verzije. Na primjer, ako poslužitelju na zadanom SSH priključku 22 pošaljete naredbu „EXIT“:

echo "EXIT" | nc 10.10.8.8 22

Izlaz će izgledati ovako:

SSH-2.0-OpenSSH_7.6p1 Ubuntu-4 Protocol mismatch.

Za skeniranje UDP portova jednostavno dodajte naredbu -u naredbi kao što je prikazano u nastavku:

nc -z -v -u 10.10.8.8 20-80

U većini situacija, Nmap je bolji alat od Netcat-a za kompleksno skeniranje portova.

Slanje datoteka putem Netcat-a

Netcat se može koristiti za prijenos podataka s jednog računala na drugi stvaranjem osnovnog modela klijent / poslužitelj.

To funkcionira tako da se Netcat sluša na određenom portu (koristeći opciju -l ) na prijemnom hostu, a zatim uspostavi redovita TCP veza s drugog domaćina i pošalje datoteku preko njega.

Na prijemu izvedite sljedeću naredbu koja će otvoriti ulaz 5555 za dolaznu vezu i preusmjeriti izlaz u datoteku:

nc -l 5555 > file_name

Povežite se s domaćinom koji šalje i pošaljite datoteku:

nc receiving.host.com 5555 < file_name

Za prijenos direktorija možete koristiti tar za arhiviranje mape na izvornom hostu i za izdvajanje arhive na odredišnom hostu.

Na prijemnom hostu postavite alat Netcat za slušanje dolazne veze na priključku 5555. Dolazni podaci pipe se za naredbu tar koja će izdvojiti arhivu:

nc -l 5555 | tar xzvf -

Na hostu paketa direktorij i pošaljite podatke povezujući se s nc procesom slušanja na prijemnom hostu:

tar czvf - /path/to/dir | nc receiving.host.com 5555

Napredak prijenosa možete gledati na oba kraja. Nakon dovršetka, utipkajte CTRL+C da biste zatvorili vezu.

Stvaranje jednostavnog poslužitelja za chat

Postupak za stvaranje internetskog chata između dva ili više domaćina isti je kao i kod prijenosa datoteka.

Na prvom računalu pokrenite Netcat proces za slušanje porta 5555:

nc -l 5555

Od drugog domaćina pokrenite sljedeću naredbu za povezivanje na ulaz za slušanje:

nc first.host.com 5555

Ako upišete poruku i pritisnete ENTER , prikazat će se na oba domaćina.

Da biste zatvorili vezu, utipkajte CTRL+C

Izvođenje HTTP zahtjeva

Iako postoje puno bolji alati za HTTP zahtjeve poput curl-a, Netcat možete koristiti i za slanje različitih zahtjeva na udaljene poslužitelje.

Na primjer, da biste preuzeli Netcat man stranicu sa OpenBSD web mjesta, upisali biste:

printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80

Potpuni odgovor, uključujući HTTP zaglavlja i HTML kod, bit će ispisan u terminalu.

Zaključak

U ovom su vodiču naučili kako koristiti uslužni program Netcat za uspostavljanje i testiranje TCP i UDP veza.

Za više informacija posjetite stranicu Netcat man i pročitajte o svim ostalim moćnim opcijama Netcat naredbe.

netcat terminal