hacking etic: identificarea serviciilor cu nmap

cuprins

în postarea anterioară de hacking etic explicăm pe scurt diverse opțiuni pentru a obține o enumerare a adreselor IP și a subdomeniilor atunci când efectuați un proces de hacking etic. Dacă v-a plăcut că „acest lucru este foarte sigur, deoarece cine va ști că acest subdomeniu există” (că, deși nu vă vine să credeți, este mai frecvent decât pare), nu ratați cum „cine va ști că am pus acest serviciu în acest port cu un număr atât de ciudat”…

pe scurt, în această postare vom încerca să vedem cum este posibil să faceți un inventar al porturilor deschise într-un IP sau o gamă de IP-uri și chiar să identificați tehnologia sub un port deschis, atunci când acest lucru este posibil. Practic, acest post se va concentra pe utilizarea unui instrument fantastic și esențial, nmap. Deși este un instrument utilizat de obicei în Linux (și, desigur, inclus în suita de referință pe care o folosesc în aceste postări, Kali), compilațiile pentru alte sisteme de operare pot fi deja găsite.

inainte de a merge la lucru, dorim sa avertizam ca Nmap este un instrument complex si complet, cu o cantitate imensa de optiuni, parametri, etc.; Acest post nu este conceput ca un manual pentru utilizarea instrumentului, ci din nou o introducere în acesta pentru a înțelege identificarea serviciilor ca o fază a hacking-ului etic înainte de detectarea vulnerabilităților. Pentru a afla mai multe despre instrument, vă recomandăm să citiți manualul acestora.

Instrumentul Open Source Nmap ne permite să efectuăm scanări de rețea și port, putând scana o singură destinație, o gamă, o listă de IP-uri… pe baza cererilor TCP, UDP, ICMP, SCTP etc. și încorporează diverse tehnici de scanare. Vă recomandăm, în general, să reîmprospătați câteva cunoștințe despre protocoalele de transport, de exemplu amintindu-vă cum funcționează stabilirea unei conexiuni TCP cu negocierea în trei pași: în primul rând, apelul de tip SYN de la client la un port, primul răspuns dacă portul este închis sau SYN-ACK dacă este deschis și ACK de la client la server pentru a finaliza procesul. Nmap se va baza pe aceste tipuri de mesaje pentru a determina daca un port asculta sau nu la destinatie. Uneori, acest lucru nu poate fi utilizat sau este detectat de serverul de la distanță și există alte alternative pentru scanare.

sintaxă generală

nmap { }

prima noastră scanare

putem executa următoarea comandă:

nmap 45.33.49.119

nu punem niciun fel de sondaj, deci folosiți sondajul implicit, TCP SYN. nmap trimite un SYN si presupune ca portul este deschis daca primeste un SYN ACN. De asemenea, nu există un parametru suplimentar de opțiuni, iar ca destinație există un singur IP. Această comandă ne va da un rezultat similar cu următorul:

Starting Nmap 7.70 ( https://nmap.org ) at 2019-10-01 18:12 CESTNmap scan report for ack.nmap.org (45.33.49.119)Host is up (0.19s latency).Not shown: 993 filtered portsPORT STATE SERVICE22/tcp open ssh25/tcp open smtp70/tcp closed gopher80/tcp open http113/tcp closed ident443/tcp open https31337/tcp closed EliteNmap done: 1 IP address (1 host up) scanned in 10.86 seconds

revenind în câteva secunde o listă de porturi deschise pe acel IP, inclusiv un SSH, un server de mail SMTP, un server web și un posibil orificiu înapoi (https://www.speedguide.net/port.php?port=31337).

în multe cazuri, acesta este pur și simplu un prim punct de analiză, deși, de exemplu, software-ul din spatele unui server FTP, SSH etc., este complet actualizat și nu există vulnerabilități cunoscute. Ați putea începe, de exemplu, un atac de forță brută cu un dicționar pe SSH sau FTP care încearcă să acceseze (există un număr mare de servere de acest tip cu acreditări implicite sau nesigure).

există instrumente automate (bots) care scanează în mod continuu game largi de IP-uri care caută porturi deschise recunoscute, de exemplu baze de date (MongoDB, MySQL, PostgreSQL etc.), și atunci când detectează un port deschis, ei încearcă în mod automat o autentificare cu acreditările implicite. De exemplu, în cazul instalațiilor tipice LAMP / WAMP, o rădăcină / acces la portul mySQL. Și practic, un număr imens de baze de date au fost hackate fără intervenția umană prealabilă. Acest lucru este viabil chiar dacă îl avem deschis într-un alt port, deoarece este posibil să identificăm în multe cazuri că ceea ce este în portul 5555 „pentru a induce în eroare”, pentru a spune ceva, este un mySQL prin amprenta serviciului, așa cum vom vedea mai departe.

pe scurt, este foarte periculos să lăsați acreditările în mod implicit pe servere web, routere, FTPs, SSHs, baze de date … pentru că nimeni nu trebuie să aibă o manie, un bot va.

Escanear ips con nmap

un prim parametru

daca dorim sa avem cateva informatii despre modul in care nmap a obtinut aceste informatii, putem creste urmele cu parametrul-v (verbose) sau-vv, unde putem vedea ca nmap a emis comenzi SYN si in unele cazuri a primit RESET (port inchis), in alte SYN-ACK (port deschis) si in altele fara raspuns („filtrat”), ceea ce ne poate face sa intelegem ca un firewall:

PORT STATE SERVICE REASON22/tcp open ssh syn-ack ttl 5325/tcp open smtp syn-ack ttl 5370/tcp closed gopher reset ttl 5280/tcp open http syn-ack ttl 53113/tcp closed ident reset ttl 52443/tcp open https syn-ack ttl 5331337/tcp closed Elite reset ttl 53

creșterea gamei de IP-uri pentru a scana

nmap 192.168.10.0/24 (subred completa)nmap 192.168.10.1-20 (20 IPs)nmap 192.168.10.*nmap 192.168.10.1 192.168.10.2 192.168.10.3

sau, de exemplu, imaginați-vă că am acumulat IP-uri din enumerarea noastră inițială și avem un fișier cu diferite IP-uri separate prin File sau pauze de linie (un IP sau interval pe linie). Putem încărca fișierul cu parametrul-iL (input list) și astfel scanăm întregul inventar IP. De asemenea, permite, de exemplu, excluderea unor IP –uri specifice cu –excludeți sau-excludefile.

definirea porturilor de scanat

putem defini manual porturile pe care dorim să le scanăm. De exemplu, dacă căutăm servere web pe porturile 80, 443 și 8080 într-o subrețea, am putea face acest lucru cu parametrul-p:

nmap -p 80,443,8080 192.168.10.0/24

de asemenea, putem cere nmap să scaneze cele mai comune porturi ” n ” (integer); de exemplu, să scaneze cele mai comune 25 de porturi dintr-o gamă de IP-uri:

nmap --top-ports 25 192.168.10.0/24

primirea unui răspuns ca acesta:

PORT STATE SERVICE21/tcp closed ftp22/tcp open ssh23/tcp closed telnet25/tcp closed smtp53/tcp open domain80/tcp open http110/tcp closed pop3111/tcp open rpcbind135/tcp closed msrpc139/tcp open netbios-ssn143/tcp closed imap199/tcp closed smux443/tcp closed https445/tcp open microsoft-ds587/tcp closed submission993/tcp closed imaps995/tcp closed pop3s1025/tcp closed NFS-or-IIS1720/tcp closed h323q9311723/tcp closed pptp3306/tcp closed mysql3389/tcp closed ms-wbt-server5900/tcp open vnc8080/tcp closed http-proxy8888/tcp closed sun-answerbook

putem cere ca toate porturile TCP, UDP și SCTP (mai lent) cu identificatorul-p – să fie scanate:

nmap -p- 192.168.10.0/24

identificarea sistemelor si serviciilor de operare

dupa cum vedem, nmap ne permite sa detectam porturile care asculta pe un IP sau o gama. Mai târziu vom vedea și cum pot fi definite alte tehnici de anchetă. In plus, nmap ne permite sa incercam sa identificam ce tehnologie (produs, Versiune, etc.) se află în spatele unui port deschis sau chiar al sistemului de operare instalat pe un server, cu parametrii-o și-SV. Această detectare se bazează pe „semnătura” (amprenta digitală) a răspunsurilor pe care serviciul le oferă anumitor apeluri.

nmap -O -sV 192.168.10.5
PORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 6.7p1 Raspbian 5+deb8u3 (protocol 2.0)53/tcp open domain ISC BIND 9.9.5 (Raspbian Linux 8.0 (Jessie based))80/tcp open http Apache httpd 2.4.10 ((Raspbian))111/tcp open rpcbind 2-4 (RPC #100000)139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)4567/tcp open http Jetty 9.4.8.v201711215900/tcp open vnc RealVNC Enterprise 5.3 or later (protocol 5.0)MAC Address: B8:27:EB:CD:FE:89 (Raspberry Pi Foundation)Device type: general purposeRunning: Linux 3.X|4.XOS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4OS details: Linux 3.2 - 4.9Network Distance: 1 hopService Info: Host: RASPBERRYPI; OS: Linux; CPE: cpe:/o:linux:linux_kernel

în acest caz, nu numai că știm că această mașină are anumite porturi deschise. De asemenea, ne spune că este un Raspberry care rulează Raspbian (cu care, de exemplu, am putea face un test de forță brută cu un utilizator „pi”, care este Utilizatorul implicit) și versiunile diferitelor porturi care ascultă, astfel încât aceste informații să poată fi utilizate pentru a exploata vulnerabilitățile peste versiunile nepatchate etc.

folosind mai multe tehnici de votare

implicit nmap folosește SYN ca tehnică de votare. Este o tehnică rapidă și nu foarte intruzivă / detectabilă, dar uneori, dar acceptă un total de 12 tehnici diferite pe care le putem defini ca parametri, așa cum putem vedea în manualul de utilizare al instrumentului.

de exemplu, dacă dorim să facem o scanare bazată pe apeluri UDP, putem efectua un apel de tipul:

nmap -sU 192.168.10.5

căutarea vulnerabilităților cu nmap

deși există instrumente mai „confortabile” și specifice pentru căutarea vulnerabilităților, cum ar fi Nessus, sau suite precum Metasploit care consolidează diverse instrumente, nmap ne permite, de asemenea, să efectuăm analiza vulnerabilității.

pentru a face acest lucru, folosește o serie de scripturi Lua care se află într –o cale a mașinii noastre (în cazul Kali, în / usr / share / Nmap / scripts /) și care pot fi invocate cu-script sau echivalentul său-sC .

scripturile pot apartine uneia sau mai multor categorii, asa ca putem cere nmap-ului sa evalueze, de exemplu, toate scripturile dintr-o categorie in raport cu o gazda. Există câteva categorii deosebit de interesante, cum ar fi „vuln” (scripturi dedicate detectării vulnerabilităților la destinație), „exploit” etc.

de exemplu, dacă dorim să scanăm scripturile categoriei de vulnerabilitate împotriva unei gazde:

nmap --script vuln scanme.nmap.org
PORT STATE SERVICE22/tcp open ssh80/tcp open http| http-csrf: | Spidering limited to: maxdepth=3; maxpagecount=20; withinhost=scanme.nmap.org| Found the following possible CSRF vulnerabilities: | | Path: http://scanme.nmap.org:80/| Form id: cse-search-box-sidebar|_ Form action: https://nmap.org/search.html|http-dombased-xss: Couldn't find any DOM based XSS. | http-enum: | /images/: Potentially interesting directory w/ listing on 'apache/2.4.7 (ubuntu)' | /shared/: Potentially interesting directory w/ listing on 'apache/2.4.7 (ubuntu)'| http-slowloris-check: | VULNERABLE:| Slowloris DOS attack| State: LIKELY VULNERABLE| IDs: CVE:CVE-2007-6750| Slowloris tries to keep many connections to the target web server open and hold them open as long as possible. It accomplishes this by opening connections to the target web server and sending a partial request. By doing so, it starves the http server's resources causing Denial Of Service.| Disclosure date: 2009-09-17| References:| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750|_ http://ha.ckers.org/slowloris/|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.9929/tcp open nping-echo31337/tcp open Elite

după cum putem vedea, scriptul a detectat o vulnerabilitate potențială bazată pe atacul slowloris denial of service. Dacă analizăm scripturile care se află pe traseul menționat mai sus, vedem că există tocmai unul care exploatează această vulnerabilitate, numită http-slowloris. Dacă dorim mai multe informații despre script, putem lansa următoarea comandă:

nmap --script-help http-slowloris

explicând cum funcționează scriptul, cum să îl lansați (este posibil să o faceți și cu Nmap –ul însuși cu –script și-script-args) etc. De asemenea, putem obține, de exemplu, o descriere a tuturor scripturilor care caută vulnerabilități:

nmap --script-help vuln

de asemenea, putem lansa, de exemplu, toate scripturile de un anumit tip. De exemplu, dacă dorim să scanăm vulnerabilitățile prin protocolul SMB pe o anumită gazdă:

nmap --script smb-* 192.168.10.5

de asemenea, putem, de exemplu, să evaluăm o vulnerabilitate pe întreaga noastră rețea, alegând un script specific împotriva unui interval. Parametrul-script

nmap --script-help vuln
nmap --script

pe scurt, nmap include chiar si optiuni interesante de evaluare a vulnerabilitatilor si chiar de lansare a exploit-urilor, desi exista si alte instrumente utilizate in mod obisnuit in acest scop.

Empleada contect a la VPN para poder teletrabajar

alte opțiuni interesante

după cum am comentat, nmap are multe opțiuni și este imposibil să încerci să acoperi chiar și un mic procent într-o postare. De fapt, există o carte oficială nmap de aproape 500 de pagini… dar în orice caz încercăm să comentăm aici unele care par interesante.

dupa cum am comentat, nmap are multe optiuni si este imposibil sa incerci sa acoperi chiar si un mic procent dintr-o postare. De fapt, există o carte oficială nmap de aproape 500 de pagini… dar în orice caz încercăm să comentăm aici unele care par interesante.

  • Instrumentul vă permite să generați rezultatul scanării într-un fișier de ieșire procesabil, de exemplu, în format XML, cu-oX sau-oN .
  • când scanăm game largi de IP-uri, putem dezactiva încercarea de rezoluție inversă DNS cu parametrul-N.
  • în timpul executării unei comenzi putem crește nivelul informațiilor afișate pe consolă (verbozitate) apăsând tasta „V”.
  • dacă avem un firewall care ne taie, putem încerca-Pn.

pe scurt, am incercat sa dezvoltam o introducere „scurta” in nmap ca un instrument pentru identificarea porturilor si serviciilor deschise pe o gazda sau o gama de IP-uri. În postările ulterioare vom vedea alte modalități de detectare a vulnerabilităților.

totul e pregătit?

este timpul să se ocupe de documente mai eficient

Leave a Reply

Adresa ta de email nu va fi publicată.