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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
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
-sV Uchambuzi wa toleo, nguvu inaweza kudhibitiwa kutoka 0 hadi 9, ya kawaida ni 7.
--version-intensity
-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
--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
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
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
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 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
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
--data
--data-string
--data-length
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
-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:
- 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
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