Nmap Summary (ESP)
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2Fpentest.eu%2FRENDER_WebSec_10fps_21sec_9MB_29042024.gif&width=768&dpr=4&quality=100&sign=bc0743d1&sv=1)
Parametri
IP adrese za skeniranje
<ip>,<net/mask>
: Označava IP adrese direktno-iL <ips_file>
: lista_IP adresa-iR <number>
: Broj slučajnih IP adresa, možete isključiti moguće IP adrese sa--exclude <Ips>
ili--excludefile <file>
.
Otkrivanje opreme
Podrazumevano, Nmap pokreće fazu otkrivanja koja se sastoji od: -PA80 -PS443 -PE -PP
-sL
: Nije invazivan, prikazuje mete praveći DNS zahteve za rešavanje imena. Korisno je znati da li su sve IP adrese na primer www.prueba.es/24 naše mete.-Pn
: Bez pinga. Ovo je korisno ako znate da su sve aktivne (ako ne, možete izgubiti puno vremena, ali ova opcija takođe daje lažne negativne rezultate tvrdeći da nisu aktivne), sprečava fazu otkrivanja.-sn
: Bez skeniranja portova. Nakon završetka faze izviđanja, ne skenira portove. Relativno je neprimetan i omogućava mali mrežni sken. Sa privilegijama šalje ACK (-PA) na 80, SYN(-PS) na 443 i zahtev za eho i zahtev za vremenski pečat, bez privilegija uvek završava veze. Ako je meta mreža, koristi samo ARP(-PR). Ako se koristi sa drugom opcijom, samo se odbacuju paketi druge opcije.-PR
: Ping ARP. Koristi se podrazumevano prilikom analize računara u našoj mreži, brži je od korišćenja pingova. Ako ne želite da koristite ARP pakete, koristite--send-ip
.-PS <ports>
: Šalje SYN pakete na koje ako odgovori SYN/ACK, port je otvoren (na koji odgovara sa RST kako bi prekinuo vezu), ako odgovori RST, port je zatvoren, a ako ne odgovori, nedostupan je. U slučaju nedostatka privilegija, automatski se koristi ukupna veza. Ako nisu navedeni portovi, šalje ih na 80.-PA <ports>
: Kao prethodni, ali sa ACK, kombinovanjem oba daje bolje rezultate.-PU <ports>
: Cilj je suprotan, šalju se na portove za koje se očekuje da su zatvoreni. Neki firewalli proveravaju samo TCP veze. Ako je zatvoren, odgovara se sa nedostupnim portom, ako se odgovori drugim icmp-om ili ne odgovori, ostaje kao nedostupan odredištu.-PE, -PP, -PM
: ICMP PING-ovi: eho odgovor, vremenski pečat i maska adrese. Pokreću se kako bi saznali da li je meta aktivna.-PY<ports>
: Šalje SCTP INIT probe na 80 podrazumevano, INIT-ACK(otvoren) ili ABORT(zatvoren) ili ništa ili ICMP nedostupan(neaktivan) može biti odgovor.-PO <protocols>
: Protokol je naznačen u zaglavljima, podrazumevano 1(ICMP), 2(IGMP) i 4(Encap IP). Za ICMP, IGMP, TCP (6) i UDP (17) protokole šalju se zaglavlja protokola, za ostale se šalje samo IP zaglavlje. Svrha ovoga je da zbog deformacije zaglavlja, odgovori se na Protokol nedostupan ili odgovori istim protokolom kako bi se znalo da li je aktivan.-n
: Bez DNS-a-R
: Uvek DNS
Tehnike skeniranja portova
-sS
: Ne završava vezu tako da ne ostavlja trag, veoma dobro ako se može koristiti (privilegije). To je podrazumevano korišćeno.-sT
: Završava vezu, pa ostavlja trag, ali se može koristiti sigurno. Podrazumevano bez privilegija.-sU
: Sporije, za UDP. Najčešće: DNS(53), SNMP(161,162), DHCP(67 i 68), (-sU53,161,162,67,68): otvoren(odgovor), zatvoren(nedostupan port), filtriran(drugi ICMP), otvoren/filtriran (ništa). U slučaju otvoren/filtriran, -sV šalje brojne zahteve kako bi otkrio bilo koju od verzija koje nmap podržava i može otkriti pravo stanje. Značajno povećava vreme.-sY
: SCTP protokol ne uspeva da uspostavi vezu, pa nema zapisa, radi kao -PY-sN,-sX,-sF
: Null, Fin, Xmas, mogu proći kroz neke firewalle i izvući informacije. Bazirane su na činjenici da bi standardno usklađene mašine trebalo da odgovore sa RST na sve zahteve koji nemaju SYN, RST ili ACK oznake podignute: otvoren/filtriran(ništa), zatvoren(RST), filtriran (ICMP nedostupan). Nepouzdane na Windows-u, CIsco-u, BSDI i OS/400. Na unix-u da.-sM
: Maimon sken: Šalje FIN i ACK zastave, korišćeno za BSD, trenutno će sve vratiti kao zatvoreno.-sA, sW
: ACK i Prozor, koristi se za otkrivanje firewalla, da se zna da li su portovi filtrirani ili ne. -sW razlikuje između otvorenih/zatvorenih jer otvoreni odgovaraju sa različitom vrednošću prozora: otvoren (RST sa prozorom različitim od 0), zatvoren (RST prozor = 0), filtriran (ICMP nedostupan ili ništa). Ne svi računari rade na ovaj način, pa ako su svi zatvoreni, ne radi, ako su neki otvoreni, radi dobro, a ako su mnogi otvoreni i malo zatvoreni, radi obrnuto.-sI
: Idle sken. Za slučajeve kada postoji aktivan firewall, ali znamo da ne filtrira određenu IP adresu (ili kada jednostavno želimo anonimnost) možemo koristiti zombie skener (radi za sve portove), da bismo pronašli moguće zombije možemo koristiti skriptu ipidseq ili eksploataciju auxiliary/scanner/ip/ipidseq. Ovaj skener se zasniva na broju IPID paketa IP adrese.--badsum
: Šalje pogrešan zbir, računari bi odbacili pakete, ali firewalli bi mogli odgovoriti nečim, koristi se za otkrivanje firewalla.-sZ
: "Čudan" SCTP skener, prilikom slanja proba sa fragmentima cookie eha, trebalo bi ih odbaciti ako su otvoreni ili odgovoriti sa ABORT ako su zatvoreni. Može proći kroz firewalle kroz koje init ne može proći, loša stvar je što ne razlikuje između filtriranih i otvorenih.-sO
: Skeniranje protokola IP. Šalje loša i prazna zaglavlja u kojima se ponekad čak ne može razlikovati ni protokol. Ako stigne ICMP nedostupan protokol, zatvoren je, ako stigne nedostupan port, otvoren je, ako stigne druga greška, filtriran je, ako ništa ne stigne, otvoren|filtriran.-b <server>
: FTPhost--> Koristi se za skeniranje hosta sa drugog, to se radi povezivanjem ftp-a druge mašine i traženjem da pošalje fajlove na portove koje želite skenirati sa druge mašine, prema odgovorima saznaćemo da li su otvoreni ili ne. [<user>:<password>@]<server>[:<port>] Skoro svi ftp serveri više ne dozvoljavaju ovo i stoga je od malo praktične koristi.
Centriranje analize
-p: Koristi se za određivanje portova za skeniranje. Za odabir svih 65335: -p- ili -p all. Nmap ima internu klasifikaciju prema popularnosti. Podrazumevano koristi prvih 1000. Sa -F (brzo skeniranje) analizira prvih 100. Sa --top-ports <numero> Analizira taj broj glavnih (od 1 do 65335). Proverava portove u slučajnom redosledu, da se to ne bi desilo -r. Takođe možemo odabrati portove: 20-30,80,443,1024- Ovo poslednje znači da gleda od 1024 nadalje. Takođe možemo grupisati portove po protokolima: U:53,T:21-25,80,139,S:9. Takođe možemo izabrati opseg unutar popularnih nmap portova: -p [-1024] analizira do 1024 uključenih u nmap-services. --port-ratio <ratio> Analizira najčešće portove sa odnosom koji treba biti između 0 i 1
-sV Skeniranje verzije, može se podešavati intenzitet od 0 do 9, podrazumevano 7.
--version-intensity <numero> Podešavamo intenzitet, tako da što je niži, lansira samo najverovatnije sonde, ali ne sve. Time možemo značajno skratiti vreme skeniranja UDP
-O Detekcija OS
--osscan-limit Da bi dobro skenirao host, potrebno je da postoji barem jedan otvoren i jedan zatvoren port, ako se ovo ne dogodi i postavili smo ovo, ne pokušava predviđanje OS (štedi vreme) --osscan-guess Kada detekcija operativnog sistema nije savršena, ovaj parametar povećava napor
Skripte
--script <imefajla>|<kategorija>|<direktorijum>|<izraz>[,...]
Za korišćenje podrazumevanih skripti, dovoljno je koristiti -sC ili --script=default
Tipovi skripti uključuju: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version i vuln
Auth: izvršava sve dostupne skripte za autentikaciju
Default: izvršava osnovne podrazumevane skripte alata
Discovery: prikuplja informacije o meti ili žrtvi
External: skripta za korišćenje spoljnih resursa
Intrusive: koristi skripte koje se smatraju napadnim za žrtvu ili metu
Malware: proverava da li postoje otvorene veze putem zlonamernih kodova ili vrata za povratni pristup (backdoors)
Safe: izvršava skripte koje nisu napadne
Vuln: otkriva najpoznatije ranjivosti
All: izvršava apsolutno sve dostupne NSE skripte
Za pretragu skripti:
nmap --script-help="http-*" -> One koje počinju sa http-
nmap --script-help="not intrusive" -> Sve osim tih
nmap --script-help="default or safe" -> One koje su u jednoj ili drugoj kategoriji ili u obema
nmap --script-help="default and safe" --> One koje su u obema
nmap --script-help="(default or safe or intrusive) and not http-*"
--script-args <n1>=<v1>,<n2>={<n3>=<v3>},<n4>={<v4>,<v5>}
--script-args-file <imefajla>
--script-help <imefajla>|<kategorija>|<direktorijum>|<izraz>|all[,...]
--script-trace ---> Pruža informacije o toku skripte
--script-updatedb
Za korišćenje jedne skripte, dovoljno je navesti: nmap --script Ime_skripte cilj --> Navođenjem skripte, izvršiće se i skripta i skener, tako da se mogu dodati opcije skenera, možemo dodati “safe=1” da bi se izvršile samo sigurne skripte.
Kontrola vremena
Nmap može modifikovati vreme u sekundama, minutima, ms: --host-timeout arguments 900000ms, 900, 900s, and 15m sve rade isto.
Nmap deli ukupan broj hostova za skeniranje u grupe i analizira te grupe u blokovima tako da dok se ne analiziraju svi, ne prelazi na sledeći blok (i korisnik takođe ne dobija ažuriranja dok se blok ne analizira), na ovaj način, nmap je efikasniji koristeći veće grupe. Podrazumevano za klasu C koristi 256.
Može se promeniti sa**--min-hostgroup** <numhosts>; --max-hostgroup <numhosts> (Prilagodi veličine paralelnih sken grupa)
Može se kontrolisati broj skenera paralelno, ali je bolje ne (nmap već ima automatsku kontrolu na osnovu stanja mreže): --min-parallelism <numprobes>; --max-parallelism <numprobes>
Može se promeniti rtt timeout, ali obično nije potrebno: --min-rtt-timeout <vreme>, --max-rtt-timeout <vreme>, --initial-rtt-timeout <vreme>
Može se promeniti broj pokušaja:--max-retries <numtries>
Može se promeniti vreme skeniranja hosta: --host-timeout <vreme>
Može se promeniti vreme između svake probe da ide sporije: --scan-delay <vreme>; --max-scan-delay <vreme>
Može se promeniti broj paketa po sekundi: --min-rate <broj>; --max-rate <broj>
Mnogi portovi dugo traju da odgovore jer su filtrirani ili zatvoreni, ako su nam važni samo otvoreni, možemo biti brži sa: --defeat-rst-ratelimit
Za definisanje agresivnosti nmap-a: -T paranoid|sneaky|polite|normal|aggressive|insane
-T (0-1)
-T0 --> Skenira se samo 1 port odjednom i čeka 5min do sledećeg
-T1 i T2 --> Veoma slični ali čekaju samo 15 i 0,4sek između svake probe
-T3 --> Podrazumevano ponašanje, uključuje paralelno
-T4 --> --max-rtt-timeout 1250ms --min-rtt-timeout 100ms --initial-rtt-timeout 500ms --max-retries 6 --max-scan-delay 10ms
-T5 --> --max-rtt-timeout 300ms --min-rtt-timeout 50ms --initial-rtt-timeout 250ms --max-retries 2 --host-timeout 15m --max-scan-delay 5ms
Firewall/IDS
Ne propuštaju portove i analiziraju pakete.
-f Za fragmentaciju paketa, podrazumevano ih fragmentiše na 8 bajtova nakon zaglavlja, za specificiranje tog broja koristimo ..mtu (sa ovim, ne koristiti -f), offset mora biti višekratnik od 8. Skeneri verzija i skripti ne podržavaju fragmentaciju
-D decoy1,decoy2,ME Nmap šalje skenere ali sa drugim IP adresama kao izvor, na taj način se skrivate. Ako stavite ME u listu, nmap će vas postaviti tamo, bolje je staviti 5 ili 6 ispred vas da vas potpuno zamaskira. Mogu se generisati slučajne IP adrese sa RND:<broj> Za generisanje <broj> slučajnih IP adresa. Ne rade sa detektorom verzija bez TCP konekcije. Ako ste unutar mreže, korisno je koristiti IP adrese koje su aktivne, jer će inače biti lako otkriti da ste jedini aktivan.
Za korišćenje slučajnih IP adresa: nmap-D RND: 10 Ip_cilj
-S IP Kada Nmap ne uhvati vašu IP adresu, morate je dati sa tim. Takođe se može koristiti da se stvori utisak da drugi cilj skenira.
-e <interfejs> Za izbor interfejsa
Mnogi administratori ostavljaju otvorene ulazne portove kako bi sve funkcionisalo ispravno i bilo im je lakše nego tražiti drugo rešenje. To mogu biti DNS portovi ili FTP... za pronalaženje ove ranjivosti nmap uključuje: --source-port <brojporta>;-g <brojporta> Su ekvivalentni
--data <heksadecimalni string> Za slanje heksadecimalnog teksta: --data 0xdeadbeef and --data \xCA\xFE\x09
--data-string <string> Za slanje običnog teksta: --data-string "Skeniranje sprovedeno od strane Bezbednosnih operacija, ekstenzija 7192"
--data-length <broj> Nmap šalje samo zaglavlja, ovim postižemo da doda određeni broj dodatnih bajtova (koji će se generisati nasumično)
Za potpuno konfigurisanje IP paketa koristiti --ip-options
Ako želite da vidite opcije u poslatim i primljenim paketima, navedite --packet-trace. Za više informacija i primere korišćenja IP opcija sa Nmap-om, pogledajte http://seclists.org/nmap-dev/2006/q3/52.
--ttl <vrednost>
--randomize-hosts Da napad bude manje očigledan
--spoof-mac <MAC adresa, prefiks ili ime proizvođača> Za promenu MAC adrese primeri: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2, i Cisco --proxies <Lista URL-ova proxy servera odvojenih zarezom> Za korišćenje proxy servera, ponekad proxy server ne održava dovoljno otvorenih veza kao što nmap zahteva, pa je potrebno prilagoditi paralelizam: --max-parallelism
-sP Za otkrivanje hostova u mreži putem ARP-a
Mnogi administratori postavljaju pravilo u firewall-u koje dozvoljava prolaz svih paketa koji dolaze sa određenog porta (kao što su 20, 53 i 67), možemo reći nmap-u da šalje naše pakete sa tih portova: nmap --source-port 53 IP
Izlazi
-oN file Normalan izlaz
-oX file XML izlaz
-oS file Izlaz za skriptere
-oG file Grepable izlaz
-oA file Svi osim -oS
-v level nivo verbose
-d level debugovanje
--reason Razlog hosta i stanja
--stats-every time Svaki put kada protekne to vreme, prikazuje nam kako ide
--packet-trace Za praćenje paketa koji se šalju, mogu se specificirati filteri kao što su: --version-trace ili --script-trace
--open prikazuje otvorene, otvorene|filtrirane i ne filtrirane
--resume file Pravi rezime
Razno
-6 Dozvoljava ipv6
-A isto što i -O -sV -sC --traceroute
Vreme izvršavanja
Dok nmap radi, možemo menjati opcije:
v / V Povećajte / smanjite nivo verbose
d / D Povećajte / smanjite nivo debugovanja
p / P Uključite / isključite praćenje paketa
? Prikazuje pomoćni ekran za interakciju u toku izvršavanja
Vulscan
Skripta nmap-a koja proverava verzije servisa dobijene iz offline baze podataka (koju preuzima sa drugih veoma važnih izvora) i vraća moguće ranjivosti
Baze podataka koje koristi su:
Scipvuldb.csv | http://www.scip.ch/en/?vuldb
Cve.csv | http://cve.mitre.org
Osvdb.csv | http://www.osvdb.org
Securityfocus.csv | http://www.securityfocus.com/bid/
Securitytracker.csv | http://www.securitytracker.com
Xforce.csv | http://xforce.iss.net
Exploitdb.csv | http://www.exploit-db.com
Openvas.csv | http://www.openvas.org
Za preuzimanje i instaliranje u Nmap folder:
wget http://www.computec.ch/projekte/vulscan/download/nmap_nse_vulscan-2.0.tar.gz && tar -czvf nmap_nse_vulscan-2.0.tar.gz vulscan/ && sudo cp -r vulscan/ /usr/share/nmap/scripts/
Takođe je potrebno preuzeti pakete baza podataka i dodati ih u /usr/share/nmap/scripts/vulscan/
Korišćenje:
Za korišćenje svih: sudo nmap -sV --script=vulscan HOST_KOJI_SE_SKENIRA
Za korišćenje određene baze podataka: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv HOST_KOJI_SE_SKENIRA
Povećanje brzine skeniranja servisa u Nmap-u x16
Prema ovom postu možete ubrzati analizu servisa u nmap-u tako što ćete promeniti sve vrednosti totalwaitms
u /usr/share/nmap/nmap-service-probes
na 300 i tcpwrappedms
na 200.
Osim toga, sonde koje nemaju posebno definisanu vrednost servicewaitms
koriste podrazumevanu vrednost 5000
. Stoga, možemo dodati vrednosti svakoj sondi ili možemo kompajlirati nmap sami i promeniti podrazumevanu vrednost u service_scan.h.
Ako ne želite uopšte da menjate vrednosti totalwaitms
i tcpwrappedms
u fajlu /usr/share/nmap/nmap-service-probes
, možete izmeniti kod za parsiranje tako da se ove vrednosti u fajlu nmap-service-probes
potpuno ignorišu.
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2Fpentest.eu%2FRENDER_WebSec_10fps_21sec_9MB_29042024.gif&width=768&dpr=4&quality=100&sign=bc0743d1&sv=1)
Last updated