Android

Comanda Netcat (nc) cu exemple

Use Netcat to Spawn Reverse Shells & Connect to Other Computers [Tutorial]

Use Netcat to Spawn Reverse Shells & Connect to Other Computers [Tutorial]

Cuprins:

Anonim

Netcat (sau nc) este o utilitate pentru linia de comandă care citește și scrie date prin conexiunile de rețea, folosind protocoalele TCP sau UDP. Este unul dintre cele mai puternice instrumente din arsenalul rețelei și a administratorilor de sistem și este considerat ca un cuțit al armatei elvețiene a instrumentelor de rețea.

Netcat este multiplă platformă și este disponibil pentru Linux, macOS, Windows și BSD. Puteți utiliza Netcat pentru a depana și monitoriza conexiunile de rețea, pentru a căuta porturi deschise, pentru a transfera date, ca proxy și altele. Pachetul Netcat este preinstalat pe macOS și distribuții Linux populare precum Ubuntu.

Sintaxa Netcat

Cea mai de bază sintaxă a utilității Netcat are următoarea formă:

nc host port

Pe Ubuntu, puteți utiliza netcat sau nc . Ambii sunt simboluri către versiunea OpenBSD a Netcat.

În mod implicit, Netcat va încerca să pornească o conexiune TCP la gazda și portul specificate. Dacă doriți să stabiliți o conexiune UDP, utilizați opțiunea -u :

nc -u host port

Scanare port

Scanarea porturilor este una dintre cele mai frecvente utilizări pentru Netcat. Puteți scana un singur port sau un interval de porturi.

De exemplu, pentru a scana porturile deschise în intervalul 20-80, utilizați următoarea comandă:

nc -z -v 10.10.8.8 20-80

Opțiunea -z îi va spune lui nc să scaneze doar porturile deschise, fără a le trimite date și opțiunea -v pentru a furniza mai multe informații verbale.

Rezultatul va arăta astfel:

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!

De asemenea, puteți utiliza Netcat pentru a găsi software-ul serverului și versiunea sa. De exemplu, dacă trimiteți o comandă „EXIT” către server în portul SSH implicit 22:

echo "EXIT" | nc 10.10.8.8 22

Rezultatul va arăta astfel:

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

Pentru a scana porturile UDP pur și simplu adăugați opțiunea -u la comanda așa cum se arată mai jos:

nc -z -v -u 10.10.8.8 20-80

În majoritatea situațiilor, Nmap este un instrument mai bun decât Netcat pentru scanarea porturilor complexe.

Trimiterea fișierelor prin Netcat

Netcat poate fi utilizat pentru a transfera date de la o gazdă la alta prin crearea unui model de bază client / server.

Aceasta funcționează setând Netcat să asculte pe un anumit port (folosind opțiunea -l ) pe gazda primitoare și apoi stabilind o conexiune TCP regulată de la cealaltă gazdă și trimitând fișierul peste el.

La recepție rulați următoarea comandă care va deschide portul 5555 pentru conexiune de intrare și redirecționează ieșirea către fișier:

nc -l 5555 > file_name

De la gazda care trimite, conectați-vă la gazda primitoare și trimiteți fișierul:

nc receiving.host.com 5555 < file_name

Pentru a transfera un director puteți utiliza tar pentru a arhiva directorul pe gazda sursă și pentru a extrage arhiva de pe gazda de destinație.

Pe gazda primitoare, setează instrumentul Netcat pentru a asculta o conexiune de intrare pe portul 5555. Datele primite sunt conectate la comanda tar care va extrage arhiva:

nc -l 5555 | tar xzvf -

Pe gazda care trimite pachetul directorului și trimite datele prin conectarea la procesul de ascultare nc pe gazda primitoare:

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

Puteți urmări progresul transferului pe ambele capete. Odată finalizat, tastați CTRL+C pentru a închide conexiunea.

Crearea unui server de chat simplu

Procedura pentru crearea unui chat online între două sau mai multe gazde este aceeași ca la transferul fișierelor.

La prima gazdă începe un proces Netcat pentru a asculta portul 5555:

nc -l 5555

De la a doua gazdă, executați următoarea comandă pentru a vă conecta la portul de ascultare:

nc first.host.com 5555

Acum, dacă tastați un mesaj și apăsați ENTER acesta va fi afișat pe ambele gazde.

Pentru a închide conexiunea, tastați CTRL+C

Efectuarea unei cereri HTTP

Deși există instrumente mult mai bune pentru solicitări HTTP, precum curl, puteți utiliza Netcat pentru a trimite diferite solicitări către serverele de la distanță.

De exemplu, pentru a prelua pagina de om Netcat de pe site-ul OpenBSD, introduceți:

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

Răspunsul complet, inclusiv anteturile HTTP și codul HTML, vor fi tipărite în terminal.

Concluzie

În acest tutorial, ați învățat cum să folosiți utilitatea Netcat pentru a stabili și a testa conexiunile TCP și UDP.

Pentru mai multe informații, vizitați pagina de utilizare Netcat și citiți despre toate celelalte opțiuni puternice ale comenzii Netcat.

terminalul netcat