Use Netcat to Spawn Reverse Shells & Connect to Other Computers [Tutorial]
Cuprins:
- Sintaxa Netcat
- Scanare port
- Trimiterea fișierelor prin Netcat
- Crearea unui server de chat simplu
- Efectuarea unei cereri HTTP
- Concluzie
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
:
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 netcatComanda Docker run cu exemple
Comanda docker run creează un container dintr-o imagine dată și pornește containerul folosind o comandă dată. Este una dintre primele comenzi cu care ar trebui să vă familiarizați atunci când începeți să lucrați cu Docker.
Comanda ecou în linux cu exemple
Comanda ecou este una dintre cele mai de bază și frecvent utilizate comenzi în Linux. Argumentele transmise ecoului sunt tipărite la ieșirea standard.
Curbați comanda în linux cu exemple
Curl este un utilitar pentru linia de comandă pentru transferul datelor de pe sau către un server proiectat să funcționeze fără interacțiunea utilizatorului. În acest tutorial, vă vom arăta cum să folosiți instrumentul de ondulare prin exemple practice și explicații detaliate ale celor mai comune opțiuni de ondulare.







