Nmap Summary (ESP)

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24

Parametri

IP adrese za skeniranje

  • <ip>,<net/mask>: Označava IP adrese direktno

  • -iL <ips_file>: lista_IP-ova

  • -iR <broj>: Broj slučajno odabranih IP adresa, možete isključiti moguće IP adrese sa --isključi <IP adrese> ili --isključifajl <fajl>.

Otkrivanje opreme

Podrazumevano, Nmap pokreće fazu otkrivanja koja se sastoji od: -PA80 -PS443 -PE -PP

  • -sL: Nije invazivan, nabraja ciljeve praveći DNS zahteve za rešavanje imena. Korisno je znati da li su svi IP-ovi na primer www.prueba.es/24 naši ciljevi.

  • -Pn: Bez pinga. Ovo je korisno ako znate da su svi aktivni (ako ne, mogli biste izgubiti puno vremena, ali ova opcija takođe daje lažne negativne rezultate tvrdeć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 mali skeniranje mreže. 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 konekcije. Ako je cilj 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 --pošalji-ip.

  • -PS <portovi>: Šalje SYN pakete na koje ako odgovori SYN/ACK, port je otvoren (ako odgovori sa RST kako bi prekinuo konekciju), ako odgovori RST, port je zatvoren, a ako ne odgovori, nedostupan je. U slučaju nedostatka privilegija, automatski se koristi ukupna konekcija. Ako nisu navedeni portovi, šalje se na 80.

  • -PA <portovi>: Kao prethodni, ali sa ACK, kombinovanje oba daje bolje rezultate.

  • -PU <portovi>: Cilj je suprotan, šalju se na portove za koje se očekuje da su zatvoreni. Neki firewalli proveravaju samo TCP konekcije. Ako je zatvoren, odgovara se sa portom nedostupnim, ako se odgovori drugim icmp-om ili ne odgovori, ostaje kao destinacija nedostupna.

  • -PE, -PP, -PM : ICMP PING-ovi: eho odgovor, vremenski pečat i maska adrese. Pokreću se kako bi saznali da li je cilj aktivan.

  • -PY<portovi>: Š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 <protokoli>: 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 šalje se samo IP zaglavlje. Svrha ovoga je da zbog deformacije zaglavlja, odgovori na nedostupan protokol ili odgovori istog protokola se šalju kako bi se saznalo da li je aktivan.

  • -n: Bez DNS-a

  • -R: Uvek DNS

Tehnike skeniranja portova

  • -sS: Ne završava konekciju pa ne ostavlja trag, veoma dobro ako se može koristiti (privilegije). Ovo je podrazumevano korišćeno.

  • -sT: Završava konekciju, 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(port nedostupan), filtriran (drugi ICMP), otvoren/filtriran (ništa). U slučaju otvoren/filtriran, -sV šalje brojne zahteve kako bi otkrio bilo koju od podržanih verzija koje nmap podržava i može otkriti pravo stanje. Značajno povećava vreme.

  • -sY: SCTP protokol ne uspeva da uspostavi konekciju, 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 standardno usklađene mašine treba 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 skeniranje: Šalje FIN i ACK oznake, korišćeno za BSD, trenutno će sve vratiti kao zatvoreno.

  • -sA, sW: ACK i Prozor, koristi se za otkrivanje firewalla, da bi se saznalo da li su portovi filtrirani ili ne. -sW razlikuje otvorene/zatvorene 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 neki zatvoreni, radi obrnuto.

  • -sI: Idle skeniranje. 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), za pronalaženje mogućih zombija možemo koristiti skriptu ipidseq ili eksploataciju pomoćni/skener/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što, koristi se za otkrivanje firewalla.

  • -sZ: "Čudan" SCTP skener, prilikom slanja proba sa fragmentima cookie eha, trebali bi biti odbačeni ako su otvoreni ili odgovoreni sa ABORT ako su zatvoreni. Može proći kroz firewalle kroz koje init ne može proći, loša strana je što ne razlikuje između filtriranih i otvorenih.

  • -sO: Skeniranje protokola Ip. Šalje loša i prazna zaglavlja u kojima se ponekad 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. [<korisnik>:<šifra>@]<server>[:<port>] Skoro svi ftp serveri više ne dozvoljavaju ovo i stoga je od malo praktične koristi.

Analiza portova

-p: Koristi se za određivanje portova za skeniranje. Za odabir svih 65335: -p- ili -p sve. Nmap ima internu klasifikaciju prema popularnosti. Podrazumevano koristi prvih 1000. Sa -F (brzo skeniranje) analizira prvih 100. Sa --top-ports <broj> Analizira taj broj glavnih portova (od 1 do 65335). Proverava portove u slučajnom redosledu, da se to ne bi dogodilo -r. Takođe možemo odabrati portove: 20-30,80,443,1024- Ovo poslednje znači da gleda portove 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 nmap portova: -p [-1024] analizira do 1024 uključenih u nmap-servise. --port-ratio <ratio> Analizira najčešće korištene 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.

--intenzitet-verzije <broj> Reguliše intenzitet, tako da što je niži, samo će poslati najverovatnije sonde, ali ne sve. Sa ovim možemo značajno skratiti vreme skeniranja UDP

-O Detekcija OS-a

--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će pokušati predvideti OS (štedi vreme) --osscan-guess Када детекција оперативног система није савршена, ово наставља са више напора

Сценарији

--script <filename>|<category>|<directory>|<expression>[,...]

За коришћење подразумеваних, довољно је користити -sC или --script=default

Врсте укључују: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, and vuln

  • Auth: извршава све доступне сценарије за аутентификацију

  • Default: извршава основне подразумеване сценарије алатке

  • Discovery: прикупља информације о мети или жртви

  • External: сценариј за коришћење спољних ресурса

  • Intrusive: користи сценарије који се сматрају интрузивним за жртву или мету

  • Malware: проверава да ли постоје отворене везе од злонамерних кодова или задњих врата

  • Safe: извршава сценарије који нису интрузивни

  • Vuln: открива најпознатије ранљивости

  • All: извршава све сценарије са NSE екстензијом

За претрагу сценарија:

nmap --script-help="http-*" -> Они који почињу са http-

nmap --script-help="not intrusive" -> Сви осим тих

nmap --script-help="default or safe" -> Они који су у једном или другом или оба

nmap --script-help="default and safe" --> Они који су у оба

nmap --script-help="(default or safe or intrusive) and not http-*"

--script-args <n1>=<v1>,<n2>={<n3>=<v3>},<n4>={<v4>,<v5>}

--script-args-file <filename>

--script-help <filename>|<category>|<directory>|<expression>|all[,...]

--script-trace ---> Даје информације о току сценарија

--script-updatedb

За коришћење сценарија само треба унети: namp --script Име_сценарија циљ --> Уношењем сценарија извршаваће се и сценариј и скенер, тако да се могу додати опције скенера, можемо додати “safe=1” да би се извршавали само безбедни сценарији.

Контрола времена

Nmap може модификовати време у секундама, минутама, ms: --host-timeout arguments 900000ms, 900, 900s, and 15m сви раде исту ствар.

Nmap дели укупан број хостова за скенирање у групе и анализира те групе у блоковима тако да док се сви не анализирају, не прелази на следећи блок (и корисник такође не добија никакво ажурирање док се блок не анализира) на овај начин, за Nmap је оптималније користити велике групе. Подразумевано за класу C користи 256.

Може се променити са**--min-hostgroup** <numhosts>; --max-hostgroup <numhosts> (Прилагодите паралелне величине група скенирања)

Може се контролисати број паралелних скенера, али је боље да не (nmpa већ има аутоматску контролу на основу стања мреже): --min-parallelism <numprobes>; --max-parallelism <numprobes>

Можемо променити rtt тајмаут, али обично није потребно: --min-rtt-timeout <time>, --max-rtt-timeout <time>, --initial-rtt-timeout <time>

Можемо променити број покушаја:--max-retries <numtries>

Можемо променити време скенирања хоста: --host-timeout <time>

Можемо променити време између сваког теста да буде спорије: --scan-delay <time>; --max-scan-delay <time>

Можемо променити број пакета по секунди: --min-rate <number>; --max-rate <number>

Многи портови требају дуго да одговоре јер су филтрирани или затворени, ако нас занимају само отворени, можемо брже са: --defeat-rst-ratelimit

За дефинисање агресивности нмап-а: -T paranoid|sneaky|polite|normal|aggressive|insane

-T (0-1)

-T0 --> Скенира се само 1 порт одједном и чека се 5мин до следећег

-T1 и T2 --> Врло слични али чекају само 15 и 0,4сек између сваког теста

-T3 --> Подразумевано функционисање, укључује паралелно

-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

Заштитни зид/IDS

Не дозвољавају пролазак портова и анализирају пакете.

-f За фрагментацију пакета, подразумевано их фрагментише на 8 бајтова након заглавља, за навођење величине користимо ..mtu (с тим, не користити -f), офсет треба бити вишеструко од 8. Скенери верзија и сценарији не подржавају фрагментацију

-D decoy1,decoy2,ME Nmap шаље скенере али са другим IP адресама као извор, на тај начин се сакривате. Ако ставите ME на листу, nmap ће вас ставити тамо, боље је ставити 5 или 6 испред вас да бисте се потпуно маскирали. Могу се генерисати случајне IP адресе са RND:<број> За генерисање <број> случајних IP адреса. Не раде са детектором верзија без TCP везе. Ако сте унутар мреже, боље је користити активне IP адресе, јер ће иначе бити веома лако открити да сте једина активна.

За коришћење случајних IP адреса: nmap-D RND: 10 Ip_циљ

-S IP Када Nmap не примети вашу IP адресу, морате јој је дати на овај начин. Такође служи да направи да изгледа као да постоји други циљ који их скенира.

-e <interface> За избор интерфејса

Многи администратори остављају отворене улазне портове како би све функционисало исправно и било им је једноставније него тражити друго решење. Ови портови могу бити DNS портови или FTP... за претрагу ове ранљивости nmap укључује: --source-port <portnumber>;-g <portnumber> Једнаки су

--data <hex string> За слање хексадецималног текста: --data 0xdeadbeef and --data \xCA\xFE\x09

--data-string <string> За слање обичног текста: --data-string "Scan conducted by Security Ops, extension 7192"

--data-length <number> Nmap шаље само заглавља, са овим постижемо да дода одређени број бајтова (који ће се генерисати насумично)

За потпуно конфигурисање IP пакета користити --ip-options

Ако желите видети опције у послатим и примљеним пакетима, наведите --packet-trace. За више информација и примера коришћења IP опција са Nmap, видети http://seclists.org/nmap-dev/2006/q3/52.

--ttl <value>

--randomize-hosts Да би напад био мање очигледан

--spoof-mac <MAC address, prefix, or vendor name> За промену MAC адресе примери: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2, and Cisco --proxies <Zarezom odvojeni spisak URL-ova proxy servera> Za korišćenje proxy servera, ponekad proxy server ne održava toliko otvorenih veza koliko nmap želi, pa bi trebalo prilagoditi paralelizam: --max-parallelism

-sP Za otkrivanje hostova u mreži u kojoj se nalazimo 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 skriptove

-oG file Grepable izlaz

-oA file Svi osim -oS

-v level nivo detaljnosti

-d level debagovanje

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

d / D Povećajte / smanjite nivo debagovanja

p / P Uključite / isključite praćenje paketa

? Prikazuje ekran pomoći 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) i vraća moguće ranjivosti

Baze podataka koje koristi su:

  1. Securitytracker.csv | http://www.securitytracker.com

Za preuzimanje i instaliranje u Nmap folderu:

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 treba 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_A_ESCANEAR

Za korišćenje određene baze podataka: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv HOST_A_ESCANEAR

Ubrzanje Nmap skeniranja servisa x16

Prema ovom postu možete ubrzati analizu servisa nmap-a 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 menjati 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.

Naučite hakovanje AWS-a od početka do naprednog nivoa sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated