Nmap Muhtasari (ESP)

Reading time: 12 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24

Parameters

IPs to scan

  • <ip>,<net/mask>: Onyesha ips moja kwa moja
  • -iL <ips_file>: list_IPs
  • -iR <number>: Idadi ya Ips za nasibu, unaweza kuondoa Ips zinazowezekana kwa --exclude <Ips> au --excludefile <file>.

Equipment discovery

Kwa kawaida Nmap inaanzisha awamu ya kugundua ambayo inajumuisha: -PA80 -PS443 -PE -PP

  • -sL: Si ya uvamizi, inataja malengo kwa kufanya DNS maombi ili kutatua majina. Ni muhimu kujua kama kwa mfano www.prueba.es/24 zote Ips ni malengo yetu.
  • -Pn: Hakuna ping. Hii ni muhimu ikiwa unajua kwamba zote ziko hai (ikiwa sivyo, unaweza kupoteza muda mwingi, lakini chaguo hili pia linaweza kutoa majibu yasiyo sahihi yakisema kwamba haziko hai), inazuia awamu ya kugundua.
  • -sn : Hakuna skana ya bandari. Baada ya kukamilisha awamu ya upelelezi, haichambui bandari. Ni ya siri kiasi, na inaruhusu uchambuzi mdogo wa mtandao. Ikiwa na ruhusa inatuma ACK (-PA) kwa 80, SYN(-PS) kwa 443 na ombi la echo na ombi la Timestamp, bila ruhusa kila wakati inakamilisha muunganisho. Ikiwa lengo ni mtandao, inatumia tu ARP(-PR). Ikiwa inatumika na chaguo lingine, ni pakiti za chaguo lingine pekee ndizo zinazoangamizwa.
  • -PR: Ping ARP. Inatumika kwa kawaida wakati wa kuchambua kompyuta katika mtandao wetu, ni haraka zaidi kuliko kutumia pings. Ikiwa hutaki kutumia pakiti za ARP tumia --send-ip.
  • -PS <ports>: Inatuma pakiti za SYN ambazo ikiwa inajibu SYN/ACK ni wazi (ambayo inajibu kwa RST ili isimalize muunganisho), ikiwa inajibu RST imefungwa na ikiwa haijajibu haiwezi kufikiwa. Katika hali ya kutokuwa na ruhusa, muunganisho kamili unatumika kiotomatiki. Ikiwa hakuna bandari zinazotolewa, inatupa kwa 80.
  • -PA <ports>: Kama ile ya awali lakini na ACK, kuunganisha zote hutoa matokeo bora.
  • -PU <ports>: Lengo ni kinyume, zinatumwa kwa bandari ambazo zinatarajiwa kuwa zimefungwa. Firewall zingine zinakagua tu muunganisho wa TCP. Ikiwa imefungwa inajibiwa kwa bandari isiyoweza kufikiwa, ikiwa inajibiwa kwa ICMP nyingine au haijajibiwa inachukuliwa kuwa haiwezi kufikiwa.
  • -PE, -PP, -PM : ICMP PINGS: echo replay, timestamp na addresmask. Zinazinduliwa ili kujua ikiwa lengo linafanya kazi.
  • -PY<ports>: Inatuma SCTP INIT probes kwa 80 kwa kawaida, INIT-ACK(imefunguliwa) au ABORT(imefungwa) au hakuna chochote au ICMP isiyoweza kufikiwa(haifanyi kazi) inaweza kujibiwa.
  • -PO <protocols>: Protokali inaonyeshwa katika vichwa, kwa kawaida 1(ICMP), 2(IGMP) na 4(Encap IP). Kwa ICMP, IGMP, TCP (6) na UDP (17) protokali vichwa vinatumwa, kwa wengine ni vichwa vya IP pekee vinavyotumwa. Lengo la hili ni kwamba kutokana na uharibifu wa vichwa, Protokali isiyoweza kufikiwa au majibu ya protokali hiyo hiyo yanajibiwa ili kujua ikiwa inafanya kazi.
  • -n: Hakuna DNS
  • -R: DNS kila wakati

Port scanning techniques

  • -sS: Haikamilishi muunganisho hivyo haina alama, nzuri sana ikiwa inaweza kutumika.(ruhusa) Ni ile inayotumiwa kwa kawaida.
  • -sT: Inakamilisha muunganisho, hivyo inacha alama, lakini inaweza kutumika kwa uhakika. Kwa kawaida bila ruhusa.
  • -sU: Polepole, kwa UDP. Kimsingi: DNS(53), SNMP(161,162), DHCP(67 na 68), (-sU53,161,162,67,68): wazi(jibu), imefungwa(bandari isiyoweza kufikiwa), imechujwa (ICMP nyingine), wazi/imechujwa (hakuna chochote). Katika hali ya wazi/imechujwa, -sV inatuma maombi mengi kugundua toleo lolote ambalo nmap inasaidia na inaweza kugundua hali halisi. Inachukua muda mwingi.
  • -sY: Protokali ya SCTP inashindwa kuanzisha muunganisho, hivyo hakuna kumbukumbu, inafanya kazi kama -PY
  • -sN,-sX,-sF: Null, Fin, Xmas, zinaweza kupenya baadhi ya firewalls na kutoa taarifa. Zinategemea ukweli kwamba mashine zinazokubaliana na viwango zinapaswa kujibu kwa RST maombi yote ambayo hayana SYN, RST au ACK lags zilizoinuliwa: wazi/imechujwa(hakuna chochote), imefungwa(RST), imechujwa (ICMP isiyoweza kufikiwa). Haziwezi kuaminika kwenye WIndows, CIsco, BSDI na OS/400. Kwenye unix ndiyo.
  • -sM: Maimon scan: Inatuma FIN na ACK flags, inatumika kwa BSD, kwa sasa itarudisha yote kama imefungwa.
  • -sA, sW: ACK na Window, inatumika kugundua firewalls, kujua ikiwa bandari zimechujwa au la. -sW inatofautisha kati ya wazi/imefungwa kwani zile wazi zinajibu kwa thamani tofauti ya dirisha: wazi (RST na dirisha tofauti na 0), imefungwa (RST dirisha = 0), imechujwa (ICMP isiyoweza kufikiwa au hakuna chochote). Si kompyuta zote zinafanya kazi hivi, hivyo ikiwa zote zimefungwa, haifanyi kazi, ikiwa chache zimefunguliwa, inafanya kazi vizuri, na ikiwa nyingi zimefunguliwa na chache zimefungwa, inafanya kazi kinyume.
  • -sI: Idle scan. Kwa kesi ambazo kuna firewall hai lakini tunajua kwamba haichujwi kwa IP fulani (au wakati tunataka tu kuwa na siri) tunaweza kutumia skana ya zombie (inatumika kwa bandari zote), kutafuta zombies zinazowezekana tunaweza kutumia scrpit ipidseq au exploit auxiliary/scanner/ip/ipidseq. Skana hii inategemea nambari ya IPID ya pakiti za IP.
  • --badsum: Inatuma jumla mbaya, kompyuta zingeweza kutupa pakiti, lakini firewalls zinaweza kujibu kitu, inatumika kugundua firewalls.
  • -sZ: Skana ya SCTP "ya ajabu", wakati inatuma probes na cookie echo fragments zinapaswa kutupwa ikiwa wazi au kujibiwa kwa ABORT ikiwa imefungwa. Inaweza kupita firewalls ambazo init haiwezi kupita, jambo baya ni kwamba haiwezi kutofautisha kati ya imechujwa na wazi.
  • -sO: Protokali Ip scan. Inatuma vichwa vibaya na tupu ambavyo wakati mwingine hata protokali haiwezi kutofautishwa. Ikiwa protokali isiyoweza kufikiwa ya ICMP inakuja imefungwa, ikiwa bandari isiyoweza kufikiwa inakuja imefunguliwa, ikiwa kosa lingine linakuja, limechujwa, ikiwa hakuna chochote kinakuja, wazi|imechujwa.
  • -b <server>: FTPhost--> Inatumika kuchambua mwenyeji kutoka mwingine, hii inafanywa kwa kuunganisha ftp ya mashine nyingine na kuomba itume faili kwa bandari unazotaka kuchambua kutoka mashine nyingine, kulingana na majibu tutajua ikiwa zimefunguliwa au la. [<user>:<password>@]<server>[:<port>] Karibu kila seva za ftps hazikuruhusu kufanya hivi na kwa hivyo ni ya matumizi madogo.

Focus Analysis

-p: Inatumika kubainisha bandari za kuchambua. Ili kuchagua bandari zote 65,335: -p- au -p all. Nmap ina uainishaji wa ndani kulingana na umaarufu. Kwa kawaida, inatumia bandari 1000 bora. Kwa -F (uchambuzi wa haraka) inachambua bandari 100 bora. Kwa --top-ports inachambua idadi hiyo ya bandari bora (kutoka 1 hadi 65,335). Inachambua bandari kwa mpangilio wa nasibu; ili kuzuia hili, tumia -r. Tunaweza pia kuchagua bandari maalum: 20-30,80,443,1024- (hii inamaanisha kutafuta kuanzia 1024 na kuendelea). Tunaweza pia kuunganisha bandari kwa protokali: U:53,T:21-25,80,139,S:9. Tunaweza pia kuchagua anuwai ndani ya bandari maarufu za Nmap: -p [-1024] inachambua hadi bandari 1024 kutoka zile zilizojumuishwa katika nmap-services. --port-ratio Inachambua bandari za kawaida ndani ya uwiano kati ya 0 na 1

-sV Uchambuzi wa toleo, nguvu inaweza kudhibitiwa kutoka 0 hadi 9, ya kawaida ni 7.

--version-intensity Tunadhibiti nguvu, hivyo kwamba ikiwa ni ya chini, itazindua tu majaribio yanayoweza kuwa, lakini si yote. Kwa hili, tunaweza kupunguza kwa kiasi kikubwa muda wa uchambuzi wa UDP

-O Ugunduzi wa OS

--osscan-limit Ili kuchambua mwenyeji ipasavyo, angalau bandari moja wazi na bandari moja iliyofungwa zinahitajika. Ikiwa hali hii haijakamilika na tumepanga hii, haitajaribu utabiri wa OS (huhifadhi muda)

--osscan-guess Wakati ugunduzi wa OS si kamili, hii inafanya ijitahidi zaidi

Scripts

--script |||[,...]

Ili kutumia scripts za kawaida, tumia -sC au --script=default

Aina zinazopatikana ni: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, na vuln

  • Auth: inatekeleza scripts zote za uthibitishaji zinazopatikana
  • Default: inatekeleza scripts za zana za msingi za kawaida
  • Discovery: inapata taarifa kutoka kwa lengo au mwathirika
  • External: script ya kutumia rasilimali za nje
  • Intrusive: inatumia scripts zinazochukuliwa kuwa za uvamizi kwa mwathirika au lengo
  • Malware: inakagua muunganisho uliofunguliwa na msimbo mbaya au milango ya nyuma
  • Safe: inatekeleza scripts zisizo za uvamizi
  • Vuln: inagundua udhaifu maarufu zaidi
  • All: inatekeleza scripts zote zinazopatikana za NSE

Ili kutafuta scripts:

nmap --script-help="http-*" -> Zile zinazohusisha http-

nmap --script-help="not intrusive" -> Zote isipokuwa zile

nmap --script-help="default or safe" -> Zile katika moja au zote mbili

nmap --script-help="default and safe" --> Zile katika zote mbili

nmap --script-help="(default or safe or intrusive) and not http-*"

--script-args =,={=},={,}

--script-args-file

--script-help ||||all[,...]

--script-trace ---> Inatoa taarifa juu ya jinsi script inavyosonga mbele

--script-updatedb

Ili kutumia script, andika tu: nmap --script Script_Name target --> Wakati wa kutumia script, zote mbili script na skana zitatekelezwa, hivyo chaguzi za skana zinaweza pia kuongezwa. Tunaweza kuongeza "safe=1" ili kutekeleza tu zile salama.

Time Control

Nmap inaweza kubadilisha muda kwa sekunde, dakika, ms: --host-timeout arguments 900000ms, 900, 900s, na 15m zote hufanya kazi sawa.

Nmap inagawanya jumla ya idadi ya wenyeji wa kuchambua katika makundi na inachambua makundi haya kwa vizuizi, hivyo haihamishi kwenye kizuizi kinachofuata hadi vyote vichambuliwe (na mtumiaji hapati masasisho yoyote hadi kizuizi kimechambuliwa). Kwa njia hii, ni bora kwa Nmap kutumia makundi makubwa. Kwa kawaida katika darasa C, inatumia 256.

Hii inaweza kubadilishwa kwa --min-hostgroup ; --max-hostgroup (Badilisha ukubwa wa makundi ya uchambuzi wa sambamba)

Unaweza kudhibiti idadi ya skana za sambamba lakini ni bora usifanye hivyo (Nmap tayari ina udhibiti wa kiotomatiki kulingana na hali ya mtandao): --min-parallelism ; --max-parallelism

Tunaweza kubadilisha muda wa RTT, lakini kwa kawaida si lazima: --min-rtt-timeout , --max-rtt-timeout , --initial-rtt-timeout

Tunaweza kubadilisha idadi ya majaribio: --max-retries

Tunaweza kubadilisha muda wa uchambuzi wa mwenyeji: --host-timeout

Tunaweza kubadilisha muda kati ya kila jaribio ili kuifanya iwe polepole: --scan-delay ; --max-scan-delay

Tunaweza kubadilisha idadi ya pakiti kwa sekunde: --min-rate ; --max-rate

Bandari nyingi zinachukua muda mrefu kujibu wakati zimechujwa au zimefungwa. Ikiwa tunavutiwa tu na zile wazi, tunaweza kwenda haraka zaidi kwa: --defeat-rst-ratelimit

Ili kubainisha jinsi tunavyotaka Nmap iwe na nguvu: -T paranoid|sneaky|polite|normal|aggressive|insane

-T (0-1)

-T0 --> Inachambua bandari 1 kwa wakati mmoja na inangoja dakika 5 hadi ifanye jaribio linalofuata

-T1 na T2 --> Ni sawa sana lakini inangoja sekunde 15 na 0.4 mtawalia kati ya kila jaribio

-T3 --> Uendeshaji wa kawaida, inajumuisha uchambuzi wa sambamba

-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

Haziruhusu ufikiaji wa bandari na kuchambua pakiti.

-f Ili kugawanya pakiti, kwa kawaida inagawanya katika 8bytes baada ya kichwa, ili kubainisha ukubwa huo tunatumia ..mtu (na hii, usitumie -f), offset lazima iwe nyingi ya 8. Skana za toleo na scripts hazikubali kugawanywa

-D decoy1,decoy2,ME Nmap inatuma skana lakini kwa anwani nyingine za IP kama chanzo, kwa njia hii wanakuficha. Ikiwa unaweka ME kwenye orodha, Nmap itakueka pale, bora kuweka 5 au 6 kabla yako ili kukuficha kabisa. IP za nasibu zinaweza kuundwa na RND: Ili kuunda ya IP za nasibu. Hazifanyi kazi na watambuzi wa toleo la TCP bila muunganisho. Ikiwa uko ndani ya mtandao, unavutiwa kutumia IP za kazi, kwani vinginevyo itakuwa rahisi sana kubaini kuwa wewe ndiye pekee aliye hai.

Ili kutumia IP za nasibu: nmap -D RND:10 Target_IP

-S IP Kwa wakati Nmap haisajili anwani yako ya IP unapaswa kuipa kwa hii. Pia inatumika kuwafanya wafikirie kuwa lengo lingine linawachambua.

-e Ili kuchagua kiunganishi

Wakurugenzi wengi wanaacha bandari za kuingia wazi ili kila kitu kifanye kazi vizuri na ni rahisi kwao kuliko kutafuta suluhisho lingine. Hizi zinaweza kuwa bandari za DNS au bandari za FTP... ili kugundua udhaifu huu Nmap inajumuisha: --source-port ;-g Zinashabihisha

--data Ili kutuma maandiko ya hexadecimal: --data 0xdeadbeef na --data \xCA\xFE\x09

--data-string Ili kutuma maandiko ya kawaida: --data-string "Scan conducted by Security Ops, extension 7192"

--data-length Nmap inatuma vichwa pekee, kwa hili tunapata kuongeza idadi ya byte zaidi (ambazo zitaundwa kwa nasibu)

Ili kubadilisha pakiti za IP kabisa tumia --ip-options

Ikiwa unataka kuona chaguzi katika pakiti zinazotumwa na kupokelewa, eleza --packet-trace. Kwa maelezo zaidi na mifano ya kutumia chaguzi za IP na Nmap, angalia http://seclists.org/nmap-dev/2006/q3/52.

--ttl

--randomize-hosts Ili kufanya shambulio kuwa dhaifu zaidi

--spoof-mac <MAC address, prefix, or vendor name> Ili kubadilisha MAC mifano: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2, na Cisco

--proxies Ili kutumia proxies, wakati mwingine proxy haiwezi kudumisha muunganisho mwingi wazi kama Nmap inavyotaka hivyo sambamba itahitaji kubadilishwa: --max-parallelism

-sP Ili kugundua wenyeji katika mtandao wetu kwa ARP

Wakurugenzi wengi huunda sheria za firewall ambazo zinaruhusu pakiti zote zinazotoka kwenye bandari fulani kupita (kama 20,53 na 67), tunaweza kumwambia Nmap kutuma pakiti zetu kutoka bandari hizi: nmap --source-port 53 IP

Outputs

-oN file Matokeo ya kawaida

-oX file Matokeo ya XML

-oS file Matokeo ya Script kiddies

-oG file Matokeo yanayoweza kupatikana

-oA file Yote isipokuwa -oS

-v level ufasaha

-d level ufuatiliaji

--reason Kwa nini ya mwenyeji na hali

--stats-every time Kila wakati huo inatueleza jinsi inavyokwenda

--packet-trace Ili kuona pakiti zipi zinatoka, filters zinaweza kubainishwa kama: --version-trace au --script-trace

--open inaonyesha wazi, wazi|imechujwa na isiyochujwa

--resume file Inatoa muhtasari

Miscellaneous

-6 Inaruhusu IPv6

-A ni sawa na -O -sV -sC --traceroute

Run time

Wakati Nmap inafanya kazi tunaweza kubadilisha chaguzi:

v / V Ongeza / punguza kiwango cha ufasaha

d / D Ongeza / punguza kiwango cha ufuatiliaji

p / P Washa / zima ufuatiliaji wa pakiti

? Chapisha skrini ya msaada wa mwingiliano wa wakati wa kukimbia

Vulscan

Nmap script inayotazama matoleo ya huduma zilizopatikana katika hifadhidata ya mbali (iliyopakuliwa kutoka kwa zingine muhimu sana) na inarudisha udhaifu unaowezekana

Hifadhidata zinazotumiwa ni:

  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

Ili kupakua na kufunga katika folda ya Nmap:

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/

Ungehitaji pia kupakua pakiti za DB na kuziweka kwenye /usr/share/nmap/scripts/vulscan/

Matumizi:

Ili kutumia yote: sudo nmap -sV --script=vulscan HOST_TO_SCAN

Ili kutumia hifadhidata maalum: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv HOST_TO_SCAN

Speed Up Nmap Service scan x16

Kulingana na post hii unaweza kuongeza kasi ya uchambuzi wa huduma za nmap kwa kubadilisha thamani zote za totalwaitms katika /usr/share/nmap/nmap-service-probes kuwa 300 na tcpwrappedms kuwa 200.

Zaidi ya hayo, probes ambazo hazina servicewaitms iliyobainishwa kwa usahihi hutumia thamani ya kawaida ya 5000. Kwa hivyo, tunaweza kuongeza thamani kwa kila probe, au tunaweza kuunda nmap wenyewe na kubadilisha thamani ya kawaida katika service_scan.h.

Ikiwa hutaki kubadilisha thamani za **`total