Cum să ataci porturile deschise și ce ar putea face criminalii cibernetici

Suntem siguri că toți ați avut vreodată să „deschideți un port” sau, mai bine zis, să faceți „redirecționarea porturilor” pe router, deoarece toate computerele din rețeaua locală se află în spatele NAT. Pentru a putea accesa aceste dispozitive care se află pe rețeaua locală de pe Internet, trebuie să „deschidem un port” sau să facem „Port forwarding” pe router, în caz contrar, nu vom putea accesa acest serviciu de pe Internet ( Server SSH, server FTP, server OpenVPN etc.) Astăzi, în acest articol vom explica ce înseamnă un port să fie deschis, cum ar putea ataca porturile deschise și ce ar putea face.

Cum să ataci porturile deschise și ce ar putea face criminalii cibernetici

Ce înseamnă pentru un port să fie „deschis”?

Comunicațiile la nivelul stratului de transport, folosind în principal protocoale TCP și UDP, utilizează ceea ce este cunoscut sub numele de „socket Internet”. Acest soclu constituie un mecanism prin care două procese (aplicații, de exemplu) pot face schimb de date prin rețeaua locală sau prin Internet. Orice flux de date care utilizează TCP sau UDP necesită cel puțin următoarele informații:

  • IP sursă
  • Portul de origine
  • Destinație IP
  • portul de destinație

Într-o rețea locală, într-un mod complet automat și transparent, porturile sunt deschise și închise continuu de diferite procese pentru a putea comunica cu alte computere. Pentru ca două procese să comunice, este necesar ca un proces să poată „localiza” celălalt pentru a obține servicii sau pentru a vă oferi servicii.

esquema del handshake 3-way

Când definim că un „port este deschis”, acesta poate fi în două scenarii foarte diferite:

  • Un port deschis pe un computer local , de exemplu, pe computerul nostru sau pe un server local. În principiu, toate porturile ar trebui închise, deoarece firewall-ul este configurat în mod restrictiv (totul este blocat, cu excepția a ceea ce este permis în mod specific).
  • Un port deschis în NAT-ul routerului . În mod normal, în router nu avem niciun port „deschis” sau, mai bine zis, nu avem în secțiunea „Server virtual” sau „Redirecționare porturi” niciun port către niciun computer. În mod implicit, în orice router acest tabel este gol, cu toate acestea, putem înregistra reguli diferite pentru a deschide porturi pe computere diferite.

Când trebuie să deschidem porturile la nivel local?

Dacă computerul nostru local acționează ca un server „ceva”, cum ar fi, de exemplu, un server FTP, un server web, un server SSH, un VPN server, un server de baze de date și multe altele, va trebui să avem un port sau mai multe porturi deschise pe el. firewall astfel încât diferitele computere din rețeaua locală sau Internet să poată accesa serviciile noastre, în caz contrar, nu vor putea accesa deoarece firewall-ul va bloca această comunicație și nu vor fi stabilite conexiuni.

În mod normal, într-un mediu casnic, dacă ne stabilim ferestre din 10 sau a Linux-sistem de operare bazat pe „Rețea privată” sau „Rețea de domiciliu”, firewall-ul este dezactivat și toate conexiunile primite vor fi permise. Cu toate acestea, dacă o avem ca „Rețea publică”, paravanul de protecție va fi activat și va bloca toate conexiunile primite pe care nu le-am efectuat anterior, prin urmare, ne confruntăm cu un paravan de protecție „restrictiv”.

Când trebuie să deschidem porturi în NAT-ul routerului?

Dacă avem un computer în rețeaua locală care acționează ca un server „pentru ceva”, ca în cazul anterior, și dorim ca aceste servicii să fie accesibile de pe Internet, va fi necesar să facem o „redirecționare a porturilor” sau, de asemenea, cunoscute sub numele de «porturi deschise». În acest fel, dacă cineva deschide un socket cu adresa IP publică și un port extern corespunzător, acel flux de date va fi redirecționat automat către computerul pentru care am „deschis porturile”.

Orice router implicit nu are reguli pentru efectuarea redirecționării porturilor, va trebui să o facem în mod specific. În plus, un detaliu foarte important este că, dacă operatorul dvs. are CG-NAT, chiar dacă deschideți un port pe router extern, nu veți putea face nimic pentru a accesa resursele interne ale rețelei locale.

Cum ataci un port?

Nu puteți „ataca” un port, ceea ce este atacat este serviciul din spatele acelui „port” care ascultă să accepte conexiunile primite. De exemplu, dacă avem portul 5555 deschis și un server FTP este configurat aici, ceea ce vom face este să atacăm serviciul FTP, dar nu și portul. Portul este încă o „ușă” a informațiilor, ceea ce este cu adevărat atacat sunt serviciile din spatele acestor porturi.

Termenul de atacare a unui port este frecvent utilizat, când ar trebui să se spună „faceți o scanare a portului” pentru a verifica ce porturi sunt deschise pe un anumit computer, pentru a ataca ulterior serviciile din spatele acestui serviciu specific. Pentru a face o scanare a portului există multe metode, dar, fără îndoială, cel mai bun lucru pe care îl putem folosi este să efectuăm o scanare cu Nmap, programul de descoperire a gazdei prin excelență și scanarea porturilor, în plus, ar permite, de asemenea, exploatarea acestuia prin intermediul NSE, care este un supliment la Nmap, cu posibilitatea de a sparge diferite servicii și de a exploata vulnerabilitățile cunoscute.

Nmap este un program foarte ușor de utilizat, pur și simplu instalați-l pe orice sistem de operare bazat pe Linux pentru a începe funcționarea acestuia, se află în depozitele oficiale ale fiecărei distribuții, prin urmare, trebuie doar să executați următoarea comandă:

sudo apt install nmap

Odată instalat, va trebui să executăm comanda specifică pentru a vedea dacă un port este deschis, filtrat sau închis:

nmap -p PUERTO IP

De asemenea, am putea scana o serie de porturi după cum urmează:

nmap -p PUERTOINICIAL-PUERTOFINAL IP

De exemplu, dacă avem un server web cu HTTP și HTTPS rulând, este complet normal să avem porturile 80 și 443 deschise, astfel:

Verificarea porturilor deschise, filtrate sau închise cu Nmap este ușoară, cu toate acestea, vă recomandăm să citiți wiki-ul complet Nmap în care avem manuale detaliate pas cu pas ale diferitelor tipuri de scanare a porturilor pe care le avem disponibile.

Ce poate face un criminal cibernetic cu un port deschis?

Când avem un port deschis, pot exista mai multe cazuri în jurul a ceea ce poate sau nu poate face un criminal cibernetic. Dacă avem un port deschis, dar nu există niciun serviciu în spatele ascultării, acesta nu va putea face nimic, cu toate acestea, numărul portului deschis ar putea fi „salvat” în cazul în care vom pune un serviciu de ascultat în viitor .

Dacă avem un port deschis și există un serviciu în spatele ascultării, acesta ar putea efectua multe acțiuni:

  • Folosiți un mod legitim de verificare a funcționării acestuia
  • Dacă serviciul necesită autentificare, ar putea efectua un dicționar sau un atac de forță brută pentru a accesa serviciul.
  • Efectuați un atac de refuz de serviciu pentru a determina serviciul să înceteze să funcționeze corect și să înceteze furnizarea de servicii.
  • Exploatarea unei vulnerabilități de securitate în serviciu, fie pentru a accesa nelegitim resursele serviciului, pentru a intra în sistem și chiar pentru a escalada privilegiile și a prelua controlul deplin al serverului.

După cum puteți vedea, cu un port deschis și un serviciu care rulează în spatele acestuia, un criminal cibernetic poate efectua multe acțiuni rău intenționate, prin urmare, este foarte important să protejați serviciile din spatele acestui port, să le protejați, este recomandabil să efectuați următoarele acțiuni :

  • Configurați corect paravanul de protecție pentru a permite accesul numai celor care au într-adevăr nevoie de el, de exemplu, puteți filtra în funcție de țări.
  • Pentru a atenua atacurile DoS, puteți configura reguli firewall pentru a refuza prea multe conexiuni simultane la aceeași sursă IP.
  • Puteți instala un program precum fail2ban pentru a detecta mai multe încercări de conectare, apoi spuneți firewallului să blocheze IP-ul sursă.
  • Întărind serviciul care ascultă, fie că este un server SSH, FTP sau server web, există întotdeauna setări avansate în aceste servicii pentru a le proteja și mai mult.
  • Întărirea sistemului de operare care găzduiește serviciul, definirea unor politici de autentificare solide, actualizarea sistemului și chiar utilizarea unor sisteme avansate precum SELinux, printre altele.

Există multe măsuri de securitate pe care le putem aplica unui sistem și serviciu pentru a fi mai sigure, dar trebuie să aveți în vedere că securitatea 100% nu există, prin urmare, trebuie să fiți pregătiți pentru un incident și să puteți recupera sistemul.