# Muhtasari wa Nmap (ESP)
{% hint style="success" %}
Jifunze na zoezi la AWS Hacking: [**Mafunzo ya HackTricks ya Mtaalam wa Timu Nyekundu ya AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Jifunze na zoezi la GCP Hacking: [**Mafunzo ya HackTricks ya Mtaalam wa Timu Nyekundu ya GCP (GRTE)**](https://training.hacktricks.xyz/courses/grte)
unga mkono HackTricks
* Angalia [**mpango wa michango**](https://github.com/sponsors/carlospolop)!
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
{% embed url="https://websec.nl/" %}
```
nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
```
## Vigezo
### IPs za skan
* **`,`:** Inaonyesha moja kwa moja IPs
* **`-iL `:** orodha_IPs
* **`-iR `**: Idadi ya Ips za kubahatisha, unaweza kuepuka Ips zinazowezekana kwa kutumia `--exclude ` au `--excludefile `.
### Ugunduzi wa Vifaa
Kwa chaguo-msingi, Nmap huanzisha awamu ya ugunduzi inayojumuisha: `-PA80 -PS443 -PE -PP`
* **`-sL`**: Si ya kuvamia, inaorodhesha malengo kwa kutuma maombi ya **DNS** kutatua majina. Ni muhimu kujua kama kwa mfano www.prueba.es/24 IPs zote ni malengo yetu.
* **`-Pn`**: **Hakuna ping**. Hii ni muhimu ikiwa unajua kuwa zote ziko hai (kama sivyo, unaweza kupoteza muda mwingi, lakini chaguo hili pia husababisha matokeo hasi yanayosema kuwa haziko hai), inazuia awamu ya ugunduzi.
* **`-sn`** : **Hakuna uchunguzi wa bandari**. Baada ya kukamilisha awamu ya upelelezi, haiscan bandari. Ni ya siri, na inaruhusu uchunguzi mdogo wa mtandao. Kwa mamlaka inatuma ACK (-PA) kwa 80, SYN(-PS) kwa 443 na ombi la echo na ombi la Timestamp, bila mamlaka daima inakamilisha mawasiliano. Ikiwa lengo ni mtandao, inatumia ARP(-PR) tu. Ikitumiwa na chaguo lingine, pakiti za chaguo lingine tu zinatupwa.
* **`-PR`**: **Ping ARP**. Hutumiwa kwa chaguo-msingi wakati wa kuchambua kompyuta katika mtandao wetu, ni haraka kuliko kutumia pings. Ikiwa hautaki kutumia pakiti za ARP tumia `--send-ip`.
* **`-PS `**: Inatuma pakiti za SYN ambazo ikiitikia SYN/ACK inafunguliwa (ikiitikia na RST ili kuzuia mawasiliano), ikiitikia na RST inafungwa na ikiwa haitoi jibu inafikika. Ikiwa huna mamlaka, mawasiliano kamili hutumiwa moja kwa moja. Ikiwa hakuna bandari zilizotolewa, inaituma kwa 80.
* **`-PA `**: Kama ile ya awali lakini na ACK, kuchanganya zote mbili hutoa matokeo bora.
* **`-PU `**: Lengo ni kinyume chake, zinatumwa kwa bandari ambazo inatarajiwa kuwa zimefungwa. Baadhi ya firewalls huchunguza tu mawasiliano ya TCP. Ikiwa imefungwa inajibiwa na bandari isiyopatikana, ikiitikia na icmp nyingine au ikiwa haitoi jibu inaachwa kama isiyopatikana.
* **`-PE, -PP, -PM`** : ICMP PINGS: jibu la echo, timestamp na addresmask. Hutumwa kujua ikiwa lengo lipo hai.
* **`-PY`**: Inatuma uchunguzi wa SCTP INIT kwa 80 kwa chaguo-msingi, INIT-ACK(funguliwa) au ABORT(zimefungwa) au hakuna kitu au ICMP isiyopatikana(sio hai) inaweza kujibiwa.
* **`-PO `**: Itifaki inaonyeshwa kwenye vichwa, kwa chaguo-msingi 1(ICMP), 2(IGMP) na 4(Encap IP). Kwa itifaki za ICMP, IGMP, TCP (6) na UDP (17) vichwa vya itifaki hutumwa, kwa zingine tu kichwa cha IP hutumwa. Lengo la hii ni kwamba kutokana na uharibifu wa vichwa, itifaki isiyopatikana au majibu ya itifaki hiyo hiyo yanajibiwa kujua ikiwa iko juu.
* **`-n`**: Hakuna DNS
* **`-R`**: DNS daima
### Mbinu za Uchunguzi wa Bandari
* **`-sS`**: Haikamilishi mawasiliano hivyo haileti alama, nzuri sana ikiwa inaweza kutumika.(mamlaka) Ni ile inayotumiwa kwa chaguo-msingi.
* **`-sT`**: Inakamilisha mawasiliano, hivyo inaacha alama, lakini inaweza kutumika kwa uhakika. Kwa chaguo-msingi bila mamlaka.
* **`-sU`**: Polepole, kwa UDP. Kwa kiasi kikubwa: DNS(53), SNMP(161,162), DHCP(67 na 68), (-sU53,161,162,67,68): wazi(jibu), imefungwa(bandari isiyopatikana), iliyofutwa (icmp nyingine), wazi/imefungwa (hakuna kitu). Kwa hali ya wazi/imefungwa, -sV inatuma maombi mengi kugundua mojawapo ya toleo ambazo nmap inaunga mkono na inaweza kugundua hali halisi. Inaongeza sana muda.
* **`-sY`**: Itifaki ya SCTP haiwezi kuanzisha mawasiliano, hivyo hakuna kumbukumbu, inafanya kazi kama -PY
* **`-sN,-sX,-sF`:** Null, Fin, Xmas, wanaweza kuingia kwenye baadhi ya firewalls na kutoa taarifa. Zinategemea ukweli kwamba mashine zinazofuata viwango zinapaswa kujibu na RST maombi yote ambayo hayana SYN, RST au ACK lags zilizoinuliwa: wazi/imefungwa(hakuna kitu), imefungwa(RST), iliyofutwa (icmp isiyopatikana). Sio za kuaminika kwenye Windows, CIsco, BSDI na OS/400. Kwenye unix ndio.
* **`-sM`**: Uchunguzi wa Maimon: Inatuma alama za FIN na ACK, hutumiwa kwa BSD, kwa sasa itarudisha zote kama zimefungwa.
* **`-sA, sW`**: ACK na Window, hutumiwa kugundua firewalls, kujua ikiwa bandari zimezuiwa au la. -sW inatofautisha kati ya wazi/imefungwa kwani zile zilizofunguliwa zinajibu na thamani tofauti ya dirisha: wazi (RST na dirisha tofauti na 0), imefungwa (RST dirisha = 0), iliyofutwa (icmp isiyopatikana au hakuna kitu). Sio kompyuta zote hufanya kazi kwa njia hii, hivyo ikiwa zote zimefungwa, haifanyi kazi, ikiwa chache zimefunguliwa, inafanya kazi vizuri, na ikiwa nyingi zimefunguliwa na chache zimefungwa, inafanya kazi kinyume.
* **`-sI`:** Uchunguzi wa Kusubiri. Kwa kesi ambapo kuna firewall inayofanya kazi lakini tunajua kuwa haitafuti kwa Ip fulani (au tunapotaka tu kutokuwa na utambulisho) tunaweza kutumia skana ya zombie (inatumika kwa bandari zote), kutafuta zombies inayowezekana tunaweza kutumia skipti ya ipidseq au kuchunguza auxiliary/scanner/ip/ipidseq. Skana hii inategemea nambari ya IPID ya pakiti za IP.
* **`--badsum`:** Inatuma jumla isiyo sahihi, kompyuta zingelazimika kukataa pakiti, lakini firewalls zinaweza kujibu kitu, hutumiwa kugundua firewalls.
* **`-sZ`:** Skana ya SCTP "Weird", wakati wa kutuma uchunguzi na vipande vya cookie echo vinapaswa kutupwa ikiwa zimefunguliwa au kujibiwa na ABORT ikiwa zimefungwa. Inaweza kupita kwenye firewalls ambazo init haitapita, baya ni kwamba haitofautishi kati ya zilizofunguliwa na zilizofungwa.
* **`-sO`:** Uchunguzi wa Itifaki ya Ip. Inatuma vichwa vibaya na tupu ambapo mara nyingine hata itifaki haiwezi kutofautishwa. Ikiwa itifaki isiyopatikana ya ICMP inawasili inafungwa, ikiwa bandari isiyopatikana inawasili inafunguliwa, ikiwa kosa lingine linawasili, imefungwa, ikiwa hakuna kitu kinawasili, wazi|imefungwa.
* **`-b `:** FTPhost--> Hutumiwa kuchunguza mwenyeji kutoka kwa mwingine, hii inafanywa kwa kuunganisha ftp ya mashine nyingine na kuomba itume faili kwa bandari unazotaka kuchunguza kutoka kwa mashine nyingine, kulingana na majibu tutajua ikiwa zimefunguliwa au la. \[\:\@]\\[:\] Karibu seva zote za ftp haziruhusu tena kufanya hivi na kwa hivyo ni ya matumizi kidogo.
### **Kati ya Uchambuzi**
**-p:** Inatumika kutoa bandari za kuchunguza. Kuchagua 65335: **-p-** au **-p all**. Nmap ina uainishaji wa ndani kulingana na umaarufu wake. Kwa chaguo-msingi hutumia 1000 kuu. Kwa **-F** (uchunguzi wa haraka) huchunguza 100 kuu. Kwa **--top-ports \** Huchunguza idadi hiyo ya kuu (kutoka 1 hadi 65335). Huchunguza bandari kwa mpangilio wa nasibu, ili hilo lisitoke **-r**. Pia tunaweza kuchagua bandari: 20-30,80,443,1024- Hii ya mwisho inamaanisha kuangalia mbele ya 1024. Pia tunaweza kugawa bandari kwa itifaki: U:53,T:21-25,80,139,S:9. Pia tunaweza kuchagua kikundi cha bandari ndani ya kuu za nmap: -p \[-1024] huchunguza hadi 1024 kati ya zile zilizojumuishwa katika huduma za nmap. **--port-ratio \** Huchunguza bandari za kawaida zaidi kuliko uwiano ambao lazima uwe kati ya 0 na 1
**-sV** Uchunguzi wa toleo, unaweza kudhibiti ukali kutoka 0 hadi 9, kwa chaguo-msingi 7.
**--version-intensity \** Tunadhibiti ukali, hivyo kadri chini itatuma tu majaribio yanayowezekana zaidi, lakini sio yote. Hii inaweza kupunguza sana muda wa uchunguzi wa UDP
**-O** Uchunguzi wa OS
**--osscan-limit** Ili kuchunguza mwenyeji vizuri inahitajika kuwa angalau bandari 1 iko wazi na nyingine imefungwa, ikiwa hali hii haipo na tumeiweka hii, haitajaribu kutabiri os (inapunguza muda)
**--osscan-guess** Wakati upelelezi wa os si kamili hii inafanya iwe ngumu zaidi
**Scripts**
\--script _\_|_\_|_\_|_\_\[,...]
Kutumia zile za msingi, tumia -sC au --script=default
Aina zilizopo ni: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, na vuln
* **Auth:** hutekeleza zote zilizopo kwa ajili ya uthibitisho
* **Default:** hutekeleza zile za msingi za zana
* **Discovery:** hupata taarifa kuhusu lengo au mhanga
* **External:** script kwa kutumia rasilimali za nje
* **Intrusive:** hutumia script zinazochukuliwa kuwa za kuvamia kwa lengo au mhanga
* **Malware:** huchunguza kama kuna uhusiano wa wazi kwa njia ya kanuni hasidi au mlango wa nyuma
* **Safe:** hutekeleza script ambazo si za kuvamia
* **Vuln:** hufunua mapungufu maarufu zaidi
* **All:** hutekeleza kikamilifu script zote za NSE zilizopo
Kutafuta scripts:
**nmap --script-help="http-\*" -> Zile zinazoanza na http-**
**nmap --script-help="not intrusive" -> Zote isipokuwa hizo**
**nmap --script-help="default or safe" -> Zile zilizo katika moja au nyingine au zote mbili**
**nmap --script-help="default and safe" --> Zile zilizo 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 habari kuhusu jinsi script inavyoendelea
\--script-updatedb
**Kutumia script moja tu, weka: nmap --script Jina\_la\_script lengo** --> Kwa kuweka script, script na skana zitatekelezwa, hivyo unaweza pia kuongeza **“safe=1”** ili zitekelezwe tu zile salama.
**Kudhibiti Wakati**
**Nmap inaweza kurekebisha wakati kwa sekunde, dakika, ms:** --host-timeout arguments 900000ms, 900, 900s, na 15m yote yanafanya kitu kimoja.
Nmap huchukua idadi ya jumla ya vifaa vya kuchunguza na kugawanya katika vikundi na kuchambua vikundi hivyo kwa mafungu ili hadi itakapochunguzwa yote, haitapita kwa kikundi kinachofuata (na mtumiaji pia hataki kupokea sasisho mpaka kikundi kimechambuliwa) kwa njia hii, ni bora kwa nmap kutumia vikundi vikubwa. Kwa msingi, inatumia 256 katika darasa C.
Inaweza kubadilishwa na\*\*--min-hostgroup\*\* _**\**_**;** **--max-hostgroup** _**\**_ (Kurekebisha ukubwa wa vikundi vya uchunguzi wa pamoja)
Inaweza kudhibiti idadi ya skana kwa pamoja lakini ni bora kutofanya hivyo (nmap tayari ina udhibiti wa moja kwa moja kulingana na hali ya mtandao): **--min-parallelism** _**\**_**;** **--max-parallelism** _**\**_
Tunaweza kurekebisha rtt timeout, lakini mara nyingi sio lazima: **--min-rtt-timeout** _**\