Netcat Tutorial - The Swiss Army Knife of Network Tools
Sadržaj:
- Netcat sintaksa
- Port skeniranje
- Slanje datoteka putem Netcat-a
- Stvaranje jednostavnog poslužitelja za chat
- Izvođenje HTTP zahtjeva
- Zaključak
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
:
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 terminalNaredba za pokretanje doktora s primjerima

Naredba pokrenuti docker stvara spremnik iz određene slike i pokreće spremnik koristeći zadanu naredbu. To je jedna od prvih naredbi s kojom biste se trebali upoznati kada počnete raditi s Dockerom.
Echo naredba u Linuxu s primjerima

Naredba echo jedna je od najosnovnijih i najčešće korištenih naredbi u Linuxu. Argumenti proslijeđeni za odjek ispisuju se na standardni izlaz.
Naredba Curl u Linuxu s primjerima

Curl je alat naredbenog retka za prijenos podataka sa ili na poslužitelj dizajniran za rad bez interakcije korisnika. U ovom ćemo vam vodiču pokazati kako koristiti alat za kovrče kroz praktične primjere i detaljna objašnjenja najčešćih opcija za uvijanje.