hacktricks/generic-methodologies-and-resources/pentesting-network/nmap-summary-esp.md
2024-02-11 02:07:06 +00:00

18 KiB

Nmap Opsomming (ESP)

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

``` nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24 ``` ## Parameters

IP's om te skandeer

  • <ip>,<net/mask>: Dui die IP's direk aan
  • -iL <ips_file>: lys_IPs
  • -iR <number>: Aantal lukrake IP's, jy kan moontlike IP's uitsluit met --exclude <Ips> of --excludefile <file>.

Toerusting ontdekking

Standaard lanceer Nmap 'n ontdekkingsfase wat bestaan uit: -PA80 -PS443 -PE -PP

  • -sL: Dit is nie indringend nie, dit lys die teikens deur DNS navrae te maak om name op te los. Dit is nuttig om te weet of byvoorbeeld www.prueba.es/24 al die IP's ons teikens is.
  • -Pn: Geen ping. Dit is nuttig as jy weet dat almal aktief is (as nie, kan jy baie tyd verloor, maar hierdie opsie gee ook vals negatiewe resultate deur te sê dat hulle nie aktief is nie), dit voorkom die ontdekkingsfase.
  • -sn : Geen poort skandering. Nadat die verkenningsfase voltooi is, skandeer dit nie poorte nie. Dit is relatief stil en maak 'n klein netwerk skandering moontlik. Met voorregte stuur dit 'n ACK (-PA) na 80, 'n SYN(-PS) na 443 en 'n echo versoek en 'n Timestamp 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 pakkies van die ander opsie laat val.
  • -PR: Ping ARP. Dit word standaard gebruik wanneer rekenaars in ons netwerk geanaliseer word, dit is vinniger as om pings te gebruik. As jy nie ARP-pakkies wil gebruik nie, gebruik --send-ip.
  • -PS <ports>: Dit stuur SYN-pakkies na poorte waarop as dit antwoord met SYN/ACK dit oop is (waarop dit met RST antwoord om die verbinding nie te beëindig nie), as dit met RST antwoord is dit gesluit en as dit nie antwoord nie is dit onbereikbaar. In die geval van geen voorregte word 'n totale verbinding outomaties gebruik. As geen poorte gegee word, stuur dit dit na 80.
  • -PA <ports>: Soos die vorige een, maar met ACK, deur beide te kombineer gee dit beter resultate.
  • -PU <ports>: Die doel is die teenoorgestelde, dit word gestuur na poorte wat verwag word om gesluit te wees. Sommige vuurmuure kyk slegs na TCP-verbindings. As dit gesluit is, word daar met 'n onbereikbare poort geantwoord, as daar met 'n ander ICMP geantwoord word of nie geantwoord word nie, word dit as 'n onbereikbare bestemming gelaat.
  • -PE, -PP, -PM : ICMP PINGS: echo antwoord, tydmerk en adresmasker. Dit word geloods om uit te vind of die teiken aktief is.
  • -PY<ports>: Stuur SCTP INIT sondes na 80 standaard, INIT-ACK(oop) of ABORT(gesluit) of niks of ICMP onbereikbaar(inaktief) kan geantwoord word.
  • -PO <protocols>: 'n Protokol word aangedui in die koppe, standaard 1(ICMP), 2(IGMP) en 4(Encap IP). Vir ICMP, IGMP, TCP (6) en UDP (17) protokolle word die protokol koppe 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 aktief 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 veilig 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), gefiltreer (ander ICMP), oop/gefiltreer (niks). In die geval van oop/gefiltreer, stuur -sV talle versoek om enige van die weergawes wat nmap ondersteun op te spoor en die ware toestand te bepaal. Dit verhoog die tyd aansienlik.
  • -sY: SCTP-protokol slaag nie daarin om die verbinding te vestig nie, so daar is geen logboeke nie, werk soos -PY
  • -sN,-sX,-sF: Null, Fin, Xmas, hulle kan deur sommige vuurmuure dring en inligting onttrek. Dit is gebaseer op die feit dat standaard voldoenende masjiene met RST op alle versoek wat nie SYN, RST of ACK vlae het nie moet antwoord: 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, tans sal dit alles as gesluit terugkeer.
  • -sA, sW: ACK en Window, word gebruik om vuurmuure op te spoor, om te weet of die poorte gefiltreer word of nie. Die -sW onderskei tussen oop/gesluit aangesien die oop een met 'n ander vensterwaarde antwoord: oop (RST met venster anders as 0), gesluit (RST-venster = 0), gefiltreer (ICMP onbereikbaar of niks). Nie alle rekenaars werk op hierdie manier 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 toe.
  • -sI: Idle skandering. Vir gevalle waar daar 'n aktiewe vuurmuur is, maar ons weet dat dit nie na 'n sekere IP filter nie (of wanneer ons eenvoudig anonimiteit wil hê), kan ons die zombie skanderingsinstrument gebruik (dit werk vir alle poorte), om moontlike zombies te soek, kan ons die ipidseq skrip of die exploit auxiliary/scanner/ip/ipidseq gebruik. Hierdie skanderingsinstrument is gebaseer op die IPID-nommer van die IP-pakkies.
  • --badsum: Dit stuur die som verkeerd, die rekenaars sal die pakkies verwerp, maar die vuurmuure kan iets antwoord, dit word gebruik om vuurmuure op te spoor.
  • -sZ: "Vreemde" SCTP-skanderingsinstrument, wanneer sondes met koekie-echo-fragmente gestuur word, moet dit laat val word as dit oop is of met ABORT geantwoord word as dit gesluit is. Dit kan deur vuurmuure gaan waardeur init nie kan gaan nie --osscan-guess Wanneer OS-detectie niet perfect is, zorgt dit ervoor dat er meer inspanning wordt geleverd.

Scripts

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

Om de standaardscripts te gebruiken, volstaat het om -sC of --script=default te gebruiken.

De beschikbare categorieën zijn: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version en vuln.

  • Auth: voert alle beschikbare scripts uit voor authenticatie.
  • Default: voert de standaard basis scripts van de tool uit.
  • Discovery: haalt informatie op van het doelwit of slachtoffer.
  • External: script om externe bronnen te gebruiken.
  • Intrusive: gebruikt scripts die als indringend worden beschouwd voor het doelwit of slachtoffer.
  • Malware: controleert of er open verbindingen zijn door kwaadaardige code of achterdeuren.
  • Safe: voert scripts uit die niet indringend zijn.
  • Vuln: ontdekt de meest bekende kwetsbaarheden.
  • All: voert alle beschikbare NSE-scripts uit.

Om scripts te zoeken:

nmap --script-help="http-*" -> Die wat met http- begin

nmap --script-help="not intrusive" -> Alles behalwe dit

nmap --script-help="default or safe" -> Die in een van beide of beide categorieën vallen

nmap --script-help="default and safe" --> Die in beide categorieën vallen

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 ---> Geeft informatie over de voortgang van het script.

--script-updatedb

Om een script te gebruiken, hoef je alleen maar het volgende in te voeren: nmap --script Naam_van_script doelwit --> Door het script op te geven, wordt zowel het script als de scanner uitgevoerd. Je kunt ook scanneropties toevoegen, zoals "safe=1", zodat alleen veilige scripts worden uitgevoerd.

Tijdbeheer

Nmap kan de tijd in seconden, minuten, ms aanpassen: --host-timeout arguments 900000ms, 900, 900s en 15m doen allemaal hetzelfde.

Nmap verdeelt het totale aantal te scannen hosts in groepen en analyseert deze groepen in blokken, zodat het pas naar het volgende blok gaat nadat alle hosts zijn geanalyseerd (en de gebruiker ontvangt ook geen updates totdat het blok is geanalyseerd). Op deze manier is het voor Nmap efficiënter om grote groepen te gebruiken. Standaard gebruikt het 256 voor klasse C.

Dit kan worden gewijzigd met --min-hostgroup <numhosts>; --max-hostgroup <numhosts> (Pas de grootte van parallelle scantaken aan)

Het aantal parallelle scanners kan worden gecontroleerd, maar het is beter om dit niet te doen (Nmap heeft al automatische controle op basis van de netwerkstatus): --min-parallelism <numprobes>; --max-parallelism <numprobes>

We kunnen de RTT-timeout aanpassen, maar dit is meestal niet nodig: --min-rtt-timeout <time>, --max-rtt-timeout <time>, --initial-rtt-timeout <time>

We kunnen het aantal pogingen aanpassen: --max-retries <numtries>

We kunnen de scantijd voor een host aanpassen: --host-timeout <time>

We kunnen de tijd tussen elke probe aanpassen om het langzamer te laten verlopen: --scan-delay <time>; --max-scan-delay <time>

We kunnen het aantal pakketten per seconde aanpassen: --min-rate <number>; --max-rate <number>

Veel poorten reageren traag als ze gefilterd of gesloten zijn. Als we alleen geïnteresseerd zijn in open poorten, kunnen we sneller scannen met: --defeat-rst-ratelimit

Om de agressiviteit van Nmap in te stellen: -T paranoid|sneaky|polite|normal|aggressive|insane

-T (0-1)

-T0 --> Er wordt slechts één poort tegelijk gescand en er wordt 5 minuten gewacht voordat de volgende wordt gescand.

-T1 en T2 --> Zeer vergelijkbaar, maar wachten respectievelijk 15 en 0,4 seconden tussen elke probe.

-T3 --> Standaard werking, inclusief parallelle scans.

-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

Ze blokkeren poorten en analyseren pakketten.

-f Om pakketten te fragmenteren, worden ze standaard gefragmenteerd in blokken van 8 bytes na de header. Om de grootte op te geven, gebruiken we ..mtu (in plaats van -f). De offset moet een veelvoud van 8 zijn. Versie-scanners en scripts ondersteunen geen fragmentatie.

-D decoy1,decoy2,ME Nmap stuurt scans met andere IP-adressen als bron, waardoor je verborgen blijft. Als je ME in de lijst plaatst, zal Nmap je daar plaatsen. Het is beter om 5 of 6 adressen voor jezelf te plaatsen om volledig verborgen te blijven. Je kunt willekeurige IP-adressen genereren met RND:<nummer> om een bepaald aantal willekeurige IP-adressen te genereren. Ze werken niet met offline TCP-versiedetectie. Als je je binnen een netwerk bevindt, is het handig om IP-adressen te gebruiken die actief zijn, anders is het gemakkelijk te achterhalen dat jij de enige actieve bent.

Om willekeurige IP-adressen te gebruiken: nmap -D RND:10 Doel_IP

-S IP Als Nmap je IP-adres niet kan achterhalen, moet je het opgeven met deze optie. Het kan ook worden gebruikt om te laten denken dat er een ander doelwit hen scant.

-e <interface> Om de interface te kiezen.

Veel beheerders laten ingangspoorten open zodat alles correct werkt en het gemakkelijker is dan naar een andere oplossing te zoeken. Dit kunnen bijvoorbeeld DNS-poorten of FTP-poorten zijn. Om deze kwetsbaarheid te vinden, heeft Nmap: --source-port <portnumber>;-g <portnumber> (ze zijn equivalent).

--data <hex string> Om hexadecimale tekst te verzenden: --data 0xdeadbeef en --data \xCA\xFE\x09

--data-string <string> Om normale tekst te verzenden: --data-string "Scan conducted by Security Ops, extension 7192"

--data-length <number> Nmap stuurt alleen headers, met deze optie kunnen we een bepa --proxies <Komma-geskeide lys van proxy-URL's> Om proxies te gebruik, is dit soms nodig om die parallelisme aan te pas as 'n proxy nie soveel oop verbindinge toelaat soos wat nmap wil hê nie: --max-parallelism

-sP Om gasheer in die netwerk te ontdek deur ARP

Baie administrateurs skep 'n reël in die vuurmuur wat alle pakkies van 'n spesifieke poort (soos 20, 53 en 67) toelaat om deur te gaan. Ons kan nmap instrueer om ons pakkies van daardie poorte af te stuur: nmap --source-port 53 Ip

Uitsette

-oN file Normale uitset

-oX file XML-uitset

-oS file Script kidies-uitset

-oG file Grepable uitset

-oA file Alles behalwe -oS

-v level verbytheid

-d level foutopsporing

--reason Rede vir gasheer en status

--stats-every time Elke tyd vertel ons hoe dit gaan

--packet-trace Om te sien watter pakkies uitgaan, kan filters soos --version-trace of --script-trace gespesifiseer word

--open wys die oop, oop|gefilterde en nie-gefilterde

--resume file Gee 'n opsomming

Miscellaneous

-6 Maak ipv6 moontlik

-A Dit is dieselfde as -O -sV -sC --traceroute

Run time

Terwyl nmap loop, kan ons opsies verander:

v / V Verhoog / verlaag die verbytheidvlak

d / D Verhoog / verlaag die foutopsporingsvlak

p / P Skakel pakketspoor aan / af

? Druk 'n hulpskerm vir interaksie tydens uitvoering af

Vulscan

'n Nmap-skrips wat die weergawes van dienste in 'n aflyn-databasis (wat dit aflaai van ander belangrike databasisse) ondersoek en moontlike kwesbaarhede teruggee

Die databasisse 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 dit af te laai en in die Nmap-lys 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/

Daar sal ook pakkette van die databasisse afgelaai moet word en by /usr/share/nmap/scripts/vulscan/ gevoeg moet word

Gebruik:

Om almal te gebruik: sudo nmap -sV --script=vulscan HOST_A_ESCANEAR

Om 'n spesifieke databasis te gebruik: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv HOST_A_ESCANEAR

Versnel Nmap-dienskenner 16 keer

Volgens hierdie berig kan jy die nmap-diensanalise versnel deur al die totalwaitms waardes in /usr/share/nmap/nmap-service-probes te wysig na 300 en tcpwrappedms na 200.

Verder gebruik sonder 'n spesifiek gedefinieerde servicewaitms gebruik 'n verstekwaarde van 5000. Daarom kan ons waardes byvoeg vir elkeen van die sondes, of ons kan nmap kompileer en die verstekwaarde in service_scan.h verander.

As jy glad nie die waardes van totalwaitms en tcpwrappedms in die /usr/share/nmap/nmap-service-probes lêer wil verander nie, kan jy die parsingskode wysig sodat hierdie waardes in die nmap-service-probes lêer heeltemal geïgnoreer word.

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: