Nmap Summary (ESP)
Last updated
Last updated
Učite i vežbajte AWS Hacking:HackTricks Obuka AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Obuka GCP Red Team Expert (GRTE)
<ip>,<net/mask>
: Direktno označava IP adrese
-iL <ips_file>
: lista_IP
-iR <number>
: Broj nasumičnih IP adresa, možete isključiti moguće IP adrese sa --exclude <Ips>
ili --excludefile <file>
.
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 PINGOVI: echo odgovor, 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, odgovaraju se Protokol nedostupan ili odgovori istog protokola da bi se saznalo da li je aktivan.
-n
: Bez DNS
-R
: DNS uvek
-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 se vratiti sve kao zatvorene.
-sA, sW
: ACK i Window, koristi se za otkrivanje vatrozida, da bi se saznalo da li su portovi filtrirani ili ne. -sW razlikuje između otvorenog/zatvorenog, 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 rade sve mašine na ovaj način, tako da ako su svi zatvoreni, 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 na 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 ne može biti ni protokol 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, to 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.
-p: Služi za davanje portova za skeniranje. Da biste odabrali 65335: -p- ili -p all. Nmap ima internu klasifikaciju prema popularnosti. Podrazumevano koristi 1000 glavnih. Sa -F (brzo skeniranje) analizira 100 glavnih. Sa --top-ports <broj> analizira taj broj glavnih (od 1 do 65335). Proverava portove nasumičnim redosledom, da to ne bi bilo tako, koristite -r. Takođe možemo odabrati portove: 20-30,80,443,1024- Ovo poslednje znači da gleda unapred od 1024. 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 1024 uključenih u nmap-services. --port-ratio <ratio> Analizira najčešće portove koji su u odnosu koji mora biti između 0 i 1.
-sV Skeniranje verzije, može se regulisati intenzitet od 0 do 9, podrazumevano 7.
--version-intensity <broj> Reguliramo intenzitet, tako da što je niži samo će pokrenuti najverovatnije sonde, ali ne sve. Sa ovim možemo značajno skratiti vreme UDP skeniranja.
-O Otkrivanje OS-a.
--osscan-limit Da bi se dobro skenirao host, potrebno je da postoji barem 1 otvoren port i jedan zatvoren, ako se ova uslov ne ispuni i stavili smo ovo, ne pokušava da predvidi OS (štedi vreme).
--osscan-guess Kada otkrivanje OS-a nije savršeno, ovo ga tera da se više trudi.
Skripte
--script <filename>|<category>|<directory>|<expression>[,...]
Da biste koristili podrazumevane, dovoljno je sa -sC ili --script=default.
Tipovi 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 skripte podrazumevano alata.
Discovery: prikuplja informacije o cilju ili žrtvi.
External: skripta za korišćenje spoljašnjih resursa.
Intrusive: koristi skripte koje se smatraju intruzivnim za žrtvu ili cilj.
Malware: proverava da li postoje otvorene veze od strane malicioznih kodova ili backdoors (stražnja vrata).
Safe: izvršava skripte koje nisu intruzivne.
Vuln: otkriva najpoznatije ranjivosti.
All: izvršava apsolutno sve skripte sa ekstenzijom NSE dostupne.
Da biste pretražili skripte:
nmap --script-help="http-*" -> Oni koji počinju sa http-
nmap --script-help="not intrusive" -> Svi osim tih
nmap --script-help="default or safe" -> Oni koji su u jednom ili drugom ili u oba
nmap --script-help="default and safe" --> Oni koji su u oba
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 ---> Daje informacije o tome kako ide skripta.
--script-updatedb
Da biste koristili skriptu, samo treba da stavite: namp --script Ime_skripte cilj --> Kada stavite skriptu, izvršiće se i skripta i skener, tako da se takođe mogu staviti opcije skenera, možemo dodati “safe=1” da bi se izvršili samo oni koji su sigurni.
Kontrola vremena
Nmap može modifikovati vreme u sekundama, minutima, ms: --host-timeout arguments 900000ms, 900, 900s, i 15m sve rade istu stvar.
Nmap deli ukupan broj hostova za skeniranje u grupe i analizira te grupe u blokovima tako da dok svi nisu analizirani, ne prelazi na sledeći blok (i korisnik takođe ne prima nikakvu ažuriranje dok se blok ne analizira) na ovaj način, optimalnije je za nmap koristiti velike grupe. Podrazumevano u klasi C koristi 256.
Može se promeniti sa --min-hostgroup <numhosts>; --max-hostgroup <numhosts> (Prilagodite veličine paralelnih skeniranja).
Može se kontrolisati broj skenera u paraleli, ali je bolje da se to ne radi (nmap već uključuje automatsku kontrolu na osnovu stanja mreže): --min-parallelism <numprobes>; --max-parallelism <numprobes>
Možemo modifikovati rtt timeout, ali to obično nije potrebno: --min-rtt-timeout <time>, --max-rtt-timeout <time>, --initial-rtt-timeout <time>
Možemo modifikovati broj pokušaja:--max-retries <numtries>
Možemo modifikovati vreme skeniranja hosta: --host-timeout <time>
Možemo modifikovati vreme između svake probe da ide sporije: --scan-delay <time>; --max-scan-delay <time>
Možemo modifikovati broj paketa po sekundi: --min-rate <number>; --max-rate <number>
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 --> Samo se skenira 1 port u isto vreme i čeka 5min do sledećeg.
-T1 i T2 --> Veoma slični, ali samo čekaju 15 i 0,4 sekunde respektivno između svake probe.
-T3 --> Podrazumevano funkcionisanje, 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
Vatrozid/IDS
Ne propuštaju portove 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 koristiti -f), offset mora biti višekratnik 8. Skenere verzije i skripte ne podržavaju fragmentaciju.
-D decoy1,decoy2,ME Nmap šalje skeneri, ali sa drugim IP adresama kao izvorom, na ovaj način vas skrivaju. Ako stavite ME na listu, nmap će vas postaviti tu, bolje je staviti 5 ili 6 pre vas da vas potpuno maskiraju. Mogu se generisati nasumične IP adrese sa RND:<broj> da generišu <broj> nasumičnih IP adresa. Ne rade sa detektorom verzija bez TCP veze. Ako ste unutar mreže, važno je koristiti IP adrese koje su aktivne, jer će inače biti veoma lako otkriti da ste vi jedini aktivni.
Da biste koristili nasumične IP adrese: nmap-D RND: 10 IP_cilj
-S IP Kada Nmap ne prepoznaje vašu IP adresu, morate je dati sa ovim. Takođe služi da se učini da izgleda kao da postoji drugi cilj koji ih skenira.
-e <interfejs> Da biste odabrali interfejs.
Mnogi administratori ostavljaju otvorene ulazne portove kako bi sve funkcionisalo ispravno i lakše im je nego da traže drugo rešenje. Ovo mogu biti DNS portovi ili FTP portovi... da bi se pronašla ova ranjivost, nmap uključuje: --source-port <broj porta>;-g <broj porta> Su ekvivalentni.
--data <hex string> Da pošaljete heksadecimalni tekst: --data 0xdeadbeef i --data \xCA\xFE\x09
--data-string <string> Da pošaljete normalan tekst: --data-string "Skeniranje sprovodi Security Ops, ekstenzija 7192"
--data-length <broj> Nmap šalje samo zaglavlja, sa ovim postižemo da doda još određeni broj bajtova (koji će se generisati nasumično).
Da biste potpuno konfigurisali IP paket, koristite --ip-options.
Ako želite da vidite opcije u paketima koji se šalju i primaju, 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 <vrednost>
--randomize-hosts Da bi napad bio manje očigledan.
--spoof-mac <MAC adresa, prefiks, ili naziv dobavljača> Da biste promenili MAC, primeri: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2, i Cisco.
--proxies <Lista proxy URL-ova odvojena zarezima> Da biste koristili proksije, ponekad proksi ne održava toliko otvorenih veza koliko nmap želi, pa bi trebalo modifikovati paralelizam: --max-parallelism.
-sP Da otkrijete hostove u mreži u kojoj se nalazimo putem ARP-a.
Mnogi administratori kreiraju pravilo u vatrozidu koje omogućava prolazak svih paketa koji dolaze sa određenog porta (kao što su 20,53 i 67), možemo reći nmap-u da pošalje naše pakete sa tih portova: nmap --source-port 53 IP.
Izlazi
-oN file Normalni izlaz.
-oX file XML izlaz.
-oS file Izlaz skripti.
-oG file Izlaz koji se može pretraživati.
-oA file Sve osim -oS.
-v level Verbosity.
-d level Debugging.
--reason Zašto host i stanje.
--stats-every time Svaki put u tom vremenu 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 Izvodi rezime.
Mislcelanea
-6 Omogućava ipv6.
-A isto što i -O -sV -sC --traceroute.
Vreme izvođenja
Dok nmap radi, možemo menjati opcije:
v / V Povećajte / smanjite nivo verbositeta.
d / D Povećajte / smanjite nivo debagovanja.
p / P Uključite / isključite praćenje paketa.
? Prikazuje ekran pomoći za interakciju u vreme izvođenja.
Vulscan
Nmap skripta koja proverava verzije usluga dobijenih u offline bazi podataka (koju preuzima iz drugih veoma važnih) 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
Da biste ga preuzeli i instalirali 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 preuzeti pakete iz baza podataka i dodati ih u /usr/share/nmap/scripts/vulscan/.
Upotreba:
Da biste koristili sve: sudo nmap -sV --script=vulscan HOST_A_ESCANEAR.
Da biste koristili određenu bazu podataka: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv HOST_A_ESCANEAR.
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.
Pored toga, probe koje nemaju posebno 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.
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)