Nmap Sažetak (ESP)
Reading time: 13 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
Parametri
IP adrese za skeniranje
<ip>,<net/mask>
: Indikujte IP adrese direktno-iL <ips_file>
: list_IPs-iR <number>
: Broj nasumičnih IP adresa, možete isključiti moguće IP adrese sa--exclude <Ips>
ili--excludefile <file>
.
Otkriće opreme
Podrazumevano, Nmap pokreće fazu otkrivanja koja se sastoji od: -PA80 -PS443 -PE -PP
-sL
: Nije invazivan, navodi ciljeve praveći DNS zahteve za razrešavanje imena. Korisno je znati da li su, na primer, www.prueba.es/24 sve IP adrese naši ciljevi.-Pn
: Bez pinga. Ovo je korisno ako znate da su svi aktivni (ako ne, mogli biste izgubiti mnogo vremena, ali ova opcija takođe proizvodi lažne negativne rezultate govoreći da nisu aktivni), sprečava fazu otkrivanja.-sn
: Bez skeniranja portova. Nakon završetka faze izviđanja, ne skenira portove. Relativno je neprimetan i omogućava malo skeniranje mreže. Sa privilegijama šalje ACK (-PA) na 80, SYN(-PS) na 443 i echo zahtev i zahtev za vremenskom oznakom, bez privilegija uvek završava veze. Ako je cilj mreža, koristi samo ARP(-PR). Ako se koristi sa drugom opcijom, samo se paketi druge opcije odbacuju.-PR
: Ping ARP. Koristi se podrazumevano prilikom analize računara u našoj mreži, brži je od korišćenja pinga. 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 ne bi završio vezu), ako odgovori RST, port je zatvoren, a ako ne odgovori, port je nedostupan. U slučaju da nemate privilegije, automatski se koristi potpuna veza. Ako nisu dati portovi, šalje se na 80.-PA <ports>
: Kao prethodni, ali sa ACK, kombinovanjem oboje daje bolje rezultate.-PU <ports>
: Cilj je suprotan, šalju se na portove za koje se očekuje da su zatvoreni. Neki vatrozidi proveravaju samo TCP veze. Ako je zatvoren, odgovara se sa port nedostupan, ako se odgovara sa drugim icmp ili ne odgovara, ostavlja se kao odredište nedostupno.-PE, -PP, -PM
: ICMP PINGS: echo replay, vremenska oznaka i maska adrese. Pokreću se da bi se saznalo da li je cilj aktivan.-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 odgovoreno.-PO <protocols>
: Protokol se označava 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 na Protokol nedostupan ili odgovori istog protokola se šalju da bi se znalo da li je aktivan.-n
: Bez DNS-R
: DNS uvek
Tehnike skeniranja portova
-sS
: Ne završava vezu, tako da ne ostavlja trag, veoma dobro ako se može koristiti. (privilegije) To je ono što se koristi podrazumevano.-sT
: Završava vezu, tako da ostavlja trag, ali se može sigurno koristiti. Podrazumevano bez privilegija.-sU
: Sporije, za UDP. Uglavnom: DNS(53), SNMP(161,162), DHCP(67 i 68), (-sU53,161,162,67,68): otvoren (odgovor), zatvoren (port nedostupan), filtriran (drugi ICMP), otvoren/filtriran (ništa). U slučaju otvorenog/filtriranog, -sV šalje brojne zahteve da otkrije bilo koju od verzija koje nmap podržava i može otkriti stvarno stanje. Povećava vreme skeniranja.-sY
: SCTP protokol ne uspeva da uspostavi vezu, tako da nema logova, radi kao -PY-sN,-sX,-sF
: Null, Fin, Xmas, mogu proći kroz neke vatrozide i izvući informacije. Zasnovani su na činjenici da standardne mašine treba da odgovore sa RST na sve zahteve koji nemaju SYN, RST ili ACK kašnjenja: otvoren/filtriran (ništa), zatvoren (RST), filtriran (ICMP nedostupan). Nepouzdano na Windows, Cisco, BSDI i OS/400. Na unixu da.-sM
: Maimon skeniranje: Šalje FIN i ACK zastavice, koristi se za BSD, trenutno će sve vratiti kao zatvoreno.-sA, sW
: ACK i Window, koristi se za otkrivanje vatrozida, da bi se znalo da li su portovi filtrirani ili ne. -sW razlikuje između otvorenog/zatvorenog, pošto 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 rade sve mašine na ovaj način, tako da ako je sve zatvoreno, ne radi, ako je nekoliko otvorenih, radi dobro, a ako je mnogo otvorenih i malo zatvorenih, radi obrnuto.-sI
: Idle skeniranje. U slučajevima kada postoji aktivni vatrozid, ali znamo da ne filtrira za određeni IP (ili kada jednostavno želimo anonimnost) možemo koristiti zombie skener (radi za sve portove), da bismo tražili moguće zombije možemo koristiti skriptu ipidseq ili exploit auxiliary/scanner/ip/ipidseq. Ovaj skener se zasniva na IPID broju IP paketa.--badsum
: Šalje pogrešnu sumu, računari bi odbacili pakete, ali vatrozidi bi mogli odgovoriti na nešto, koristi se za otkrivanje vatrozida.-sZ
: "Čudan" SCTP skener, kada šalje probe sa fragmentima cookie echo, trebali bi biti odbijeni ako su otvoreni ili odgovoreni sa ABORT ako su zatvoreni. Može proći kroz vatrozide koje init ne može, loša stvar je što ne razlikuje između filtriranih i otvorenih.-sO
: Protokol IP skeniranje. Šalje loša i prazna zaglavlja u kojima ponekad ni protokol ne može biti razlikovan. 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, ovo se radi povezivanjem na ftp druge mašine i traženjem da pošalje datoteke na portove koje želite da skenirate sa druge mašine, prema odgovorima ćemo znati da li su otvoreni ili ne. [<user>:<password>@]<server>[:<port>] Gotovo svi ftps serveri više ne dozvoljavaju ovo i stoga je malo praktične upotrebe.
Analiza fokusa
-p: Koristi se za određivanje portova za skeniranje. Da biste odabrali svih 65,335 portova: -p- ili -p all. Nmap ima internu klasifikaciju zasnovanu na popularnosti. Podrazumevano koristi 1000 najpopularnijih portova. Sa -F (brzo skeniranje) analizira 100 najpopularnijih. Sa --top-ports
-sV Skeniranje verzija, intenzitet se može regulisati od 0 do 9, podrazumevano je 7.
--version-intensity
-O Otkrivanje operativnog sistema
--osscan-limit Za pravilno skeniranje hosta, potrebna su najmanje jedan otvoren port i jedan zatvoren port. Ako ova uslov nije ispunjen i postavili smo ovo, neće pokušati predikciju OS-a (štedi vreme)
--osscan-guess Kada otkrivanje OS-a nije savršeno, ovo ga tera da se više potrudi
Skripte
--script
Da biste koristili podrazumevane skripte, koristite -sC ili --script=default
Dostupne vrste su: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, i vuln
- Auth: izvršava sve dostupne skripte za autentifikaciju
- Default: izvršava osnovne podrazumevane skripte alata
- Discovery: preuzima informacije sa cilja ili žrtve
- External: skripta za korišćenje spoljašnjih resursa
- Intrusive: koristi skripte koje se smatraju invazivnim za žrtvu ili cilj
- Malware: proverava veze otvorene od strane zlonamernog koda ili backdoor-a
- Safe: izvršava neinvazivne skripte
- Vuln: otkriva najpoznatije ranjivosti
- All: izvršava apsolutno sve dostupne NSE ekstenzijske skripte
Da biste pretražili skripte:
nmap --script-help="http-*" -> One koje počinju sa http-
nmap --script-help="not intrusive" -> Sve osim onih
nmap --script-help="default or safe" -> One u bilo kojoj ili obe
nmap --script-help="default and safe" --> One u obe
nmap --script-help="(default or safe or intrusive) and not http-*"
--script-args
--script-args-file
--script-help
--script-trace ---> Pruža informacije o tome kako skripta napreduje
--script-updatedb
Da biste koristili skriptu, jednostavno otkucajte: nmap --script Script_Name target --> Kada koristite skriptu, i skripta i skener će se izvršiti, tako da se opcije skenera takođe mogu dodati. Možemo dodati "safe=1" da bismo izvršili samo sigurne.
Kontrola vremena
Nmap može modifikovati vreme u sekundama, minutima, ms: --host-timeout argumenti 900000ms, 900, 900s, i 15m svi rade isto.
Nmap deli ukupan broj hostova za skeniranje u grupe i analizira te grupe u blokovima, tako da ne prelazi na sledeći blok dok svi nisu analizirani (i korisnik ne prima nikakve ažuriranja dok blok nije analiziran). Na ovaj način, Nmap je optimalniji kada koristi velike grupe. Podrazumevano u klasi C, koristi 256.
Ovo se može promeniti sa --min-hostgroup
Možete kontrolisati broj paralelnih skenera, ali je bolje ne (Nmap već uključuje automatsku kontrolu zasnovanu na statusu mreže): --min-parallelism
Možemo modifikovati RTT timeout, ali obično nije potrebno: --min-rtt-timeout , --max-rtt-timeout , --initial-rtt-timeout
Možemo modifikovati broj pokušaja: --max-retries
Možemo modifikovati vreme skeniranja hosta: --host-timeout
Možemo modifikovati vreme između svakog testa da bismo ga usporili: --scan-delay ; --max-scan-delay
Možemo modifikovati broj paketa po sekundi: --min-rate
Mnogi portovi dugo reaguju kada su filtrirani ili zatvoreni. Ako nas samo zanimaju otvoreni, možemo ići brže sa: --defeat-rst-ratelimit
Da bismo definisali koliko agresivan želimo da Nmap bude: -T paranoid|sneaky|polite|normal|aggressive|insane
-T (0-1)
-T0 --> Skenira samo 1 port u isto vreme i čeka 5min do sledećeg
-T1 i T2 --> Veoma slični, ali samo čekaju 15 i 0.4sec između svakog testa
-T3 --> Podrazumevno delovanje, uključuje paralelno skeniranje
-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
Vatrozid/IDS
Ne dozvoljavaju pristup portovima i analiziraju pakete.
-f Da fragmentira pakete, podrazumevano ih fragmentira na 8 bajtova nakon zaglavlja, da bismo odredili tu veličinu koristimo ..mtu (sa ovim, ne koristite -f), offset mora biti višekratnik 8. Skenere verzija i skripte ne podržavaju fragmentaciju
-D decoy1,decoy2,ME Nmap šalje skenerе, ali sa drugim IP adresama kao poreklom, na ovaj način se skrivaju. Ako stavite ME na listu, Nmap će vas staviti tamo, bolje je staviti 5 ili 6 pre vas da biste se potpuno maskirali. Nasumične IP adrese mogu se generisati sa RND:
Da biste koristili nasumične IP adrese: nmap -D RND:10 Target_IP
-S IP Kada Nmap ne uhvati vašu IP adresu, morate je dati ovim. Takođe služi da ih natera da misle da ih drugi cilj skenira.
-e
Mnogi administratori ostavljaju ulazne portove otvorene kako bi sve radilo ispravno i lakše im je nego da pronađu drugo rešenje. Ovo mogu biti DNS portovi ili FTP portovi... da bismo pronašli ovu ranjivost, Nmap uključuje: --source-port
--data
--data-string
--data-length
Da biste potpuno konfigurisali IP paket, koristite --ip-options
Ako želite da vidite opcije u poslatim i primljenim paketima, navedite --packet-trace. Za više informacija i primera korišćenja IP opcija sa Nmap-om, pogledajte http://seclists.org/nmap-dev/2006/q3/52.
--ttl
--randomize-hosts Da napad bude manje očigledan
--spoof-mac <MAC address, prefix, or vendor name> Da promenite MAC, primeri: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2, i Cisco
--proxies
-sP Da otkrijete hostove u našoj mreži putem ARP
Mnogi administratori kreiraju pravilo vatrozida koje dozvoljava svim paketima koji dolaze sa određenog porta da prođu (kao 20,53 i 67), možemo reći Nmap-u da pošalje naše pakete sa ovih portova: nmap --source-port 53 IP
Izlazi
-oN file Normalni izlaz
-oX file XML izlaz
-oS file Izlaz za skript kidi
-oG file Greppable izlaz
-oA file Sve osim -oS
-v level verbosnost
-d level debagovanje
--reason Zašto host i stanje
--stats-every time Svaki put taj put nam govori kako ide
--packet-trace Da vidite koji paketi izlaze, mogu se navesti filteri kao: --version-trace ili --script-trace
--open prikazuje otvorene, otvorene|filtrirane i nefiltrirane
--resume file Izlazi sa rezimeom
Razno
-6 Dozvoljava IPv6
-A je isto što i -O -sV -sC --traceroute
Vreme izvođenja
Dok Nmap radi, možemo menjati opcije:
v / V Povećajte / smanjite nivo verbosnosti
d / D Povećajte / smanjite nivo debagovanja
p / P Uključite / isključite praćenje paketa
? Ispisuje ekran pomoći za interakciju u vreme izvođenja
Vulscan
Nmap skripta koja gleda verzije usluga dobijenih u offline bazi podataka (preuzetih iz drugih veoma važnih) i vraća moguće ranjivosti
DB-ovi 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
Da preuzmete i instalirate 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 bi trebalo da preuzmete DB pakete i dodate ih u /usr/share/nmap/scripts/vulscan/
Upotreba:
Da biste koristili sve: sudo nmap -sV --script=vulscan HOST_TO_SCAN
Da biste koristili specifičnu DB: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv HOST_TO_SCAN
Ubrzajte Nmap servisno skeniranje x16
Prema ovom postu možete ubrzati analizu nmap usluga modifikovanjem svih totalwaitms
vrednosti u /usr/share/nmap/nmap-service-probes
na 300 i tcpwrappedms
na 200.
Štaviše, probe koje nemaju specifično definisanu servicewaitms
koriste podrazumevanu vrednost 5000
. Stoga, možemo ili dodati vrednosti svakoj od proba, ili možemo kompilirati nmap sami i promeniti podrazumevanu vrednost u service_scan.h.
Ako ne želite da menjate vrednosti totalwaitms
i tcpwrappedms
uopšte u datoteci /usr/share/nmap/nmap-service-probes
, možete izmeniti kod za parsiranje tako da se ove vrednosti u datoteci nmap-service-probes
potpuno ignorišu.
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.