Utilizarea Netcat pentru a crea și testa conexiuni TCP și UDP pe VPS. Norton Commander Netcat comandă conexiunea

Afișarea unei pagini HTML de test la un client cu un browser obișnuit cu o singură comandă (port 8080):
(echo -e „HTTP/1.1 200 OK\nContent-Type: text/html\n\n Hello World”;) | nc -vv -l -p 8080
Transferarea unui fișier către un client cu un browser obișnuit cu o singură comandă (port 8080):
(echo -e „HTTP/1.1 200\nDispoziție-conținut: atașament; nume-fișier=nume-țintă-care-client-va-vedea\nTip-conținut: aplicație/flux-octet\nConexiune: închidere\n"; nume fișier pisică- pe disc) | nc -vv -l -p 8080

Cum se folosește nc?

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

Să începem cu câteva exemple simpleși mai departe le vom folosi ca bază.
Dacă vă amintiți, am spus că netcat este un cuțit elvețian.

Ce ar fi acest cuțit dacă nu ar putea fi folosit ca un cuțit obișnuit? Acesta este motivul pentru care netcat poate fi folosit în loc de telnet obișnuit:

$nc www.google.com 80
De fapt, este mai convenabil decât telnetul obișnuit, deoarece puteți încheia conexiunea în orice moment apăsând Ctrl+C și tratează datele binare ca fiind normale (fără secvențe de escape, nimic).
Puteți adăuga opțiunea -v pentru a afișa rezultatele acțiunilor mai detaliat și opțiunea (-vv) pentru a obține statistici despre câți octeți au fost transferați în timpul sesiunii curente de conexiune.

Netcat poate fi folosit ca server. Dacă îl rulați ca mai jos, va asculta pe portul 12345 (pe toate interfețele):

$ nc -l -p 12345

Acum, dacă vă conectați la portul 12345 al acestei gazde, tot ceea ce introduceți va fi trimis la distanță, ceea ce ne spune că netcat poate fi folosit ca server de chat. Rulați pe unul dintre computere:
# Pe computerul A cu IP 10.10.10.10

$ nc -l -p 12345

Și conectați-vă la el de la altul:
# Pe computerul B

$nc 10.10.10.10 12345
Acum ambele părți pot vorbi! Acest tip de conversație în care ambele părți pot vorbi între ele face posibila utilizare
nc pentru I/O de rețea! De exemplu, puteți trimite un director întreg de la un computer la altul rulând o conductă tar prin nc pe primul computer și redirecționând rezultatul către un alt proces tar pe al doilea.


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


# Pe computerul B
$nc 192.168.1.10 6666 | tar -xf -

Nu uitați să combinați pipeline-ul cu Pipe Viewer, care a fost descris în articolul anterior, pentru a vedea statistici despre cât de repede are loc transferul!
Un singur fișier poate fi trimis mai simplu:

# Pe computerul A cu IP 192.168.1.10
$ fisier pisica | nc -l -p 6666


# Pe computerul B
$nc 192.168.1.10 6666 > fisier

Puteți chiar să copiați și să restaurați întregul disc, folosind nc:

# Pe computerul A cu IP 192.168.1.10
$ cat /dev/hdb | nc -l -p 6666


# Pe computerul B
$ nc 192.168.1.10 6666 > /dev/hdb

Notă: opțiunea „-l” nu poate fi utilizată împreună cu „-p” pe computerele Mac! Soluția este să înlocuiți pur și simplu „-l -p 6666? la „-l 6666?. Ca aici:

# acum nc ascultă pe portul 6666 pentru Calculatoare Mac
$nc -l 6666

O utilizare comună a netcat este scanarea portului. Netcat nu cel mai bun instrument pentru o astfel de muncă, dar îi face față (cel mai bun, desigur, este nmap):

$ nc -v -n -z -w 1 192.168.1.2 1-1000
(NECUNOSCUT) 445 (microsoft-ds) deschis
(NECUNOSCUT) 139 (netbios-ssn) deschis
(NECUNOSCUT) 111 (sunrpc) deschis
(NECUNOSCUT) 80 (www) deschis
(NECUNOSCUT) 25 (smtp) : Conexiune a expirat
(NECUNOSCUT) 22 (ssh) deschis

Opțiunea -n previne căutările DNS, -z nu așteaptă un răspuns de la server și -w 1? setează timpul de expirare a conexiunii la 1 secundă.
O altă utilizare non-trivială a netcat este ca proxy. Atât portul, cât și gazda pot fi redirecționate. Uită-te la acest exemplu:

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

Această comandă rulează nc pe portul 1234 și redirecționează toate conexiunile către google.com:80. Dacă vă conectați acum la acest computer pe portul 12345 și faceți o solicitare, veți constata că nu primiți nicio dată ca răspuns. Acest lucru este corect deoarece nu am stabilit un canal bidirecțional. Dacă adăugați un al doilea canal, veți primi datele pe un alt port:

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

După ce trimiteți o solicitare la portul 12345, primiți datele de răspuns pe portul 12346.
Probabil cea mai puternică caracteristică a netcat este de a rula orice proces ca server:

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

Opțiunea -e face ca intrarea și ieșirea să fie redirecționate prin soclul de rețea. Acum, dacă vă conectați la gazdă pe portul 12345, puteți utiliza bash:
$nc localhost 12345
ls-las
total 4288
4 drwxr-xr-x 15 utilizatori pkrumins 4096 2009-02-17 07:47 .
4 drwxr-xr-x 4 utilizatori pkrumins 4096 2009-01-18 21:22 ..
8 -rw——- 1 utilizatori pkrumins 8192 2009-02-16 19:30 .bash_history
4 -rw-r—r— 1 utilizatori pkrumins 220 2009-01-18 21:04 .bash_logout

(http://execbit.ru/2011/05/23/netcat/)
1 Transferați fișiere (executăm prima comandă pe mașina care primește, a doua pe mașina expeditoare:

$ nc -l 31334 > nume de fișier $ nc 172.16.69.143 31334< filename

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

3 Utilizați în loc de telnet (primul este serverul telnet, al doilea este clientul):

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

4 Scanați către porturi deschise:

$ nc -z execbit.ru 1-1024

5 servicii de amprentă digitală bazate pe bannere:

$ echo „ÎȘIȚI” | nc execbit.ru 1-1024

6 Organizați un shell invers (primul este clientul, al doilea este serverul, dar shell-ul se va deschide de la server la client).

Departamentul Proiectare Drumuri

Lucrare de laborator nr 1

la cursul "Informatica"

Completat de studentul grupului nr. 114359 Raikhman Sergey Yurievich

Verificat

Lucrare de laborator nr 1

Subiect: Utilitarul Norton Commander

Ţintă:Învățați să vă controlați computerul folosind Norton Commander

Norton Commander vă permite să efectuați următoarele funcții: 1) efectuați funcții MS-DOS, 2) afișați conținutul directoarelor pe discuri, 3) afișați un arbore de directoare pe un disc, 4) vizualizați fișiere, 5) editați fișiere text, 6 ) copiați, mutați, redenumiți, ștergeți fișiere, 7) modificați atributele fișierului.

Lansa Comandantul Norton

Pentru a lansa Norton Commander, tastați „nc” în linia de comandă și apăsați „Enter”. Ieșiți din Norton Commander - F10 sau ALT+X

Vedere a ecranului și a panourilor

După lansarea Norton Commander, pe ecran apar două ferestre dreptunghiulare (panouri).


Sub aceste panouri se află promptul MS-DOS și o linie de informații cu semnificațiile tastelor funcționale.

AJUTOR F1 – informaţii scurte despre atribuirea tastelor la operarea NC.

F2 MENU – meniu utilizator

F3 VIEW – vizualizare fișier text, document

F4 EDIT – editarea unui fișier text

F5 COPY – copierea fișierelor

F6 RENMOV – redirecționează, redenumește fișierul

F7 MKDIR – crearea unui director (subdirectoare)

F8 DELETE – ștergerea fișierelor sau subdirectoarelor

F9 PULL DN – in linia de sus Ecranul afișează meniuri care conțin moduri de operare NC.

F10 IEȘI – ieșire NC

Meniu la apăsarea tastei F9

Stânga și dreapta – setează modurile de afișare a informațiilor pe panourile din stânga și din dreapta

Fișiere – produse diverse operatii cu dosare

Comenzi – execută diverse comenzi NC, setează configurația NC și modurile de operare.

Unul dintre elementele de meniu este evidențiat pentru a selecta un alt element, utilizați săgețile<¬>, <­>, <®>, <¯>și apăsați tasta „Enter”.

Selectarea fișierelor

Pentru a copia, șterge sau muta fișiere, trebuie să le selectați apăsând tasta Ins. Pentru a anula selecția, apăsați din nou pe „Ins”. Informațiile despre numărul de fișiere selectate apar în partea de jos a panoului.

Crearea unui director

Pentru a crea un director, apăsați tasta „F7”, introduceți numele acestuia și apăsați „Enter”.

Pentru a intra în director, apăsați tasta „Enter” de pe numele acestuia. Când apăsați tastele „ALT+F10”, pe ecran este afișat un arbore de directoare. Folosind tastele cursor vă puteți deplasa rapid la subdirectorul dorit.

Chei de bază NC

TAB – comutați la alt panou

ALT+F1 – ieșire în panoul din stânga al cuprinsului altui disc.

ALT+F2 – ieșire în panoul din dreapta al cuprinsului altui disc

CTRL+F1 – eliminați panoul din stânga de pe ecran

CTRL+F2 – eliminați panoul din dreapta de pe ecran

CTRL+O – eliminați ambele panouri

CTRL+U – schimba panouri

Pentru a porni computerul, trebuie să tastați „LOGIN” în linia promptă și să introduceți parola (335_2).

Teme de laborator

Folosind comenzile, creați o structură de subdirectoare pe disc:



Aceasta este a doua postare dintr-o serie de articole despre utilitare Unix pe care ar trebui să le cunoașteți. În acest articol vă prezint utilitarul netcat sau pur și simplu nc.

Utilitarul Netcat este adesea numit un fel de „cuțit elvețian”, în sensul bun al cuvântului. Funcționalitatea netcat este utilă în aceeași măsură în care este utilă versatilitatea și manevrabilitatea unui cuțit elvețian de buzunar. Unele dintre capabilitățile sale includ scanarea portului, transferul de fișiere, ascultarea portului și poate fi folosit ca ușă în spate.

În 2006, netcat a primit locul 4 în sondajul „100 de utilități”. securitatea rețelei„, deci este cu siguranță un instrument de știut.

Cum se folosește nc?

Dacă vă amintiți, am spus că netcat este un cuțit elvețian. Ce ar fi acest cuțit dacă nu ar putea fi folosit ca un cuțit obișnuit? Acesta este motivul pentru care netcat poate fi folosit în loc de telnet obișnuit:

$nc www.google.com 80

De fapt, este mai convenabil decât telnetul obișnuit, deoarece puteți încheia conexiunea în orice moment apăsând Ctrl+C și tratează datele binare ca fiind normale (fără secvențe de escape, nimic).

Puteți adăuga opțiunea -v pentru a afișa rezultatele acțiunilor mai detaliat și opțiunea (-vv) pentru a obține statistici despre câți octeți au fost transferați în timpul sesiunii curente de conexiune.

Netcat poate fi folosit ca server. Dacă îl rulați ca mai jos, va asculta pe portul 12345 (pe toate interfețele):

$ nc -l -p 12345

Acum, dacă vă conectați la portul 12345 al acestei gazde, tot ceea ce introduceți va fi trimis la distanță, ceea ce ne spune că netcat poate fi folosit ca server de chat. Rulați pe unul dintre computere:

# Pe computerul A cu IP 10.10.10.10 $ nc -l -p 12345

$ nc -l -p 12345

# Pe computer B $ nc 10.10.10.10 12345

$nc 10.10.10.10 12345

Acest mod de a vorbi, în care ambele părți pot vorbi între ele, face posibilă utilizarea nc pentru operațiuni I/O prin rețea! De exemplu, puteți trimite un director întreg de la un computer la altul rulând o conductă tar prin nc pe primul computer și redirecționând rezultatul către un alt proces tar pe al doilea.

Să presupunem că doriți să trimiteți fișiere din directorul /data al computerului A cu IP 192.168.1.10 către computerul B (cu orice IP). Este simplu:

# Pe computerul A cu IP 192.168.1.10 $ tar -cf - /data | nc -l -p 6666 # Pe computer B $ nc 192.168.1.10 6666 | tar -xf -

Nu uitați să combinați pipeline-ul cu Pipe Viewer, care a fost descris în articolul anterior, pentru a vedea statistici despre cât de repede are loc transferul!

Un singur fișier poate fi trimis mai simplu:

# Pe computerul A cu IP 192.168.1.10 $ fisier cat | nc -l -p 6666 # Pe computer B $ nc 192.168.1.10 6666 > fișier

Puteți chiar să copiați și să restaurați un întreg disc folosind nc:

# Pe computerul A cu IP 192.168.1.10 $ cat /dev/hdb | nc -l -p 6666 # Pe computer B $ nc 192.168.1.10 6666 > /dev/hdb

Notă: opțiunea „-l” nu poate fi utilizată împreună cu „-p” pe computerele Mac! Soluția este să înlocuiți pur și simplu „-l -p 6666? la „-l 6666?. Ca aici:

# acum nc ascultă pe portul 6666 pentru computerele Mac $ nc -l 6666

O utilizare comună a netcat este scanarea portului. Netcat nu este cel mai bun instrument pentru acest tip de muncă, dar își face treaba (cel mai bun, desigur, este nmap):

$ nc -v -n -z -w 1 192.168.1.2 1-1000 (NECUNOSCUT) 445 (microsoft-ds) deschis (NECUNOSCUT) 139 (netbios-ssn) deschis (NECUNOSCUT) 111 (sunrpc) deschis (NECUNOSCUT) www) deschis (NECUNOSCUT) 25 (smtp) : Conexiune a expirat (NECUNOSCUT) 22 (ssh) deschis

Opțiunea -n previne căutările DNS, -z nu așteaptă un răspuns de la server și -w 1? setează timpul de expirare a conexiunii la 1 secundă.

O altă utilizare non-trivială a netcat este ca proxy. Atât portul, cât și gazda pot fi redirecționate. Uită-te la acest exemplu:

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

Această comandă rulează nc pe portul 1234 și redirecționează toate conexiunile către google.com:80. Dacă vă conectați acum la acest computer pe portul 12345 și faceți o solicitare, veți constata că nu primiți nicio dată ca răspuns. Acest lucru este corect deoarece nu am stabilit un canal bidirecțional. Dacă adăugați un al doilea canal, veți primi datele pe un alt port:

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

După ce trimiteți o solicitare la portul 12345, primiți datele de răspuns pe portul 12346.

Probabil cea mai puternică caracteristică a netcat este de a rula orice proces ca server:

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

Opțiunea -e face ca intrarea și ieșirea să fie redirecționate prin soclul de rețea. Acum, dacă vă conectați la gazdă pe portul 12345, puteți utiliza bash:

$ nc localhost 12345 ls -las total 4288 4 drwxr-xr-x 15 utilizatori pkrumins 4096 2009-02-17 07:47 . 4 drwxr-xr-x 4 utilizatori pkrumins 4096 2009-01-18 21:22 .. 8 -rw------- 1 utilizatori pkrumins 8192 2009-02-16 19:30 .bash_history-r-4 -rw -r-- 1 utilizatori pkrumins 220 2009-01-18 21:04 .bash_logout ...

Consecințele sunt că nc este un instrument de hacker popular și poate fi folosit pentru a crea o ușă în spate foarte ușor. Pe server Linux puteți rula /bin/bash și pe Windows cmd.exe și aveți control deplin în mâinile dumneavoastră.

Atât am vrut să spun. Cunoașteți alte trucuri utile netcat care nu sunt acoperite aici?

Cum se instalează nc?

Dacă aveți Debian sau un sistem bazat pe Debian, cum ar fi Ubuntu, faceți următoarele:

$ sudo aptitude install netcat

Dacă aveți Fedora sau un sistem bazat pe Fedora, cum ar fi CentOS, faceți:

$ sudo yum install netcat

Dacă aveți Slackware, FreeBSD, NetBSD, Solaris sau Mac, descărcați sursele nc și faceți:

$ tar -zxf nc-version.tar.gz $ cd nc-version $ ./configure && sudo make install

O altă modalitate de a face acest lucru pe un Mac dacă aveți MacPorts:

$ sudo port install netcat

Pe Slackware îl puteți instala ca pachet din directorul pachetelor:

$ sudo installpkg nc-1.10-i386-1.tgz

Dacă aveți Windows, descărcați portul Windoze de la securityfocus.

Un manual pentru utilitate poate fi găsit în man nc.

Bucură-te de timpul tău cu nc, până data viitoare!

În acest articol mă voi uita la popularul utilitar de rețea netcat și la trucuri utile atunci când lucrez cu el.


Netcat este un utilitar Unix care vă permite să stabiliți conexiuni TCP și UDP, să primiți date de acolo și să le transmiteți. În ciuda utilității și simplității sale, mulți nu știu cum să-l folosească și îl ocolesc nemeritat.


Folosind acest utilitar, puteți efectua câțiva pași atunci când efectuați testarea de penetrare. Acest lucru poate fi util atunci când mașina atacată nu are pachete instalate (sau atrage atenția), există restricții (de exemplu, dispozitive IoT/Embedded), etc.


Ce poți face cu netcat:

  • porturi de scanare;
  • porturi direct;
  • Colectați bannere de serviciu;
  • Ascultați portul (legați pentru conexiune inversă);
  • Descărcați și încărcați fișiere;
  • Ieșire conținut HTTP brut;
  • Creați un mini-chat.

În general, cu ajutorul netcat puteți înlocui unele dintre utilitățile Unix, astfel încât acest instrument poate fi considerat un fel de combină pentru efectuarea anumitor sarcini.

Exemple practice

În multe cazuri, dacă este necesar să se verifice o anumită gazdă, aceștia folosesc telnet sau propriile servicii de servicii pentru a identifica gazda sau bannerul. Cum ne poate ajuta netcat:

Se verifică portul TCP deschis 12345

$ nc -vn 192.168.1.100 12345
nc: conectarea la 192.168.1.100 12345 (tcp) a eșuat: conexiune refuzată

$ nc -v 192.168.1.100 22
Conexiunea la portul 192.168.1.100 22 a reușit!
SSH-2.0-OpenSSH

Scanarea porturilor TCP cu netcat:

$ nc -vnz 192.168.1.100 20-24

Cu o astfel de scanare nu va exista nicio conexiune la port, ci doar o ieșire a unei conexiuni reușite:


nc: connectx la 192.168.1.100 portul 20 (tcp) a eșuat: conexiune refuzată
nc: connectx la 192.168.1.100 portul 21 (tcp) a eșuat: conexiune refuzată
a găsit 0 asociații
găsit 1 conexiuni:
1: steaguri=82
outif en0
src 192.168.1.100 portul 50168
dst 192.168.1.100 portul 22
informațiile de clasare nu sunt disponibile
Informații auxiliare TCP sunt disponibile
Conexiunea la portul 22 192.168.1.100 a reușit!
nc: connectx la 192.168.1.100 portul 23 (tcp) a eșuat: conexiune refuzată
nc: connectx la 192.168.1.100 portul 24 (tcp) a eșuat: conexiune refuzată

Scanare porturi UDP.

Pentru a scana porturile UDP cu nmap, aveți nevoie de privilegii de root. Dacă nu sunt acolo, în acest caz ne poate ajuta și utilitarul netcat:


$ nc -vnzu 192.168.1.100 5550-5560
Conexiunea la portul 5555 192.168.1.100 a reușit!

Trimiterea unui pachet UDP

$ echo -n „foo” | nc -u -w1 192.168.1.100 161

Acest lucru poate fi util atunci când interacționați cu dispozitivele din rețea.

Primirea datelor pe un port UDP și ieșirea datelor primite

$ nc -u localhost 7777

După primul mesaj, ieșirea se va opri. Dacă trebuie să acceptați mai multe mesaje, trebuie să utilizați cât timp este adevărat:


$ în timp ce adevărat; do nc -u localhost 7777; făcut

Transfer de fișiere. Folosind netcat, puteți să primiți fișiere și să le transferați pe o gazdă la distanță:


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

Netcact ca un simplu server web.

Netcat poate acționa ca un simplu server web pentru afișaj html pagini.


$ în timp ce adevărat; face nc -lp 8888< index.html; done

Folosind un browser la: http://netcat host:8888/index.html. Pentru a utiliza portul standard al serverului web numărul 80, va trebui să rulați nc cu privilegii root:


$ în timp ce adevărat; do sudo nc -lp 80< test.html; done

Chat între noduri

Pe primul nod (192.168.1.100):


$nc -lp 9000

Pe al doilea nod:


$nc 192.168.1.100 9000

După executarea comenzilor, toate caracterele introduse în fereastra terminalului pe orice nod vor apărea în fereastra terminalului celuilalt nod.

Înveliș invers

Folosind netcat puteți organiza un reverse shell convenabil:


nc -e /bin/bash -lp 4444

Acum vă puteți conecta de la gazda la distanță:


$nc 192.168.1.100 4444

Nu trebuie să renunți dacă nu ai anumite instrumente, adesea destul de greoaie, uneori problema poate fi rezolvată cu mijloace improvizate.

|

sistem Linux cunoscut pentru faptul că majoritatea distribuțiilor au un număr mare de utilități utile linie de comandă livrat imediat cu sistemul de operare. Experimentat administratorii de sistem poate efectua majoritatea sarcinilor folosind instrumente încorporate fără a fi nevoie să instalați software suplimentar.

Acest ghid este dedicat funcționării utilitarului . Acest „Cuțit elvețian” de instrumente de rețea poate fi util pentru monitorizarea, testarea și transmiterea datelor prin conexiunile de rețea.

Acest ghid folosește Ubuntu 12.04, dar, în general, utilitarul netcat este disponibil pe aproape orice distribuție modernă. Ubuntu vine cu o versiune BSD a utilitarului, care va fi folosită în acest articol. Alte versiuni pot funcționa diferit sau pot oferi opțiuni diferite.

Sintaxă generală

În mod implicit, netcat funcționează prin inițierea unei conexiuni TCP la gazda de la distanță.

Sintaxa de baza:

netcat [opțiuni] port gazdă

Această comandă inițiază o conexiune TCP la gazda specificată pe portul specificat. Practic, funcționează similar cu vechea comandă Linux, telnet. Vă rugăm să rețineți că conexiunea dvs. va fi necriptată.

Pentru a trimite un pachet UDP în loc să stabiliți o conexiune TCP, utilizați opțiunea -u:

netcat -u port gazdă

Pentru a specifica un interval de porturi, specificați primul și ultimul port al intervalului, separate printr-o liniuță:

gazdă netcat primul_port-ultimul_port

De obicei, această comandă este utilizată cu steaguri suplimentare.

Pe majoritatea sistemelor puteți folosi netcat sau nc. Sunt interschimbabile deoarece sunt aliasuri pentru aceeași comandă.

Utilizarepentru scanarea portului

Cel mai adesea, netcat este folosit ca scanner de porturi.

Deși Netcat nu este probabil cel mai inteligent instrument pentru această sarcină (nmap este mai potrivit pentru aceasta în majoritatea cazurilor), poate efectua o scanare simplă a portului pentru a identifica rapid porturile deschise.

Pentru a face acest lucru, specificați o gamă de porturi de scanat (după cum se arată mai sus) și, de asemenea, utilizați opțiunea -z, care scanează în loc să stabilească conexiuni.

De exemplu, pentru a scana toate porturile până la portul 1000, rulați:

netcat -z -v domain.com 1-1000

După cum puteți vedea, pe lângă opțiunea -z, această comandă folosește opțiunea -v, datorită căreia netcat afișează informații mai detaliate.

Rezultatul arată astfel:

nc: conectarea la domain.com portul 1 (tcp) a eșuat: conexiune refuzată
nc: conectarea la domain.com portul 2 (tcp) a eșuat: conexiune refuzată
nc: conectarea la domain.com portul 3 (tcp) a eșuat: conexiune refuzată
nc: conectarea la domain.com portul 4 (tcp) a eșuat: conexiune refuzată
nc: conectarea la domain.com portul 5 (tcp) a eșuat: conexiune refuzată
nc: conectarea la domain.com portul 6 (tcp) a eșuat: conexiune refuzată
nc: conectarea la domain.com portul 7 (tcp) a eșuat: conexiune refuzată
. . .
Conexiunea la portul domain.com 22 a reușit!
. . .

După cum puteți vedea, această comandă produce un rezultat destul de detaliat și vă spune, de asemenea, dacă fiecare scanare a portului a avut succes sau nu.

Acest lucru este convenabil atunci când utilizați un nume de domeniu.

Cu toate acestea, prin specificarea adreselor IP necesare, puteți accelera semnificativ scanarea. Puteți utiliza apoi steag-ul -n pentru a indica că adresa IP nu trebuie rezolvată folosind DNS:

netcat -z -n -v 111.111.111.111 1-1000

Mesajele de returnare sunt trimise la eroare standard. Mesajele de eroare standard pot fi trimise la ieșirea standard pentru a filtra rezultatele.

Pentru a redirecționa eroare standard Sintaxa bash este folosită la ieșirea standard 2> rezultatele rezultate sunt filtrate folosind grep:

netcat -z -n -v 111.111.111.111 1-1000 2>&1 | grep a reușit
Conexiunea la portul 111.111.111.111 22 a reușit!

Deci acum puteți vedea că singurul portul deschis pe o mașină la distanță în intervalul 1-1000 - acesta este portul 22, port standard SSH.

Comunicarefolosind netcat

Comanda netcat nu se limitează la trimiterea de pachete TCP și UDP. De asemenea, poate asculta pe un port conexiuni și pachete, făcând posibilă conectarea a două instanțe netcat într-o relație client-server.

Ce computer este serverul și care este clientul este semnificativ doar în timpul configurarea inițială. Odată stabilită conexiunea, comunicarea este aceeași în ambele sensuri.

Pe o singură mașină trebuie să spuneți netcat să asculte pe un anumit port pentru conexiuni. Acest lucru se face folosind parametrul -l, urmat de numărul portului:

Prin rularea acestei comenzi, netcat ascultă conexiunile TCP pe portul 4444. Acum un utilizator normal (nu root) nu va putea deschide niciun port înainte de 1000 (pentru securitatea serverului).

Pe al doilea server, trebuie să vă conectați la prima mașină prin portul specificat. Acest lucru se face în același mod ca cel arătat mai devreme:

netcat domain.com 4444

Odată ce conexiunea este stabilită, poate părea că nimic nu s-a întâmplat. Dar acum puteți trimite mesaje de ambele părți ale conexiunii și vor fi vizibile pe ambele servere.

Introduceți mesajul și apăsați ENTER. Mesajul va apărea atât pe serverul local, cât și pe serverul de la distanță. Acest lucru funcționează și invers.

După ce ați terminat de trimis mesaje, apăsați CTRL-D pentru a închide conexiunea TCP.

Partajarea fișierelor folosind netcat

După ce v-ați familiarizat cu funcțiile de bază ale utilitarului și ați completat exemplele anterioare, puteți trece la sarcini mai complexe.

După cum sa menționat deja, utilitarul netcat creează conexiuni TCP care pot fi folosite pentru a transfera aproape orice tip de informații, fără a se limita la mesajele tastate de utilizator. Aceste cunoștințe pot fi folosite pentru a transforma netcat într-un program de transfer de fișiere.

Din nou, trebuie să selectați un aparat pentru a asculta conexiunile. Cu toate acestea, în loc să imprime informațiile pe ecran (ca în exemplul anterior), netcat va plasa toate informațiile direct într-un fișier:

netcat -l 4444 > fişier_recepţionat

Pe al doilea computer trebuie să creați un fișier text simplu:

echo „Bună ziua, acesta este un fișier” > original_file

Acum puteți utiliza acest fișier ca intrare pentru a crea o conexiune la computerul care ascultă. Fișierul va fi transferat ca și cum ar fi fost tastat interactiv:

netcat domain.com 4444< original_file

După cum puteți vedea, computerul care aștepta conexiunea acum are fișier nou cu numele „fișier_primit” care conține datele introduse pe alt computer:

cat a primit_fisier
Bună, acesta este un fișier

După cum puteți vedea, astfel de conexiuni pot fi folosite cu ușurință pentru a transmite orice fel de informații.

De exemplu, puteți transfera conținutul unui întreg director; Pentru a face acest lucru, creați un tarball fără nume, transferați-l în sistemul de la distanță și despachetați-l în directorul de la distanță.

La capătul de recepție, puteți folosi următoarea comandă pentru a avertiza că fișierul trebuie să fie primit și despachetat:

netcat -l 4444 | tar xzvf -

Linia de la sfârșitul comenzii înseamnă că tarball-ul va funcționa pe intrarea standard, care este trimisă în prezent prin rețea dacă se stabilește o conexiune.

Pe partea care conține directorul pe care doriți să-l transferați, pachetați acel director într-o arhivă și apoi trimiteți-l computer la distanță folosind netcat:

tar -czf - * | netcat domain.com 4444

De data aceasta, liniuța din comanda tar înseamnă că conținutul directorului curent (așa cum este indicat de simbolul *) ar trebui să fie arhivat și transferat, iar apoi rezultatul scris în ieșirea standard.

Acesta este apoi scris în conexiunea TCP, transmis pe cealaltă parte a conexiunii și despachetat în directorul curent al computerului la distanță.

Acesta este doar un exemplu de transfer de date mai complexe de la un computer la altul. De asemenea, folosită în mod obișnuit este comanda dd, care creează o imagine de disc pe o parte și o transferă pe computerul de la distanță. Cu toate acestea, o astfel de abordare nu este tratată în acest ghid.

ca un simplu server web

Utilitarul netcat a fost deja folosit pentru a transfera mesaje și fișiere. Aceeași abordare vă va ajuta să utilizați netcat ca un simplu server web. Acest lucru poate fi util pentru testarea paginilor terminate.

Mai întâi trebuie să creați un fișier HTML pe un server:

ÎN acest dosar Puteți plasa următorul cod simplu:



Pagina de testare


Antet de nivel 1


Subtitlu


Text normal aici




Salvați și închideți fișierul.

Acest fișier nu poate fi servit pe portul implicit al serverului web (80) fără privilegii de root. Pentru că, ca utilizator normal, setați portul 8888.

Pentru a testa o pagină și a vedea cum se redă, tastați ceva de genul:

netcat -l 8888< index.html

Conținutul poate fi acum vizualizat într-un browser vizitând:

http://server_IP:8888

Această comandă va imprima pagina și apoi conexiunea netcat se va închide. Când încercați să reîmprospătați pagina, aceasta va dispărea.

Netcat poate difuza pagina pe termen nelimitat; Pentru a face acest lucru, trebuie să faceți ultima comandă ciclică folosind linia:

în timp ce adevărat; do nc -l 8888< index.html; done

Apoi pagina va continua să primească conexiuni după ce prima conexiune a fost încheiată.

Pentru a opri bucla, tastați CTRL-C.

Acest server vă va permite să vedeți cum este redată pagina în browser, dar nu oferă o funcționalitate mai largă. Nu utilizați niciodată un astfel de server web pentru a servi site-uri reale: nu este sigur și lucruri simple, cum ar fi link-urile, nu funcționează întotdeauna corect.

Rezultate

Acest tutorial prezintă caracteristicile de bază și utilizarea netcat. Deoarece acest instrument este versatil, poate fi folosit pentru a diagnostica probleme și a testa funcționalitatea de bază a conexiunilor TCP/UDP.

În plus, netcat vă permite să comunicați și să faceți schimb de informații între diferite computere, ceea ce este foarte important pentru interacțiunea rapidă a utilizatorului. Prin simplificarea creării unei conexiuni, utilitarul netcat încearcă să facă interacțiunile de rețea dintre computere mai convenabile, mai rapide și mai ușor de înțeles.

Etichete: ,