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
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 analizira taj broj najpopularnijih portova (od 1 do 65,335). Proverava portove nasumičnim redosledom; da biste to sprečili, koristite -r. Takođe možemo odabrati specifične portove: 20-30,80,443,1024- (potonje znači da tražimo od 1024 nadalje). Takođe možemo grupisati portove po protokolima: U:53,T:21-25,80,139,S:9. Takođe možemo odabrati opseg unutar popularnih portova Nmap-a: -p [-1024] analizira do porta 1024 iz onih uključenih u nmap-services. --port-ratio Analizira najčešće portove unutar odnosa između 0 i 1

-sV Skeniranje verzija, intenzitet se može regulisati od 0 do 9, podrazumevano je 7.

--version-intensity Reguliramo intenzitet, tako da što je niži, samo će pokrenuti najverovatnije probe, ali ne sve. Ovime možemo značajno skratiti vreme skeniranja UDP-a

-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 ||||all[,...]

--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 ; --max-hostgroup (Prilagodite veličine paralelnih skeniranja)

Možete kontrolisati broj paralelnih skenera, ali je bolje ne (Nmap već uključuje automatsku kontrolu zasnovanu na statusu mreže): --min-parallelism ; --max-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 ; --max-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 generišete nasumičnih IP adresa. Ne rade sa TCP detektorima verzija bez veze. Ako ste unutar mreže, zanimljivo je koristiti aktivne IP adrese, jer će inače biti veoma lako shvatiti da ste jedini aktivni.

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 Da odaberete interfejs

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 ;-g Oni su ekvivalentni

--data Da pošaljete heksadecimalni tekst: --data 0xdeadbeef i --data \xCA\xFE\x09

--data-string Da pošaljete normalan tekst: --data-string "Skeniranje sprovodi Security Ops, ekstenzija 7192"

--data-length Nmap šalje samo zaglavlja, sa ovim postižemo dodavanje broja više bajtova (koji će biti generisani nasumično)

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 Da koristite proksije, ponekad proksi ne održava onoliko otvorenih veza koliko Nmap želi, pa bi paralelizam trebalo modifikovati: --max-parallelism

-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:

  1. Scipvuldb.csv | http://www.scip.ch/en/?vuldb
  2. Cve.csv | http://cve.mitre.org
  3. Osvdb.csv | http://www.osvdb.org
  4. Securityfocus.csv | http://www.securityfocus.com/bid/
  5. Securitytracker.csv | http://www.securitytracker.com
  6. Xforce.csv | http://xforce.iss.net
  7. Exploitdb.csv | http://www.exploit-db.com
  8. 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