Nmap Samevat (ESP)
Reading time: 15 minutes
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
Parameters
IPs om te skandeer
<ip>,<net/mask>
: Dui die ips direk aan-iL <ips_file>
: list_IPs-iR <number>
: Aantal lukrake Ips, jy kan moontlike Ips uitsluit met--exclude <Ips>
of--excludefile <file>
.
Toerusting ontdekking
Standaard begin Nmap 'n ontdekking fase wat bestaan uit: -PA80 -PS443 -PE -PP
-sL
: Dit is nie indringend nie, dit lys die teikens wat DNS versoeke 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 weggegooi.-PR
: Ping ARP. Dit word standaard gebruik wanneer dit rekenaars in ons netwerk ontleed, 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 (waarop 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 na poorte gestuur wat verwag word om gesluit te wees. Sommige firewalls kontroleer slegs TCP verbindings. As dit gesluit is, word dit met poort onbereikbaar beantwoord, as dit met 'n ander icmp beantwoord word of nie beantwoord 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
Poort skandering tegnieke
-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(reply), gesluit(poort onbereikbaar), gefiltreer (ander ICMP), oop/gefiltreer (niks). In die geval van oop/gefiltreer, stuur -sV talle versoeke om enige van die weergawes wat nmap ondersteun te ontdek en kan die werklike toestand opspoor. Dit verhoog die tyd baie.-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 lags het nie, moet antwoordgee: oop/gefiltreer(niks), gesluit(RST), gefiltreer (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 ontdek, om te weet of die poorte gefiltreer is of nie. Die -sW onderskei wel tussen oop/gesluit aangesien die oop een met 'n ander vensterwaarde antwoordgee: oop (RST met venster anders as 0), gesluit (RST venster = 0), gefiltreer (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 sou die pakkette verwerp, maar die firewalls kan iets antwoordgee, dit word gebruik om firewalls te ontdek.-sZ
: "Weird" SCTP skandeerder, wanneer probes met koekie echo fragmente gestuur word, moet hulle weggegooi word as oop of met ABORT geantwoord word as gesluit. Dit kan deur firewalls gaan wat init nie deurgaan nie, die slegte ding is dat dit nie tussen gefiltreer 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, gefiltreer, as niks aankom, oop|gefiltreer.-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 toe om dit te doen nie en daarom is dit van min praktiese nut.
Fokus Analise
-p: Gebruik om poorte aan te dui om te skandeer. Om al 65,335 poorte te kies: -p- of -p all. Nmap het 'n interne klassifikasie gebaseer op gewildheid. Standaard gebruik dit die top 1000 poorte. Met -F (vinnige skandering) analiseer dit die top 100. Met --top-ports
-sV Weergaweskandering, intensiteit kan gereguleer word van 0 tot 9, standaard is 7.
--version-intensity
-O OS opsporing
--osscan-limit Vir behoorlike gasheer skandering, is ten minste een oop poort en een geslote poort nodig. As hierdie voorwaarde nie nagekom word nie en ons het dit gestel, sal dit nie OS voorspelling probeer nie (bespaar tyd)
--osscan-guess Wanneer OS opsporing nie perfek is nie, maak dit dit moeiliker om te probeer
Skripte
--script
Om standaard skripte te gebruik, gebruik -sC of --script=default
Beskikbare tipes is: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, en vuln
- Auth: voer alle beskikbare autentikasieskripte uit
- Default: voer basiese standaard hulpmiddelskripte uit
- Discovery: haal inligting van die teiken of slagoffer
- External: skrip vir die gebruik van eksterne hulpbronne
- Intrusive: gebruik skripte wat as indringend beskou word vir die slagoffer of teiken
- Malware: kontroleer vir verbindings wat deur kwaadwillige kode of agterdeure geopen is
- Safe: voer nie-indringende skripte uit
- Vuln: ontdek die bekendste kwesbaarhede
- All: voer absoluut alle beskikbare NSE uitbreiding skripte uit
Om skripte te soek:
nmap --script-help="http-*" -> Diegene wat met http- begin
nmap --script-help="not intrusive" -> Almal behalwe dié
nmap --script-help="default or safe" -> Diegene in een of albei
nmap --script-help="default and safe" --> Diegene in albei
nmap --script-help="(default or safe or intrusive) and not http-*"
--script-args
--script-args-file
--script-help
--script-trace ---> Verskaf inligting oor hoe die skrip vorder
--script-updatedb
Om 'n skrip te gebruik, tik eenvoudig: nmap --script Script_Name target --> Wanneer die skrip gebruik word, sal beide die skrip en skandeerder uitvoer, so skandeerder opsies kan ook bygevoeg word. Ons kan "safe=1" byvoeg om slegs veilige te uitvoer.
Tyd Beheer
Nmap kan tyd in sekondes, minute, ms aanpas: --host-timeout arguments 900000ms, 900, 900s, en 15m doen almal dieselfde ding.
Nmap verdeel die totale aantal gashere om te skandeer in groepe en analiseer hierdie groepe in blokke, so dit beweeg nie na die volgende blok totdat almal geanaliseer is nie (en die gebruiker ontvang geen opdaterings totdat die blok geanaliseer is nie). Op hierdie manier is dit meer optimaal vir Nmap om groot groepe te gebruik. Standaard in klas C, gebruik dit 256.
Dit kan verander word met --min-hostgroup
Jy kan die aantal parallel skandeerders beheer, maar dit is beter om nie te doen nie (Nmap inkorporeer reeds outomatiese beheer gebaseer op netwerkstatus): --min-parallelism
Ons kan die RTT tydsduur aanpas, maar dit is gewoonlik nie nodig nie: --min-rtt-timeout , --max-rtt-timeout , --initial-rtt-timeout
Ons kan die aantal pogings aanpas: --max-retries _
Ons kan die skandering tyd van 'n gasheer aanpas: --host-timeout
Ons kan die tyd tussen elke toets aanpas om dit te vertraag: --scan-delay ; --max-scan-delay
Ons kan die aantal pakkette per sekonde aanpas: --min-rate
Baie poorte neem 'n lang tyd om te antwoord wanneer gefiltreer of gesluit. As ons slegs in oop poorte belangstel, 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 --> Skandeer slegs 1 poort op 'n slag en wag 5min totdat die volgende
-T1 en T2 --> Baie soortgelyk, maar wag slegs 15 en 0.4sec onderskeidelik tussen elke toets
-T3 --> Standaard werking, sluit parallel skandering in
-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
Hulle laat nie toegang tot poorte toe nie en analiseer pakkette.
-f Om pakkette te fragmenter, standaard fragmenter dit in 8bytes na die kop, om daardie grootte aan te dui gebruik ons ..mtu (met dit, moenie -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 hulle jou. As jy ME in die lys plaas, sal Nmap jou daar plaas, beter om 5 of 6 voor jou te plaas om jou heeltemal te maskeer. Lukrake IPs kan gegenereer word met RND:
Om lukrake IPs te gebruik: nmap -D RND:10 Target_IP
-S IP Vir wanneer Nmap nie jou IP adres vang nie, moet jy dit hiermee gee. Dit dien ook om hulle te laat dink 'n ander teiken skandeer hulle.
-e
Baie administrateurs laat toegangspoorte oop vir alles om korrek te werk en dit is makliker vir hulle as om 'n ander oplossing te vind. Hierdie kan DNS poorte of FTP poorte wees... om hierdie kwesbaarheid te vind, inkorporeer Nmap: --source-port
--data
--data-string
--data-length
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
--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 oop verbindings soos Nmap wil nie, so parallelisme moet aangepas word: --max-parallelism
-sP Om gashere in ons netwerk deur ARP te ontdek
Baie administrateurs skep 'n firewall reël wat alle pakkette wat van 'n spesifieke poort kom, toelaat om deur te gaan (soos 20,53 en 67), ons kan Nmap sê om ons pakkette van hierdie poorte te stuur: nmap --source-port 53 IP
Uitsette
-oN file Normale uitset
-oX file XML uitset
-oS file Skrip kiddies uitset
-oG file Greppable uitset
-oA file Alles behalwe -oS
-v level verbositeit
-d level debugging
--reason Waarom van gasheer en toestand
--stats-every time Elke keer wat ons vertel hoe dit gaan
--packet-trace Om te sien watter pakkette uitgaan, filters kan gespesifiseer word soos: --version-trace of --script-trace
--open wys oop, oop|gefiltreer en ongefiltreer
--resume file Verskaf 'n opsomming
Verskeie
-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 / verlaag die verbositeit vlak
d / D Verhoog / verlaag die debugging vlak
p / P Skakel pakket sporing aan / af
? Druk 'n tydsverloop interaksie hulp skerm
Vulscan
Nmap skrip wat kyk na weergawes van dienste verkry in 'n aflyn databasis (afgelaai van ander baie belangrike) en teruggee moontlike kwesbaarhede
Die DBs 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 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/
Jy sal ook die DB pakkette moet aflaai en byvoeg tot /usr/share/nmap/scripts/vulscan/
Gebruik:
Om alles te gebruik: sudo nmap -sV --script=vulscan HOST_TO_SCAN
Om 'n spesifieke DB te gebruik: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv HOST_TO_SCAN
Versnel Nmap Diens skandering x16
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 standaard waarde van 5000
. Daarom kan ons of waardes aan elke van die probes byvoeg, of ons kan nmap onsself compileer en die standaard waarde 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.
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.