Nmap, ili mrežni maper, predstavlja sveobuhvatan skup alata namenjen testiranju funkcionalnosti i prodiranja u mrežu. To uključuje i skeniranje portova, kao i detekciju potencijalnih ranjivosti.
Nmap skriptni mehanizam (NSE) je jedan od najznačajnijih i najmoćnijih aspekata Nmap-a. Ovi skriptovi, specifično dizajnirani za skeniranje ranjivosti, često se koriste od strane stručnjaka za penetracijsko testiranje, kao i od strane hakera, u cilju ispitivanja poznatih i uobičajenih bezbednosnih propusta.
Baza podataka o uobičajenim ranjivostima i izloženostima (CVE) predstavlja javno dostupan resurs koji sadrži informacije o objavljenim sigurnosnim problemima. Ova baza služi kao referentni model prilikom otkrivanja ranjivosti i pretnji povezanih sa sigurnošću informacionih sistema.
U ovom članku, istražićemo metode za korišćenje Nmap-a u svrhu skeniranja ranjivosti.
Započnimo!
Instalacija Nmap-a
Nmap je obično predinstaliran u većini Linux distribucija. Ukoliko nije, instalaciju je potrebno obaviti ručno. Može se jednostavno instalirati koristeći sledeću komandu:
apt-get install nmap
Alternativno, može se instalirati kloniranjem zvaničnog git repozitorijuma.
git clone https://github.com/nmap/nmap.git
Zatim, potrebno je ući u preuzeti direktorijum i instalirati sve potrebne zavisnosti pomoću sledećih komandi:
./configure make make install
Najnovija verzija ovog softvera, kao i binarne datoteke za instalaciju za Windows, macOS i Linux (RPM), dostupne su ovde.
Skeniranje ranjivosti pomoću Nmap-a
Nmap-vulners, vulscan i vuln su uobičajeni i najčešće korišćeni CVE skriptovi za otkrivanje ranjivosti unutar Nmap okruženja. Ovi skriptovi omogućavaju otkrivanje bitnih informacija o bezbednosnim nedostacima u sistemima.
Nmap-vulners
Jedan od poznatijih skenera ranjivosti je Nmap-vulners. Razmotrimo kako postaviti ovaj alat i kako izvršiti osnovno CVE skeniranje. Nmap skriptni mehanizam pretražuje HTTP odgovore kako bi identifikovao CPE za određeni skript.
Instalacija
Za instalaciju Nmap-vulners skripte, potrebno je ući u direktorijum Nmap skripti koristeći sledeću komandu:
cd /usr/share/nmap/scripts/
Naredni korak je kloniranje git repozitorijuma.
git clone https://github.com/vulnersCom/nmap-vulners.git
Nakon kloniranja git repozitorijuma, dalja konfiguracija nije potrebna. Alat će biti automatski instaliran.
Ako želite da pregledate NSE skripte prisutne u bazi podataka Nmap-vulners, koristite komandu ‘ls’. Ova komanda će prikazati sve skripte sa ekstenzijom .nse u terminalu.
Upotreba
Korišćenje NSE skripti je jednostavno. Dovoljno je proslediti argument ‘-script’ uz Nmap komandu kako biste specificirali koju NSE skriptu želite koristiti.
nmap -sV --script vulners [--script-args mincvss=<arg_val>] <cilj>
Ne zaboravite da prosledite argument ‘-sV’ kada koristite NSE skripte. Nmap-vulners neće moći pristupiti Vulners bazi podataka ukoliko ne dobije nikakve informacije o verziji od Nmap-a. Stoga, parametar ‘-sV’ je neophodan uvek.
Primer komande
Sintaksa je prilično jasna. Potrebno je samo pozvati skriptu sa opcijom ‘–script’, odrediti mehanizam za pronalaženje ranjivosti i cilj kako bi se započelo skeniranje.
nmap -sV --script nmap-vulners/ <cilj>
Ukoliko želite skenirati određeni port, dodajte opciju ‘-p’ na kraju komande i navedite broj porta koji želite skenirati.
nmap -sV --script nmap-vulners/ <cilj> -p80,223
Nmap – vuln
NSE skripte su kategorizovane prema unapred definisanom skupu kategorija. Kategorije uključuju autentifikaciju, emitovanje, grubu silu, nametljivo ponašanje, malver, bezbednost, verziju i vuln. Sve vrste kategorija NSE skripti i njihove faze možete pronaći ovde.
Skripte koje spadaju u kategoriju „vuln“ traže specifične poznate ranjivosti i izveštavaju samo ukoliko su one identifikovane na ciljnom sistemu.
nmap -sV --script vuln <cilj>
Nmap-vulscan
Vulscan je NSE skripta koja pomaže Nmap-u da otkrije ranjivosti na ciljevima na osnovu usluga i detekcije verzija. Vulscan se može smatrati modulom za Nmap koji ga pretvara u skener ranjivosti. Nmap opcija -sV omogućava otkrivanje verzije za svaku uslugu, što se koristi za identifikaciju potencijalnih iskorišćavanja otkrivenih ranjivosti u sistemu.
Trenutno su dostupne sledeće unapred instalirane baze podataka:
- exploitdb.csv
- osvdb.csv
- securitytracker.csv
- openvas.csv
- scipvuldb.csv
- xforce.csv
- securityfocus.csv
- cve.csv
Instalacija
Za instalaciju Vulscan-a, prvo je potrebno ući u direktorijum Nmap skripti koristeći sledeću komandu:
cd /usr/share/nmap/scripts/
Sledeći korak je kloniranje git repozitorijuma i instalacija svih potrebnih zavisnosti.
git clone https://github.com/scipag/vulscan.git ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan
Vulscan koristi unapred konfigurisane baze podataka koje su sačuvane lokalno na vašem računaru. Da biste ažurirali bazu podataka, potrebno je ući u direktorijum za ažuriranje. Unesite sledeću komandu u terminal da biste se prebacili na direktorijum za ažuriranje.
cd vulscan/utilities/updater/
Zatim promenite dozvole za izvršavanje datoteke u sistemu.
chmod +x updateFiles.sh
Na kraju, ažurirajte baze podataka o iskorišćavanjima pomoću naredbe ispod.
./updateFiles.sh
Upotreba
Koristimo vulscan za skeniranje ranjivosti pomoću Nmap-a. Vulscan NSE skripta se može koristiti na isti način kao i nmap-vulners.
nmap -sV --script vulscan <cilj>
Podrazumevano, Vulscan pretražuje sve baze podataka istovremeno. Pretraživanje informacija pomoću svih baza podataka oduzima puno vremena. Korišćenjem parametra ‘vulscandb’ možete proslediti samo jednu CVE bazu podataka u jednom trenutku.
--script-args vulscandb=ime_baze_podataka
Primer komande
nmap -sV --script vulscan --script-args vulscandb=exploit.csv <cilj> -p 80,233
Skeniranje pojedinačnih ranjivosti
Pojedinačna skeniranja ranjivosti se takođe mogu izvršiti korišćenjem specifičnih skripti unutar svake kategorije. Ispod se nalazi spisak svih 600+ NSE skripti i 139 NSE biblioteka.
Primeri
- http-csrf: Ova skripta detektuje ranjivosti povezane sa lažiranjem zahteva na više lokacija (CSRF).
nmap -sV --script http-csrf <cilj>
- http-sherlock: Namena ove skripte je da iskoristi „shellshock“ ranjivost u web aplikacijama.
nmap -sV --script http-sherlock <cilj>
- http-slowloris-attack: Ova skripta, bez pokretanja DoS napada, proverava da li web server ili ciljni sistem ima ranjivost za izvođenje Slowloris DoS napada.
nmap -sV --script http-slowloris-check <cilj>
- http-vmware-path-vuln: Ova skripta testira VMware ESX, ESXi i Server na ranjivost pri prelasku putanje.
nmap -sV --script http-vmware-path-vuln <cilj>
- http-passwd: Ova skripta pokušava preuzeti /etc/passwd ili boot.ini kako bi utvrdila da li je web server ranjiv na prelaženje direktorijuma.
nmap -sV --script http-passwd <cilj>
- http-internal-ip-disclosure: Ova provera utvrđuje da li web server otkriva svoju internu IP adresu kada se pošalje HTTP/1.0 zahtev bez zaglavlja Host.
nmap -sV --script http-internal-ip-disclosure <cilj>
- http-vuln-cve2013-0156: Ova skripta otkriva Ruby on Rails servere koji su ranjivi na DOS napade i ubacivanje komandi.
nmap -sV --script http-vuln-cve2013-0156 <cilj>
Na kraju, evo liste svih NSE skripti koje spadaju u kategoriju „vuln„.
Da li je vaš sistem sposoban da detektuje Nmap skeniranja?
Izviđanje je prva faza u etičkom hakovanju i penetracionom testiranju. Hakeri koriste fazu izviđanja da lociraju nedostatke i propuste u sistemu koji bi mogli iskoristiti za napad. Zbog toga, odbrambeni sistemi bi trebalo da budu u mogućnosti da detektuju ove aktivnosti.
Obaveštenja će biti primljena ukoliko koristite SIEM (bezbednosne informacije i upravljanje događajima) alate, zaštitne zidove i druge odbrambene mere. Evo i liste najboljih SIEM alata za zaštitu vašeg poslovanja i organizacije od sajber napada. Ovi alati pomažu čak i u evidentiranju Nmap skeniranja. Skeniranje ranjivosti je od suštinske važnosti, jer rana identifikacija može sprečiti buduću štetu na sistemu.
Zaključak
Nadam se da je ovaj članak bio koristan za razumevanje korišćenja Nmap-a za skeniranje ranjivosti.
Možda ćete biti zainteresovani i da istražite listu skenera web bezbednosti otvorenog koda, koji mogu pomoći u pronalaženju ranjivosti.