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
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 analiseer dit daardie aantal top poorte (van 1 tot 65,335). Dit kontroleer poorte in lukrake volgorde; om dit te voorkom, gebruik -r. Ons kan ook spesifieke poorte kies: 20-30,80,443,1024- (laasgenoemde beteken om van 1024 af te kyk). Ons kan ook poorte groepeer volgens protokolle: U:53,T:21-25,80,139,S:9. Ons kan ook 'n reeks binne Nmap se gewilde poorte kies: -p [-1024] analiseer tot poort 1024 van diegene ingesluit in nmap-services. --port-ratio Analiseer die mees algemene poorte binne 'n verhouding tussen 0 en 1

-sV Weergaweskandering, intensiteit kan gereguleer word van 0 tot 9, standaard is 7.

--version-intensity Ons reguleer die intensiteit, sodat hoe laer dit is, dit slegs die mees waarskynlike probes sal loods, maar nie almal nie. Hiermee kan ons die UDP skandering tyd aansienlik verkort

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

--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 ; --max-hostgroup (Pas parallel skandeergroep groottes aan)

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 ; --max-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 ; --max-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 van lukrake IPs te genereer. Hulle werk nie met TCP weergawe detektore sonder verbinding nie. As jy binne 'n netwerk is, is jy geïnteresseerd om aktiewe IPs te gebruik, aangesien dit anders baie maklik sal wees om uit te figure dat jy die enigste aktiewe een is.

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 Om die interface te kies

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 ;-g Hulle is ekwivalent

--data Om hexadesimale teks te stuur: --data 0xdeadbeef en --data \xCA\xFE\x09

--data-string Om normale teks te stuur: --data-string "Skandering uitgevoer deur Veiligheid Ops, uitbreiding 7192"

--data-length Nmap stuur slegs koppe, met dit bereik ons om 'n aantal meer bytes by te voeg (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

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

  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

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