Nmap Summary (ESP)
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)
<ip>,<net/mask>
: Dui die ips direk aan
-iL <ips_file>
: lys_IPs
-iR <number>
: Aantal lukrake Ips, jy kan moontlike Ips uitsluit met --exclude <Ips>
of --excludefile <file>
.
Standaard begin Nmap 'n ontdekking fase wat bestaan uit: -PA80 -PS443 -PE -PP
-sL
: Dit is nie indringend nie, dit lys die teikens deur DNS versoeke te maak om name op te los. Dit is nuttig om te weet of byvoorbeeld www.prueba.es/24 al die Ips ons teikens is.
-Pn
: Geen ping. Dit is nuttig as jy weet dat hulle almal aktief is (as nie, kan jy baie tyd verloor, maar hierdie opsie produseer ook vals negatiewe wat sê dat hulle nie aktief is nie), dit voorkom die ontdekking fase.
-sn
: Geen poort skandering. Na voltooiing van die verkenningsfase, skandeer dit nie poorte nie. Dit is relatief stil, en laat 'n klein netwerk skandering toe. Met voorregte stuur dit 'n ACK (-PA) na 80, 'n SYN(-PS) na 443 en 'n echo versoek en 'n Tydstempel versoek, sonder voorregte voltooi dit altyd verbindings. As die teiken die netwerk is, gebruik dit slegs ARP(-PR). As dit saam met 'n ander opsie gebruik word, word slegs die pakkette van die ander opsie laat val.
-PR
: Ping ARP. Dit word standaard gebruik wanneer ons rekenaars in ons netwerk analiseer, dit is vinniger as om pings te gebruik. As jy nie ARP pakkette wil gebruik nie, gebruik --send-ip
.
-PS <ports>
: Dit stuur SYN pakkette waaraan, as dit SYN/ACK antwoord, dit oop is (waaraan dit met RST antwoord gee om nie die verbinding te beëindig nie), as dit RST antwoord gee, is dit gesluit en as dit nie antwoord gee nie, is dit onbereikbaar. In die geval van nie voorregte, word 'n totale verbinding outomaties gebruik. As geen poorte gegee word nie, gooi dit dit na 80.
-PA <ports>
: Soos die vorige een, maar met ACK, die kombinasie van albei lewer beter resultate.
-PU <ports>
: Die doel is die teenoorgestelde, dit word gestuur na poorte wat verwag word om gesluit te wees. Sommige firewalls kontroleer slegs TCP verbindings. As dit gesluit is, word dit geantwoord met poort onbereikbaar, as dit geantwoord word met 'n ander icmp of nie geantwoord word nie, word dit as bestemming onbereikbaar gelaat.
-PE, -PP, -PM
: ICMP PINGS: echo replay, timestamp en addresmasker. Hulle word gestuur om uit te vind of die teiken aktief is.
-PY<ports>
: Stuur SCTP INIT probes na 80 standaard, INIT-ACK(open) of ABORT(closed) of niks of ICMP onbereikbaar(inaktief) kan geantwoord word.
-PO <protocols>
: 'n Protokol word in die koppe aangedui, standaard 1(ICMP), 2(IGMP) en 4(Encap IP). Vir ICMP, IGMP, TCP (6) en UDP (17) protokolle word die protokolkoppe gestuur, vir die res word slegs die IP-kop gestuur. Die doel hiervan is dat as gevolg van die misvorming van die koppe, Protokol onbereikbaar of antwoorde van dieselfde protokol geantwoord word om te weet of dit op is.
-n
: Geen DNS
-R
: DNS altyd
-sS
: Voltooi nie die verbinding nie, so dit laat geen spoor agter nie, baie goed as dit gebruik kan word.(voorregte) Dit is die een wat standaard gebruik word.
-sT
: Voltooi die verbinding, so dit laat 'n spoor agter, maar dit kan beslis gebruik word. Standaard sonder voorregte.
-sU
: Stadiger, vir UDP. Meestal: DNS(53), SNMP(161,162), DHCP(67 en 68), (-sU53,161,162,67,68): oop(antwoord), gesluit(poort onbereikbaar), gefilter (ander ICMP), oop/gefilter (niks). In die geval van oop/gefilter, stuur -sV talle versoeke om enige van die weergawes wat nmap ondersteun te detecteer en kan die werklike toestand opspoor. Dit verhoog die tyd aansienlik.
-sY
: SCTP protokol misluk om die verbinding te vestig, so daar is geen logs nie, werk soos -PY
-sN,-sX,-sF
: Null, Fin, Xmas, hulle kan deur sommige firewalls dring en inligting onttrek. Hulle is gebaseer op die feit dat standaard nakomingsmasjiene met RST op alle versoeke wat nie SYN, RST of ACK lag nie moet antwoordgee: oop/gefilter(niks), gesluit(RST), gefilter (ICMP onbereikbaar). Onbetroubaar op WIndows, CIsco, BSDI en OS/400. Op unix wel.
-sM
: Maimon skandering: Stuur FIN en ACK vlae, gebruik vir BSD, sal tans alles as gesluit teruggee.
-sA, sW
: ACK en Window, word gebruik om firewalls te detecteer, om te weet of die poorte gefilter is of nie. Die -sW onderskei tussen oop/gesluit aangesien die oop een met 'n ander vensterwaarde antwoordgee: oop (RST met venster anders as 0), gesluit (RST venster = 0), gefilter (ICMP onbereikbaar of niks). Nie alle rekenaars werk so nie, so as dit alles gesluit is, werk dit nie, as dit 'n paar oop is, werk dit goed, en as dit baie oop en min gesluit is, werk dit die ander kant om.
-sI
: Idle skandering. Vir die gevalle waarin daar 'n aktiewe firewall is, maar ons weet dat dit nie na 'n sekere Ip filter nie (of wanneer ons eenvoudig anonimiteit wil hê) kan ons die zombie skandeerder gebruik (dit werk vir al die poorte), om moontlike zombies te soek kan ons die skrip ipidseq of die exploit auxiliary/scanner/ip/ipidseq gebruik. Hierdie skandeerder is gebaseer op die IPID nommer van die IP pakkette.
--badsum
: Dit stuur die som verkeerd, die rekenaars sal die pakkette verwerp, maar die firewalls kan iets antwoordgee, dit word gebruik om firewalls te detecteer.
-sZ
: "Weird" SCTP skandeerder, wanneer probes met koekie echo fragmente gestuur word, moet hulle laat val word as dit oop is of geantwoord word met ABORT as dit gesluit is. Dit kan deur firewalls gaan wat init nie deurgaan nie, die slegte ding is dat dit nie tussen gefilter en oop onderskei nie.
-sO
: Protokol Ip skandering. Stuur slegte en leë koppe waarin soms nie eens die protokol onderskei kan word nie. As ICMP onbereikbaar protokol aankom, is dit gesluit, as onbereikbare poort aankom, is dit oop, as 'n ander fout aankom, gefilter, as niks aankom, oop|gefilter.
-b <server>
: FTPhost--> Dit word gebruik om 'n gasheer van 'n ander een te skandeer, dit word gedoen deur die ftp van 'n ander masjien te verbind en dit te vra om lêers na die poorte te stuur wat jy van 'n ander masjien wil skandeer, volgens die antwoorde sal ons weet of hulle oop is of nie. [<user>:<password>@]<server>[:<port>] Byna alle ftps bedieners laat jou nie meer dit doen nie en daarom is dit van min praktiese nut.
-p: Dit dien om die poorte aan te dui wat geskandeer moet word. Om die 65335 te kies: -p- of -p all. Nmap het 'n interne klassifikasie volgens sy gewildheid. Standaard gebruik dit die 1000 hoof. Met -F (vinnige skandering) analiseer dit die 100 hoof. Met --top-ports <nommer> analiseer dit daardie nommer van hoof (van 1 tot 65335). Dit kontroleer die poorte in willekeurige volgorde, om te voorkom dat dit gebeur, gebruik -r. Ons kan ook poorte kies: 20-30,80,443,1024- Dit laaste beteken dat dit vanaf 1024 moet kyk. Ons kan ook die poorte volgens protokolle groepeer: U:53,T:21-25,80,139,S:9. Ons kan ook 'n reeks binne die gewilde poorte van nmap kies: -p [-1024] analiseer tot 1024 van diegene ingesluit in nmap-services. --port-ratio <ratio> analiseer die mees algemene poorte wat 'n verhouding moet wees tussen 0 en 1.
-sV Weergaweskandering, die intensiteit kan van 0 tot 9 gereguleer word, standaard 7.
--version-intensity <nommer> Ons reguleer die intensiteit, sodat hoe laer, dit sal slegs die mees waarskynlike sondes stuur, maar nie almal nie. Hiermee kan ons die tyd van UDP skandering aansienlik verkort.
-O OS-detectie
--osscan-limit Om 'n gasheer goed te skandeer, moet daar ten minste 1 poort oop en 'n ander gesluit wees, as hierdie voorwaarde nie nagekom word nie en ons dit gesit het, probeer dit nie om OS te voorspel nie (bespaar tyd).
--osscan-guess Wanneer die OS-detectie nie perfek is nie, maak dit dat dit meer moeite doen.
Skripte
--script <filename>|<category>|<directory>|<expression>[,...]
Om die standaard te gebruik, is dit genoeg met -sC of --script=default.
Die tipes wat daar is, is van: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, en vuln.
Auth: voer al sy beskikbare scripts vir outentisering uit.
Default: voer die basiese scripts van die instrument uit.
Discovery: herwin inligting van die teiken of slagoffer.
External: script om eksterne hulpbronne te gebruik.
Intrusive: gebruik scripts wat as indringend beskou word vir die slagoffer of teiken.
Malware: kyk of daar oop verbindings is deur kwaadwillige kode of backdoors (agterdeure).
Safe: voer scripts uit wat nie indringend is nie.
Vuln: ontdek die bekendste kwesbaarhede.
All: voer absoluut al die beskikbare scripts met NSE-uitbreiding uit.
Om skripte te soek:
nmap --script-help="http-*" -> Diegene wat met http- begin.
nmap --script-help="not intrusive" -> Almal behalwe daardie.
nmap --script-help="default or safe" -> Diegene wat in een of die ander of albei is.
nmap --script-help="default and safe" --> Diegene wat in albei is.
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 ---> Gee inligting oor hoe die skrip werk.
--script-updatedb
Om 'n skrip te gebruik, moet jy net te sê: namp --script Naam_van_die_skrip teiken --> Wanneer die skrip ingevoer word, sal dit sowel die skrip as die skandeerder uitvoer, so opsies van die skandeerder kan ook ingevoer word, ons kan “safe=1” byvoeg sodat slegs die veilige een uitgevoer word.
Tydbeheer
Nmap kan die tyd in sekondes, minute, ms aanpas: --host-timeout arguments 900000ms, 900, 900s, en 15m doen alles dieselfde.
Nmap verdeel die totale aantal gashere wat geskandeer moet word in groepe en analiseer daardie groepe in blokke sodat totdat al die blokke geanaliseer is, dit nie na die volgende blok gaan nie (en die gebruiker ontvang ook geen opdatering totdat die blok geanaliseer is) op hierdie manier is dit meer optimaal vir nmap om groot groepe te gebruik. Standaard gebruik dit in klas C 256.
Dit kan verander word met --min-hostgroup <numhosts>; --max-hostgroup <numhosts> (Pas parallelle skandeergroep groottes aan).
Die aantal skandeerders in parallel kan beheer word, maar dit is beter om nie (nmap het reeds outomatiese beheer op grond van die toestand van die netwerk): --min-parallelism <numprobes>; --max-parallelism <numprobes>
Ons kan die rtt timeout aanpas, maar dit is gewoonlik nie nodig nie: --min-rtt-timeout <time>, --max-rtt-timeout <time>, --initial-rtt-timeout <time>
Ons kan die aantal pogings aanpas:--max-retries <numtries>
Ons kan die tyd van skandering van 'n gasheer aanpas: --host-timeout <time>
Ons kan die tyd tussen elke toets aanpas sodat dit stadig gaan: --scan-delay <time>; --max-scan-delay <time>
Ons kan die aantal pakkette per sekonde aanpas: --min-rate <number>; --max-rate <number>
Baie poorte neem lank om te antwoord as gevolg van gefiltreerde of geslote toestande, as ons net belangstel in die oop, kan ons vinniger gaan met: --defeat-rst-ratelimit
Om te definieer hoe aggressief ons wil hê nmap moet wees: -T paranoid|sneaky|polite|normal|aggressive|insane
-T (0-1)
-T0 --> Slegs 1 poort op 'n slag word geskandeer en daar word 5min gewag tot die volgende.
-T1 en T2 --> Baie soortgelyk, maar wag slegs 15 en 0,4 sekondes onderskeidelik tussen elke toets.
-T3 --> Standaard werking, sluit in parallel.
-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
Laat nie poorte deur nie en analiseer pakkette.
-f Om pakkette te fragmenter, standaard fragment dit in 8bytes na die kop, om daardie grootte aan te dui gebruik ons ..mtu (met dit, nie -f gebruik nie), die offset moet 'n veelvoud van 8 wees. Weergaweskandeerders en skripte ondersteun nie fragmentasie nie.
-D decoy1,decoy2,ME Nmap stuur skandeerders, maar met ander IP adresse as oorsprong, op hierdie manier verberg dit jou. As jy die ME in die lys sit, sal nmap jou daar plaas, dit is beter om 5 of 6 voor jou te plaas sodat jy heeltemal verborge is. Jy kan lukrake iPs genereer met RND:<nommer> Om <nommer> van lukrake Ips te genereer. Dit werk nie met weergawedetektore sonder TCP verbinding nie. As jy binne 'n netwerk is, is dit belangrik om Ips te gebruik wat aktief is, anders sal dit baie maklik wees om uit te vind dat jy die enigste aktiewe is.
Om lukrake Ips te gebruik: nmap-D RND: 10 Ip_teiken
-S IP Vir wanneer Nmap nie jou IP adres kan vang nie, moet jy dit met dit gee. Dit dien ook om te laat dink dat daar 'n ander teiken is wat hulle skandeer.
-e <interface> Om die interfase te kies.
Baie administrateurs laat poorte van binne oop sodat alles reg kan werk en dit is vir hulle makliker as om 'n ander oplossing te soek. Dit kan die DNS poorte of die FTP poorte wees... om hierdie kwesbaarheid te soek, sluit nmap in: --source-port <portnumber>;-g <portnumber> Is ekwivalent.
--data <hex string> Om hex teks te stuur: --data 0xdeadbeef en --data \xCA\xFE\x09
--data-string <string> Om 'n normale teks te stuur: --data-string "Scan conducted by Security Ops, extension 7192"
--data-length <number> Nmap stuur slegs koppe, met dit kan ons 'n aantal bytes meer byvoeg (wat lukraak gegenereer sal word).
Om die IP-pakket heeltemal te konfigureer, gebruik --ip-options.
As jy die opsies in pakkette wat gestuur en ontvang word wil sien, spesifiseer --packet-trace. Vir meer inligting en voorbeelde van die gebruik van IP opsies met Nmap, sien http://seclists.org/nmap-dev/2006/q3/52.
--ttl <value>
--randomize-hosts Om die aanval minder voor die hand liggend te maak.
--spoof-mac <MAC adres, voorvoegsel, of verskaffer naam> Om die mac te verander, voorbeelde: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2, en Cisco.
--proxies <Komma-geskeide lys van proxy URL's> Om proxies te gebruik, soms hou 'n proxy nie soveel verbindings oop soos nmap wil nie, so dit sal nodig wees om die parallelisme aan te pas: --max-parallelism.
-sP Om gashere in die netwerk waarin ons is deur ARP te ontdek.
Baie administrateurs skep 'n reël in die firewall wat toelaat dat alle pakkette wat van 'n spesifieke poort kom (soos 20,53 en 67) deurkom, ons kan aan nmap sê om ons pakkette vanaf daardie poorte te stuur: nmap --source-port 53 Ip.
Uitsette
-oN file Normale uitset.
-oX file XML-uitset.
-oS file Skrip kind uitset.
-oG file Grepbare uitset.
-oA file Alles behalwe -oS.
-v level verbositeit.
-d level debugin.
--reason Waarom van die gasheer en toestand.
--stats-every time Elke daardie tyd vertel ons hoe dit gaan.
--packet-trace Om te sien watter pakkette uitgaan, kan filters soos: --version-trace of --script-trace gespesifiseer word.
--open wys die oop, oop|gefilter en die nie-gefilterde.
--resume file Gee 'n opsomming.
Verskeidenheid
-6 Laat ipv6 toe.
-A is dieselfde as -O -sV -sC --traceroute.
Tyd van uitvoering
Terwyl nmap loop, kan ons opsies verander:
v / V Verhoog / verminder die verbositeit vlak.
d / D Verhoog / verminder die debug vlak.
p / P Skakel pakkie opsporing aan / af.
? Druk 'n tydsinteraksie hulp skerm.
Vulscan
Nmap skrip wat die weergawes van die dienste verkry in 'n offline databasis (wat van ander baie belangrike afgelaai word) en die moontlike kwesbaarhede teruggee.
Die DB's wat dit gebruik, is:
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
Om dit af te laai en in die Nmap-gids te installeer:
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/
Dit sal ook nodig wees om die pakkette van die DB's af te laai en dit by /usr/share/nmap/scripts/vulscan/ toe te voeg.
Gebruik:
Om almal te gebruik: sudo nmap -sV --script=vulscan HOST_A_ESCANEAR.
Om 'n spesifieke DB te gebruik: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv HOST_A_ESCANEAR.
Volgens hierdie pos kan jy die nmap diens analise versnel deur al die totalwaitms
waardes in /usr/share/nmap/nmap-service-probes
na 300 en tcpwrappedms
na 200 te verander.
Boonop gebruik probes wat nie 'n spesifiek gedefinieerde servicewaitms
het nie, 'n standaardwaarde van 5000
. Daarom kan ons of waardes aan elke van die probes byvoeg, of ons kan nmap self compileer en die standaardwaarde in service_scan.h verander.
As jy nie die waardes van totalwaitms
en tcpwrappedms
in die /usr/share/nmap/nmap-service-probes
lêer wil verander nie, kan jy die parsing kode so verander dat hierdie waardes in die nmap-service-probes
lêer heeltemal geïgnoreer word.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)