Pregled mogućnosti i osnovnih tehnika korištenja uslužnog programa netcat. Korisni primjeri korištenja uslužnog programa netcat u Linux Netcat naredbama

Prikazivanje testne HTML stranice klijentu sa regularnim pretraživačem sa jednom komandom (port 8080):
(echo -e "HTTP / 1.1 200 OK \ nContent-Type: text / html \ n \ n Hello World";) | nc -vv -l -p 8080
Prebacivanje datoteke na klijenta sa regularnim pretraživačem jednom komandom (port 8080):
(echo -e "HTTP / 1.1 200 \ nContent-Disposition: attachment; filename = target-name-to-to-client-wide-wide \ nContent-Type: application / oktet-stream \ nConnection: close \ n"; cat naziv datoteke - na disku) | nc -vv -l -p 8080

Kako koristiti nc?

(http://handynotes.ru/2010/01/unix-utility-netcat.html )

Počnimo s nekoliko jednostavnih primjera i koristimo ih kao osnovne.
Ako se sećate, rekao sam da je netcat švajcarski vojni nož. Šta bi ovaj nož bio da se ne može koristiti kao običan nož? Zbog toga se netcat može koristiti umjesto običnog telneta:

$ nc www.google.com 80

U stvari, praktičniji je od običnog telneta jer vezu možete prekinuti u bilo kom trenutku pritiskom na Ctrl + C i tretira binarne podatke kao normalne (bez izlaznih sekvenci, ništa).
Možete dodati parametar “-v” za detaljniji izlaz rezultata radnji i parametar (-vv) da dobijete statistiku o tome koliko je bajtova prebačeno tokom trenutne sesije veze.
Netcat se može koristiti kao server. Ako ga pokrenete kao ispod, slušat će na portu 12345 (na svim interfejsima):

$ nc -l -p 12345

Sada, ako se povežete na port 12345 ovog hosta, sve što unesete će se prenijeti na udaljenu stranu, što nam govori da se netcat može koristiti kao chat server. Pokrenite na jednom od računara:

# Na računaru A sa IP 10.10.10.10
$ nc -l -p 12345

I povežite se na njega s drugog:

# Na računaru B
$ nc 10.10.10.10 12345

Sada obje strane mogu razgovarati!
Ovaj način razgovora gdje obje strane mogu razgovarati jedna s drugom omogućava korištenje nc za mrežni I/O! Na primjer, možete poslati cijeli direktorij s jednog računala na drugi tako što ćete postaviti tar cjevovod kroz nc na prvom računaru i preusmjeriti izlaz na drugi tar proces na drugom.
Pretpostavimo da želite da prenesete datoteke iz / data direktorija računara A sa IP 192.168.1.10 na računar B (sa bilo kojom IP). jednostavno je:


$ tar -cf - / podaci | nc -l -p 6666


# Na računaru B
$ nc 192.168.1.10 6666 | tar -xf -

Ne zaboravite kombinirati pipeline sa Pipe Viewerom koji je opisan u prethodnom članku da vidite statistiku o tome koliko brzo prijenos ide!
Jedan fajl se može lakše poslati:

# Na računaru A sa IP 192.168.1.10
$ cat file | nc -l -p 6666


# Na računaru B
$ nc 192.168.1.10 6666> fajl

Možete čak kopirati i vratiti cijeli disk koristeći nc:

# Na računaru A sa IP 192.168.1.10
$ cat / dev / hdb | nc -l -p 6666


# Na računaru B
$ nc 192.168.1.10 6666> / dev / hdb

Napomena: Opcija -l se ne može koristiti zajedno sa -p na Mac računarima! Rješenje je jednostavno zamijeniti “-l -p 6666? do “-l 6666 ?. kao ovdje:

# sada nc sluša na portu 6666 za Mac računare
$ nc -l 6666

Neuobičajena upotreba netcat-a je skeniranje portova. Netcat nije najbolji alat za ovaj posao, ali to radi (najbolji, naravno, nmap):

$ nc -v -n -z -w 1 192.168.1.2 1-1000
(NEPOZNATO) 445 (microsoft-ds) otvoren
(NEPOZNATO) 139 (netbios-ssn) otvoren
(NEPOZNATO) 111 (sunrpc) otvoreno
(NEPOZNATO) 80 (www) otvoreno
(NEPOZNATO) 25 (smtp): Veza je istekla
(NEPOZNATO) 22 (ssh) otvoreno

Opcija -n sprječava DNS traženje, -z ne čeka odgovor od servera, a -w 1? postavlja vremensko ograničenje veze na 1 sekundu.
Još jedna netrivijalna upotreba netcata je kao proxy. I port i host se mogu proslijediti. Pogledajte ovaj primjer:

$ nc -l -p 12345 | nc www.google.com 80

Ova komanda pokreće nc na portu 1234 i preusmjerava sve veze na google.com:80. Ako se sada povežete na ovaj računar na portu 12345 i uputite zahtjev, ustanovit ćete da ne primate nikakve podatke zauzvrat. To je tačno jer nismo postavili dvosmjerni kanal. Ako dodate drugi kanal, dobit ćete svoje podatke na drugom portu:

$ nc -l -p 12345 | nc www.google.com 80 | nc -l -p 12346

Nakon slanja zahtjeva na port 12345, primite podatke o odgovoru na portu 12346.
Vjerovatno najmoćnija karakteristika netcat-a je pokretanje bilo kojeg procesa kao servera:

$ nc -l -p 12345 -e / bin / bash

Opcija -e utječe na izvršenje ulaza i izlaza preusmjerenih preko mrežne utičnice. Sada, ako se povežete na host na portu 12345, možete koristiti bash:
$nc localhost 12345
ls -las
ukupno 4288
4 drwxr-xr-x 15 pkrumins korisnika 4096 2009-02-17 07:47.
4 drwxr-xr-x 4 pkrumins korisnika 4096 2009-01-18 21:22 ..
8 -rw ——- 1 pkrumins korisnika 8192 2009-02-16 19:30 .bash_history
4 -rw-r — r— 1 pkrumins korisnika 220 2009-01-18 21:04 .bash_logout

(http://execbit.ru/2011/05/23/netcat/)
1 Prenesite fajlove (prvu komandu izvršavamo na mašini za prijem, drugu na mašini za odašiljanje:

$ nc -l 31334> naziv datoteke $ nc 172.16.69.143 31334< filename

$ nc -f / var / log / poruke | nc -l 31334 $ nc 172.16.69.143 31334

3 Koristite umjesto telneta (prvi je telnet server, drugi je klijent):

$ nc -l -p 31334 -e / bin / sh $ nc 172.16.69.143 31334

4 Skenirajte otvorene portove:

$ nc -z execbit.ru 1-1024

5 usluga otiska prsta na bazi banera:

$ echo "NAPUSTI" | nc execbit.ru 1-1024

6 Organizujte obrnutu ljusku (prva je klijent, druga je server, ali će se školjka otvoriti sa servera na klijenta).

Gotovo svaka distribucija Linuxa ima mali, neupadljiv uslužni program. netcat, ili jednostavno nc... Ovaj program može kreirati TCP utičnice ili u serverskom režimu da čeka vezu, ili u klijentskom režimu da se poveže sa serverom. Iskreno rečeno, za netcat uopšte nije važno da li ćete ga koristiti kao server ili kao klijent - njegov posao je samo da prikupi podatke sa stdin-a i prenese ih na navedenu mrežnu adresu.

Najjednostavniji primjer korištenja netcat-a je kreiranje klijent-server chata. Iako je ovo vrlo primitivan način kreiranja ćaskanja, jasno pokazuje kako ovaj uslužni program radi. U sljedećim primjerima će se pretpostaviti da mašina koja kreira standby socket (server) ima IP adresu 192.168.0.1. Dakle, napravimo chat server koji će slušati veze na TCP portu 3333:

$ nc -l 3333

Sada se možemo povezati na ovaj server sa drugog računara:

$ nc 192.168.0.1 3333

U ovom slučaju, tastatura djeluje kao stdin. Sve što je upisano na tastaturi sa strane servera će se prenijeti na klijentski terminal i obrnuto.

Prijenos datoteka

Na potpuno isti način, možete koristiti netcat za prijenos datoteka između dva računara. Koristeći sljedeću naredbu, možete kreirati server koji priprema datoteku za učitavanje:

Backup.iso datoteku možete dobiti na drugom računaru na sljedeći način:

$ nc 192.168.0.1 3333> backup.iso

Kao što vidite, netcat ne prikazuje nikakve informacije o procesu prijenosa. Ovo može biti prilično nezgodno kada radite s velikim datotekama. Da biste riješili ovaj problem, možete koristiti uslužni program (progress viewer). U ovom primjeru, na strani servera, informacije o brzini i količini prenetih podataka će biti prikazane u realnom vremenu:

$ cat backup.iso | pv -b | nc -l 3333

Slično, možete prikazati statistiku na strani klijenta:

$ nc 192.168.0.1 3333 | pv -b> backup.iso

Više primjera

Uslužni program netcat također može biti od koristi za kreiranje slike particije tvrdog diska sa mogućnošću slanja na udaljeni server u hodu:

$ dd if = / dev / hdb5 | gzip -9 | nc -l 3333

A na udaljenom stroju možete primiti kreiranu sliku na sljedeći način:

$ nc 192.168.0.1 3333 | pv -b> myhdb5partition.img.gz

Ako trebate poslati grupu datoteka - na primjer, skup konfiguracijskih datoteka - možete kombinirati netcat i tar arhiver:

$ tar -czf - / etc / | nc -l 3333

Crtica kao ime datoteke u tar parametrima je neophodna da bi se izlaz arhivera izbacio na stdin, koji se zatim preusmjerava na netcat. Možete prihvatiti kreiranu sigurnosnu kopiju na udaljenoj mašini na isti način kao što je ranije opisano:

$ nc 192.168.0.1 3333 | pv -b> mybackup.tar.gz

Sigurnost

Očigledno je da kada se netcat koristi na ovaj način, informacije se prenose preko mreže u originalnom nešifrovanom obliku. Za prijenos nekritičnih podataka, ovo je sasvim prihvatljivo, ali kada prenosite bilo kakve vrijedne informacije, razumno je koristiti netcat u kombinaciji sa SSH tunelom.

Korištenje SSH tunela ima dvije prednosti:

  1. Informacije se prenose unutar šifrovanog tunela, tako da su dobro zaštićene;
  2. Server ne treba da otvara dodatne portove u konfiguraciji zaštitnog zida, jer će se veza uspostaviti preko SSH-a

Na strani servera, datoteka u netcatu je izložena na isti način kao što je ranije opisano:

$ cat backup.iso | nc -l 3333

Na strani klijenta, povezujemo se na netcat socket na čekanju preko SSH tunela:

$ ssh -f -L 23333: 127.0.0.1: 3333 [email protected] 68.0.1 spavanje 10; \ nc 127.0.0.1 23333 | pv -b> backup.iso

Jasno je da postoje i drugi načini za postavljanje veze u SSH tunel, ali kreiranje i korištenje tunela na ovaj način ima korisnu osobinu da se tunel automatski zatvara kada se završi prijenos podataka preko netcat-a.

... i prijenosni skener portova

Nevjerovatno, netcat se još uvijek može koristiti za skeniranje otvorenih portova. Parametar -z će pomoći u tome:

$ nc -z 192.168.0.1 80-90 Povezivanje sa 192.168.0.1 80 portom uspjelo!

U ovom primjeru, netcat je skenirao opseg portova 80-90 i prijavio da je port 80 otvoren na udaljenoj mašini.

Man stranice za netcat također sadrže niz drugih korisnih savjeta i zanimljivih primjera kako koristiti program.

U ovom članku ću pogledati popularni netcat mrežni uslužni program i neke korisne trikove za rad s njim.


Netcat je Unix uslužni program koji vam omogućava da uspostavite TCP i UDP veze, primate podatke odatle i prenosite ih. Unatoč njegovoj korisnosti i jednostavnosti, mnogi ga ne znaju koristiti i nezasluženo ga zaobilaze.


Koristeći ovaj uslužni program, možete izvršiti neke od koraka u testiranju penetracije. Ovo može biti korisno kada napadnuta mašina nema instalirane pakete (ili će privući pažnju), postoje ograničenja (na primjer, IoT / Embedded uređaji) itd.


Šta se može uraditi sa netcatom:

  • Portovi za skeniranje;
  • Port Forwarding;
  • Prikupiti banere za usluge;
  • Port za slušanje (vezivanje za obrnutu vezu);
  • Preuzimanje i učitavanje datoteka;
  • Izlaz sirovog HTTP sadržaja;
  • Kreirajte mini chat.

Općenito, koristeći netcat, možete zamijeniti neke od unix uslužnih programa, tako da se ovaj alat može smatrati nekom vrstom harvestera za obavljanje određenih zadataka.

Praktični primjeri

U mnogim slučajevima, ako je potrebno provjeriti određeni host, koristi se telnet ili se koriste njihove vlastite usluge za identifikaciju hosta ili banera. Kako nam netcat može pomoći:

Provjera otvorenog TCP porta 12345

$ nc -vn 192.168.1.100 12345
nc: povezivanje na 192.168.1.100 12345 (tcp) nije uspjelo: veza odbijena

$ nc -v 192.168.1.100 22
Povezivanje na 192.168.1.100 22 port je uspjelo!
SSH-2.0-OpenSSH

Skeniranje TCP portova sa netcatom:

$ nc -vnz 192.168.1.100 20-24

S takvim skeniranjem neće biti veze s portom, već samo izlaz uspješne veze:


nc: connectx to 192.168.1.100 port 20 (tcp) nije uspio: veza odbijena
nc: connectx to 192.168.1.100 port 21 (tcp) nije uspio: veza odbijena
pronađeno 0 asocijacija
pronađena 1 veza:
1: zastavice = 82
outif en0
src 192.168.1.100 port 50168
dst 192.168.1.100 port 22
informacije o rangu nisu dostupne
Dostupne su TCP pomoćne informacije
Povezivanje sa 192.168.1.100 portom 22 je uspjelo!
nc: connectx to 192.168.1.100 port 23 (tcp) nije uspio: veza odbijena
nc: connectx to 192.168.1.100 port 24 (tcp) nije uspio: veza odbijena

Skeniranje UDP portova.

Za skeniranje UDP portova pomoću nmap-a, potrebne su root privilegije. Ako ih nema, u ovom slučaju nam može pomoći uslužni program netcat:


$ nc -vnzu 192.168.1.100 5550-5560
Povezivanje sa 192.168.1.100 portom 5555 uspjelo!

Pošaljite UDP paket

$ echo -n "foo" | nc -u -w1 192.168.1.100 161

Ovo može biti korisno pri interakciji s mrežnim uređajima.

Prijem podataka na UDP portu i izlaz primljenih podataka

$ nc -u localhost 7777

Nakon prve poruke, izlaz će se zaustaviti. Ako trebate primiti nekoliko poruka, onda morate koristiti while true:


$ dok je istinito; do nc -u localhost 7777; urađeno

Prijenos datoteka. Koristeći netcat, možete i primati datoteke i prenositi ih na udaljeni host:


nc 192.168.1.100 5555< 1.txt
nc -lvp 5555> /tmp/1.txt

Netcact kao najjednostavniji web server.

Netcat može djelovati kao jednostavan web server za prikazivanje html stranica.


$ dok je istinito; do nc -lp 8888< index.html; done

Korištenje pretraživača na: http: // netcat host: 8888 / index.html. Da biste koristili standardni port web servera 80, morate pokrenuti nc sa root privilegijama:


$ dok je istinito; uradi sudo nc -lp 80< test.html; done

Razgovarajte između čvorova

Na prvom čvoru (192.168.1.100):


$ nc -lp 9000

Na drugom čvoru:


nc 192.168.1.100 9000

Nakon izvršenja naredbi, svi znakovi uneseni u prozor terminala na bilo kojem od čvorova pojavit će se u terminalskom prozoru drugog čvora.

Reverse shell

Koristeći netcat, možete organizirati zgodnu obrnutu školjku:


nc -e / bin / bash -lp 4444

Sada se možete povezati sa udaljenog hosta:


$ nc 192.168.1.100 4444

Ne treba odustati ako nema određenih alata, često prilično glomaznih, ponekad se problem može riješiti improviziranim sredstvima.

Katedra za projektovanje puteva

Laboratorijski rad br.1

na predmetu "Informatika"

Završio učenik grupe br. 114359 Rajhman Sergej Jurijevič

Provjereno

Laboratorijski rad br.1

tema: Norton Commander Utility

Cilj: Naučite da upravljate svojim računarom koristeći Norton Commander

Norton Commander vam omogućava da izvršite sljedeće funkcije: 1) obavljanje MS-DOS funkcija, 2) prikaz sadržaja direktorija na diskovima, 3) prikaz stabla direktorija na disku, 4) pregled datoteka, 5) uređivanje tekstualnih datoteka, 6) kopirati, premještati, preimenovati, brisati datoteke, 7) promijeniti atribute datoteke.

Trčanje Norton Commander

Da biste pokrenuli Norton Commander, upišite “nc” u komandnu liniju i pritisnite “Enter”. Izađite iz Norton Commandera - F10 ili Alt + X

Prikazi ekrana i panela

Nakon pokretanja Norton Commandera, na ekranu se pojavljuju dva pravokutna prozora (panela).


Ispod ovih panela nalazi se MS-DOS prompt i informativna linija sa vrijednostima funkcijskih tipki.

F1 POMOĆ - kratke informacije o dodjeli tipki pri radu sa NC.

F2 MENU - prilagođeni meni

F3 PREGLED - pregled tekstualnog fajla, dokumenta

F4 EDIT - uređivanje tekstualnog fajla

F5 COPY - kopiranje datoteka

F6 RENMOV - prijenos, preimenovanje datoteke

F7 MKDIR - kreiranje direktorija (poddirektorijuma)

F8 DELETE - brisanje datoteka ili poddirektorija

F9 PULL DN - gornja linija ekrana prikazuje menije koji sadrže NC režime rada.

F10 QUIT - izlaz iz NC

Meni pritiskom na taster F9

Lijevo i Desno - postavite načine izlaza informacija na lijevom i desnom panelu

Datoteke - razne operacije se izvode s datotekama

Komande - izvršavaju se različite NC komande, podešavaju se NC konfiguracija i načini rada.

Jedna od stavki menija je istaknuta, za odabir druge stavke koristite strelice<¬>, <­>, <®>, <¯>i pritisnut je taster “Enter”.

Odabir datoteka

Da biste kopirali, izbrisali, premjestili datoteke, odaberite ih pritiskom na tipku Ins. Da poništite izbor, ponovo pritisnite “Ins”. Na dnu panela se pojavljuju informacije o broju odabranih datoteka.

Kreirajte direktorij

Da biste kreirali imenik, pritisnite tipku “F7”, upišite njegovo ime, pritisnite “Enter”.

Za ulazak u imenik, pritisnite tipku “Enter” na njegovom nazivu. Kada pritisnete tipke “ALT + F10”, stablo direktorija se prikazuje na ekranu. Koristeći tastere sa strelicama, možete brzo da pređete na željeni poddirektorijum.

Osnovni ključevi NC

TAB - prelazak na drugi panel

ALT + F1 - Prikaz u lijevom oknu tabele sadržaja drugog diska.

ALT + F2 - Prikaz u desnom oknu tabele sadržaja drugog diska

CTRL + F1 - sakrivanje lijevog panela sa ekrana

CTRL + F2 - sakrivanje desnog panela sa ekrana

CTRL + O - uklonite oba panela

CTRL + U - zamjena panela

Za pokretanje računara potrebno je ukucati “LOGIN” u prompt liniju, uneti lozinku (335_2).

Laboratorijski zadaci

Koristeći naredbe, kreirajte strukturu poddirektorija na disku:


nc [-46bCDdhklnrStUuvZz] [-I dužina] [-i interval] [-O dužina] [-P proxy_username] [-str izvorni port] [-q sekundi] [-s izvor] [-T tokeyword] [-V rtable] [-w vrijeme je isteklo] [-X proxy_protocol] [-x proxy_address[:luka]] [odredište] [luka]

Opcije

-4 Snage nc da koristite samo IPv4 adrese.
-6 Snage nc da koristite samo IPv6 adrese.
-b Dozvoli emitovanje.
-C Pošalji kao završetak reda.
-D Omogućite otklanjanje grešaka na utičnici.
-d Ne pokušavajte čitati sa stdin.
-h Štampa nc pomoć.
-Ja dužina Određuje veličinu TCP prijemnog bafera.
-i interval Određuje vremenski interval kašnjenja između redova poslanog i primljenog teksta. Također, uzrokuje vrijeme kašnjenja između konekcija na više portova.
-k Snage nc da ostanete osluškivati ​​drugu vezu nakon što se trenutna veza završi. Greška je koristiti ovu opciju bez -l opcija.
-l Koristi se za određivanje toga nc treba da osluškuje dolaznu vezu radije nego da pokrene vezu s udaljenim hostom. Greška je koristiti ovu opciju u kombinaciji sa -p, -s, ili -z opcije. Dodatno, bilo koje vremensko ograničenje specificirano sa -w opcija se zanemaruje.
-n Nemojte vršiti DNS ili traženje usluga na bilo kojoj od navedenih adresa, imena hostova ili portova.
-O dužina Određuje veličinu TCP bafera za slanje.
-P proxy_username Određuje korisničko ime za predstavljanje proxy serveru koji zahtijeva autentifikaciju. Ako nije navedeno korisničko ime onda se autentifikacija neće pokušati. Proxy autentifikacija je trenutno podržana samo za HTTP CONNECT proxy servere.
-p izvorni port Određuje izvorni port koji nc treba koristiti, podložno ograničenjima privilegija i dostupnosti.
-q sekundi nakon EOF-a na stdin-u, pričekajte navedeni broj sekundi, a zatim zatvorite. Ako je sekunda negativna, čekajte zauvijek.
-r Određuje da se izvorni ili odredišni portovi trebaju birati nasumično umjesto uzastopno unutar raspona ili redoslijeda kojim ih sistem dodjeljuje.
-S Omogućava opciju RFC 2385 TCP MD5 potpisa.
-s izvor Određuje interfejs koji se koristi za slanje paketa. Za utičnice datagrama na UNIX domeni, specificira lokalnu privremenu datoteku utičnice koju treba kreirati i koristiti kako bi se datagrami mogli primati. Greška je koristiti ovu opciju u kombinaciji sa -l opcija.
-T tokeyword Promijenite vrijednost IPv4 TOS-a. tokeyword može biti jedan od kritičan, inetcontrol, jeftino, lowdelay, netcontrol, propusnost, pouzdanost, ili jedna od DiffServ kodnih tačaka: ef, af11 ... af43, cs0 ... cs7; ili broj u heksadecimalnom ili decimalnom obliku.
-t Uzroci nc da pošalje RFC 854 DON "T i WON" T odgovore na RFC 854 DO i WILL zahtjeve. Ovo omogućava korištenje nc za skriptiranje telnet sesija.
-U Određuje da se koriste utičnice UNIX domene.
-u Koristite UDP umjesto zadane opcije TCP. Za utičnice UNIX domene, koristite datagram utičnicu umjesto stream socketa. Ako se koristi utičnica UNIX domene, kreira se privremena utičnica za primanje u /tmp osim ako -s zastava je data.
-V rtable Postavite tabelu rutiranja koja će se koristiti. Zadana vrijednost je 0.
-v Imati nc dati detaljniji izlaz.
-w vrijeme je isteklo Veze koje se ne mogu uspostaviti ili su neaktivne nakon isteka sekundi. The -w zastava nema uticaja na -l opcija, tj. nc će zauvijek slušati vezu, sa ili bez -w zastava. Podrazumevano je da nema vremenskog ograničenja.
-X proxy_protocol Zahteva da nc koristi navedeni protokol kada razgovara sa proxy serverom. Podržani protokoli su " 4 "(ČARAPE v.4)" 5 "(ČARAPE v.5) i" povezati"(HTTPS proxy). Ako protokol nije naveden, koristi se SOCKS verzija 5.
-x proxy_address [: port] Zahteva to nc treba da se poveže na odredište koristeći proxy na proxy_address i luka... Ako luka nije naveden, koristi se dobro poznati port za proxy protokol (1080 za SOCKS, 3128 za HTTPS).
-Z DCCP način rada.
-z Određuje da nc treba skenirati samo demone za slušanje, bez slanja podataka. Greška je koristiti ovu opciju u kombinaciji sa -l opcija.

odredište može biti numerička IP adresa ili simboličko ime hosta (osim ako je -n data je opcija). Općenito, odredište se mora navesti, osim ako nije -l data je opcija (u tom slučaju se koristi lokalni host). Za utičnice UNIX domene, odredište je potrebno i to je putanja utičnice za povezivanje (ili slušanje ako -l data je opcija).

port može biti jedan cijeli broj ili raspon portova. Rasponi su u formi nn-mm... Općenito, odredišni port mora biti specificiran, osim ako nije -U data je opcija.

Klijent / Server model

Sasvim je jednostavno izgraditi vrlo osnovni klijent/server model koristeći nc... Na jednoj konzoli, počni nc slušanje na određenom portu za vezu. Na primjer:

Nc -l 1234

nc sada sluša na portu 1234 za vezu. Na drugoj konzoli (ili drugoj mašini), povežite se sa mašinom i portom na kome se sluša:

Nc 127.0.0.1 1234

Sada bi trebalo da postoji veza između portova. Sve što se unese na drugoj konzoli bit će povezano s prvom i obrnuto. Nakon uspostavljanja veze, nc nije baš briga koja se strana koristi kao 'server', a koja se koristi kao 'klijent'. Veza se može prekinuti korištenjem EOF-a (‘ ^ D’).

Nema -c ili -e opcija u modernom netcatu, ali i dalje možete izvršiti naredbu nakon uspostavljanja veze preusmjeravanjem deskriptora datoteka. Ovdje budite oprezni jer je otvaranje porta i puštanje bilo koga ko je povezan da izvrši proizvoljnu naredbu na vašoj web lokaciji OPASNO. Ako to zaista trebate učiniti, evo primjera:

Na 'serverskoj' strani:

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 strani 'klijenta':

Nc host.example.com 1234

(ljuska prompt sa host.example.com)

Započnite korištenjem nc za slušanje na određenom portu, sa izlazom snimljenim u datoteku:

Nc -l 1234> ime datoteke.out

Koristeći drugu mašinu, povežite se sa slušaocem nc proces, dodajući mu fajl koji treba prenijeti:

Nc host.example.com 1234< filename.in

Nakon što se datoteka prenese, veza će se automatski zatvoriti.

Razgovor sa serverima

Ponekad je korisno razgovarati sa serverima "ručno", a ne preko korisničkog interfejsa. Može pomoći u rješavanju problema, kada bi moglo biti potrebno provjeriti koje podatke server šalje kao odgovor na naredbe koje izdaje klijent. Na primjer, da preuzmete početnu stranicu web stranice:

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

Imajte na umu da ovo također prikazuje zaglavlja koja šalje web server. Mogu se filtrirati pomoću alata kao što je sed, ako je potrebno.

Komplikovaniji primjeri se mogu napraviti kada korisnik zna format zahtjeva koji server zahtijeva. Kao drugi primjer, e-mail se može poslati na SMTP server koristeći:

Nc [-C] lokalni host 25<< EOF HELO host.example.com MAIL FROM:< >RCPT ZA:< >PODACI Tijelo e-pošte. ... QUIT EOF

Skeniranje portova

Može biti korisno znati koji su portovi otvoreni i koji pokreću usluge na ciljnoj mašini. The -z zastava se može koristiti da se kaže nc prijaviti otvorene portove, umjesto da pokrene vezu. Obično je korisno uključiti detaljan izlaz na stderr korištenjem ove opcije u kombinaciji sa -v opcija.

Nc -zv host.example.com 20-30 Povezivanje sa portom host.example.com 22 uspjelo! Povezivanje na host.example.com 25 port je uspjelo!

Opseg portova je specificiran da ograniči pretragu na portove 20 - 30 , i skenira se rastućim redoslijedom.

Također možete odrediti listu portova za skeniranje, na primjer:

Nc -zv host.example.com 80 20 22 nc: povezivanje s host.example.com 80 (tcp) nije uspjelo: veza odbijena nc: povezivanje s host.example.com 20 (tcp) nije uspjela: veza odbijena Veza s host.example .com port je uspio!

Portovi se skeniraju prema redoslijedu koji ste dali.

Alternativno, moglo bi biti korisno znati koji serverski softver je pokrenut i koje verzije. Ove informacije se često nalaze u pozdravnim banerima. Da biste ih preuzeli, potrebno je prvo uspostaviti vezu, a zatim prekinuti vezu kada je baner preuzet. Ovo se može postići specificiranjem malog vremenskog ograničenja sa -w zastavicu, ili možda izdavanjem naredbe "QUIT" serveru:

Echo "QUIT" | nc host.example.com 20-30 SSH-1.99-OpenSSH_3.6.1p2 Nepodudaranje protokola. 220 host.example.com IMS SMTP prijemnik Verzija 0.84 Spreman

Primjeri

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

Otvara TCP vezu sa portom 42 of host.example.com, koristeći port 31337 kao izvorni port, sa timeoutom od 5 sekundi.

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

Isto kao u gornjem primjeru, ali ovaj put omogućava proxy autentifikaciju s korisničkim imenom " ruser"ako to proxy zahtijeva.

Povezane komande

ifconfig- Pregledajte ili modificirajte konfiguraciju mrežnih sučelja.

Podijelite ovo