Translated ['', 'src/generic-methodologies-and-resources/pentesting-netw

This commit is contained in:
Translator 2025-09-07 18:18:23 +00:00
parent c57591d542
commit aa527db12a

View File

@ -4,16 +4,16 @@
## Kugundua mwenyeji kutoka nje
## Kugundua hosts kutoka nje
Hii itakuwa ni **sehemu fupi** kuhusu jinsi ya kupata **IPs zinazojibu** kutoka kwa **Mtandao**.\
Katika hali hii una **mipango ya IPs** (labda hata **mifumo kadhaa**) na unahitaji tu kupata **IPs zipi zinazojibu**.
Hii itakuwa sehemu fupi kuhusu jinsi ya kupata **IPs zinazojibu** kutoka **Internet**.\
Katika hali hii una baadhi ya **scope of IPs** (labda hata **ranges** kadhaa) na unataka tu kupata **IPs gani zinazojibu**.
### ICMP
Hii ndiyo njia **rahisi** na **haraka** ya kugundua kama mwenyeji yupo au la.\
Unaweza kujaribu kutuma baadhi ya **ICMP** pakiti na **kusubiri majibu**. Njia rahisi ni kutuma tu **ombio la echo** na kusubiri majibu. Unaweza kufanya hivyo kwa kutumia `ping` rahisi au kutumia `fping` kwa **mifumo**.\
Unaweza pia kutumia **nmap** kutuma aina nyingine za pakiti za ICMP (hii itakuepusha na filters za ombi la kawaida la ICMP echo).
Hii ni njia **rahisi zaidi** na **ya haraka** ya kugundua kama host iko mtandaoni au la.\
Unaweza kujaribu kutuma baadhi ya vifurushi vya **ICMP** na **kutegemea majibu**. Njia rahisi ni kutuma tu **echo request** na kutegemea majibu. Unaweza kufanya hivyo kwa kutumia `ping` au kwa kutumia `fping` kwa **ranges**.\
Pia unaweza kutumia **nmap** kutuma aina nyingine za vifurushi vya ICMP (hii itaepusha vichujio kwa ICMP echo request-response).
```bash
ping -c 1 199.66.11.4 # 1 echo request to a host
fping -g 199.66.11.0/24 # Send echo requests to ranges
@ -21,50 +21,51 @@ nmap -PE -PM -PP -sn -n 199.66.11.0/24 #Send echo, timestamp requests and subnet
```
### TCP Port Discovery
Ni kawaida sana kukuta kwamba aina zote za pakiti za ICMP zinachujwa. Hivyo, unachoweza kufanya ili kuangalia kama mwenyeji yuko hewani ni **kujaribu kupata bandari zilizo wazi**. Kila mwenyeji ana **bandari 65535**, hivyo, ikiwa una "wigo mkubwa" huwezi **kujaribu** kama **kila bandari** ya kila mwenyeji iko wazi au la, hiyo itachukua muda mwingi.\
Hivyo, unachohitaji ni **scanner ya bandari ya haraka** ([masscan](https://github.com/robertdavidgraham/masscan)) na orodha ya **bandari zinazotumika zaidi:**
Ni kawaida sana kuona kwamba aina zote za ICMP packets zinachujwa. Hivyo, yote unayoweza kufanya ili kukagua kama host iko up ni **kujaribu kupata open ports**. Kila host ina **65535 ports**, kwa hivyo, ikiwa una "big" scope **huwezi** kujaribu kuangalia kama **kila port** ya kila host iko open au la, itachukua muda mwingi.\
Hivyo, unachohitaji ni **fast port scanner** ([masscan](https://github.com/robertdavidgraham/masscan)) na orodha ya **ports zinazotumika zaidi:**
```bash
#Using masscan to scan top20ports of nmap in a /24 range (less than 5min)
masscan -p20,21-23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5900,8080 199.66.11.0/24
```
Unaweza pia kufanya hatua hii kwa kutumia `nmap`, lakini inachukua muda mrefu na kwa namna fulani `nmap` ina matatizo ya kutambua mwenyeji anayeinuka.
Unaweza pia kufanya hatua hii kwa `nmap`, lakini ni polepole na kwa namna fulani `nmap` ina matatizo kutambua hosts up.
### Ugunduzi wa Bandari ya HTTP
### HTTP Port Discovery
Hii ni ugunduzi wa bandari ya TCP ambao ni muhimu unapotaka **kuzingatia kugundua huduma za HTTP**:
Hii ni ugunduzi tu wa TCP port unaofaa unapotaka **kuzingatia kugundua HTTP** **services**:
```bash
masscan -p80,443,8000-8100,8443 199.66.11.0/24
```
### UDP Port Discovery
### Ugunduzi wa UDP port
Unaweza pia kujaribu kuangalia baadhi ya **UDP port open** ili uamue kama unapaswa **kulipa kipaumbele zaidi** kwa **host.** Kwa kuwa huduma za UDP kwa kawaida **hazijibu** na **data yoyote** kwa pakiti ya kawaida ya UDP isiyo na maudhui, ni vigumu kusema kama port inachujwa au iko wazi. Njia rahisi ya kuamua hili ni kutuma pakiti inayohusiana na huduma inayotumika, na kwa kuwa hujui ni huduma ipi inayotumika, unapaswa kujaribu ile inayowezekana zaidi kulingana na nambari ya port:
Unaweza pia kujaribu kuangalia kama kuna **UDP port open** ili kuamua kama unapaswa **kumwangalia kwa karibu** kwa **host.** Kwa kuwa UDP services kawaida **hazijibu** kwa **data yoyote** kwa packet ya probe ya UDP tupu ya kawaida, ni vigumu kusema ikiwa port imechujwa au wazi. Njia rahisi ya kuamua hili ni kutuma packet inayohusiana na service inayokimbia, na kwa kuwa haujui ni service gani inaendesha, unapaswa kujaribu ile inayoweza kuwapo zaidi kulingana na nambari ya port:
```bash
nmap -sU -sV --version-intensity 0 -F -n 199.66.11.53/24
# The -sV will make nmap test each possible known UDP service packet
# The "--version-intensity 0" will make nmap only test the most probable
```
Mstari wa nmap uliopendekezwa hapo awali utajaribu **bandari 1000 za UDP** katika kila mwenyeji ndani ya **/24** anuwai lakini hata hii itachukua **>20min**. Ikiwa unahitaji **matokeo ya haraka** unaweza kutumia [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner): `./udp-proto-scanner.pl 199.66.11.53/24` Hii itatuma **UDP probes** hizi kwa **bandari zao zinazotarajiwa** (kwa anuwai ya /24 hii itachukua dakika 1 tu): _DNSStatusRequest, DNSVersionBindReq, NBTStat, NTPRequest, RPCCheck, SNMPv3GetRequest, chargen, citrix, daytime, db2, echo, gtpv1, ike, ms-sql, ms-sql-slam, netop, ntp, rpc, snmp-public, systat, tftp, time, xdmcp._
Mstari wa nmap uliopendekezwa awali utajaribu **top 1000 UDP ports** katika kila host ndani ya anuwai ya **/24**, lakini hata hii peke yake itachukua **>20min**. Ikiwa unahitaji **matokeo ya haraka zaidi** unaweza kutumia [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner): `./udp-proto-scanner.pl 199.66.11.53/24` Hii itatuma hizi **UDP probes** kwa **bandari zao zilizotarajiwa** (kwa anuwai ya /24 hii itachukua dakika 1 tu): _DNSStatusRequest, DNSVersionBindReq, NBTStat, NTPRequest, RPCCheck, SNMPv3GetRequest, chargen, citrix, daytime, db2, echo, gtpv1, ike,ms-sql, ms-sql-slam, netop, ntp, rpc, snmp-public, systat, tftp, time, xdmcp._
### Ugunduzi wa Bandari za SCTP
### Ugundaji wa Bandari za SCTP
```bash
#Probably useless, but it's pretty fast, why not try it?
nmap -T4 -sY -n --open -Pn <IP/range>
```
## Pentesting Wifi
Hapa unaweza kupata mwongozo mzuri wa mashambulizi yote maarufu ya Wifi wakati wa kuandika:
Hapa unaweza kupata mwongozo mzuri wa Wifi attacks zote zinazojulikana wakati wa kuandika:
{{#ref}}
../pentesting-wifi/
{{#endref}}
## Kugundua mwenyeji kutoka ndani
## Discovering hosts from the inside
Ikiwa uko ndani ya mtandao, moja ya mambo ya kwanza unayotaka kufanya ni **kugundua wenyeji wengine**. Kulingana na **kiasi cha kelele** unachoweza/unataka kufanya, hatua tofauti zinaweza kuchukuliwa:
Ikiwa uko ndani ya network, moja ya mambo ya kwanza utakayopenda kufanya ni **discover other hosts**. Kulingana na **kiasi cha noise** unachoweza/utakayotaka kufanya, vitendo tofauti vinaweza kufanywa:
### Passive
Unaweza kutumia zana hizi kugundua wenyeji kwa pasivu ndani ya mtandao uliounganishwa:
Unaweza kutumia tools hizi kugundua kwa passive hosts ndani ya network iliyounganishwa:
```bash
netdiscover -p
p0f -i eth0 -p -o /tmp/p0f.log
@ -73,10 +74,9 @@ net.recon on/off #Read local ARP cache periodically
net.show
set net.show.meta true #more info
```
### Active
### Hai
Kumbuka kwamba mbinu zilizozungumziwa katika [_**Kugundua mwenyeji kutoka nje**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP Port Discovery_) zinaweza pia **kutumika hapa**.\
Lakini, kwani uko katika **mtandao mmoja** na wenyeji wengine, unaweza kufanya **mambo zaidi**:
Kumbuka kwamba mbinu zilizooelezwa katika [_**Discovering hosts from the outside**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP Port Discovery_) zinaweza pia **kutumika hapa**.\ But, kwa kuwa uko katika **mtandao mmoja** na hosts wengine, unaweza kufanya **mambo zaidi**:
```bash
#ARP discovery
nmap -sn <Network> #ARP Requests (Discover IPs)
@ -96,35 +96,35 @@ set net.probe.throttle 10 #10ms between probes sent (default=10)
#IPv6
alive6 <IFACE> # Send a pingv6 to multicast.
```
### Active ICMP
### ICMP Hai
Kumbuka kwamba mbinu zilizozungumziwa katika _Discovering hosts from the outside_ ([_**ICMP**_](#icmp)) zinaweza pia **kutumika hapa**.\
Lakini, kwa kuwa uko katika **mtandao mmoja** na wenyeji wengine, unaweza kufanya **mambo zaidi**:
Kumbuka kwamba mbinu zilizotajwa katika _Kuvumbua hosts kutoka nje_ ([_**ICMP**_](#icmp)) pia zinaweza **kutumika hapa**.\
Lakini, kwa kuwa uko kwenye **network ileile** na hosts wengine, unaweza kufanya **mambo zaidi**:
- Ikiwa unafanya **ping** kwa **anwani ya matangazo ya subnet**, ping inapaswa kufika kwa **kila mwenyeji** na wanaweza **kujibu** **wewe**: `ping -b 10.10.5.255`
- Kufanya ping kwa **anwani ya matangazo ya mtandao** unaweza hata kupata wenyeji ndani ya **subnets nyingine**: `ping -b 255.255.255.255`
- Tumia lippu `-PE`, `-PP`, `-PM` za `nmap` kufanya ugunduzi wa wenyeji kwa kutuma kwa mtiririko wa **ICMPv4 echo**, **timestamp**, na **maombi ya subnet mask:** `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24`
- Ikiwa utapiga **ping** kwa **subnet broadcast address**, ping itafika kwa **kila host** na zinaweza **kujibu** **kwako**: `ping -b 10.10.5.255`
- Kwa kupiga **ping** kwenye **network broadcast address**, unaweza hata kupata hosts ndani ya **other subnets**: `ping -b 255.255.255.255`
- Tumia bendera za `nmap` `-PE`, `-PP`, `-PM` kufanyika host discovery kwa kutuma mtiririko wa **ICMPv4 echo**, **timestamp**, na **subnet mask requests**: `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24`
### **Wake On Lan**
Wake On Lan inatumika ku **washa** kompyuta kupitia ujumbe wa **mtandao**. Pakiti ya kichawi inayotumika kuwasha kompyuta ni pakiti tu ambapo **MAC Dst** inatolewa na kisha inarudiwa **mara 16** ndani ya pakiti hiyo hiyo.\
Kisha aina hii ya pakiti kawaida hutumwa katika **ethernet 0x0842** au katika **pakiti ya UDP kwa bandari 9**.\
Ikiwa **hakuna \[MAC]** iliyotolewa, pakiti inatumwa kwa **broadcast ethernet** (na MAC ya matangazo itakuwa ile inayorudiwa).
Wake On Lan inatumika **kuwasha** kompyuta kupitia **network message**. Paket ya 'magic' inayotumika kuwasha kompyuta ni packet ambayo **MAC Dst** imewekwa kisha **inarudiwa mara 16** ndani ya packet hiyo.\
Aina hizi za packet kawaida hutumwa kwenye **ethernet 0x0842** au kwenye **UDP packet to port 9**.\
Ikiwa **hakuna \[MAC]** imetolewa, packet itatumwa kwa **broadcast ethernet** (na broadcast MAC ndilo litakalorudiwa).
```bash
# Bettercap (if no [MAC] is specificed ff:ff:ff:ff:ff:ff will be used/entire broadcast domain)
wol.eth [MAC] #Send a WOL as a raw ethernet packet of type 0x0847
wol.eth [MAC] #Send a WOL as a raw ethernet packet of type 0x0842
wol.udp [MAC] #Send a WOL as an IPv4 broadcast packet to UDP port 9
```
## Skanningi Hosts
## Kuchunguza Hosts
Mara tu unapogundua IP zote (za nje au za ndani) unazotaka kuskania kwa undani, hatua tofauti zinaweza kufanywa.
Mara baada ya kugundua IPs zote (za nje au za ndani) unazotaka kuchunguza kwa kina, vitendo tofauti vinaweza kufanywa.
### TCP
- **Port iliyo wazi**: _SYN --> SYN/ACK --> RST_
- **Port iliyo fungwa**: _SYN --> RST/ACK_
- **Port iliyo chujwa**: _SYN --> \[HAUNA JIBU]_
- **Port iliyo chujwa**: _SYN --> ujumbe wa ICMP_
- **Wazi** port: _SYN --> SYN/ACK --> RST_
- **Fungwa** port: _SYN --> RST/ACK_
- **Imechujwa** port: _SYN --> \[NO RESPONSE]_
- **Imechujwa** port: _SYN --> ICMP message_
```bash
# Nmap fast scan for the most 1000tcp ports used
nmap -sV -sC -O -T4 -n -Pn -oA fastscan <IP>
@ -138,12 +138,10 @@ syn.scan 192.168.1.0/24 1 10000 #Ports 1-10000
```
### UDP
Kuna chaguzi 2 za kuchunguza bandari ya UDP:
- Tuma **UDP packet** na angalia majibu _**ICMP unreachable**_ ikiwa port ni **closed** (kwa kesi kadhaa ICMP itakuwa **filtered**, hivyo hutapokea taarifa yoyote kuhusu ikiwa port ni **closed** au **open**).
- Tuma **formatted datagrams** ili kupata majibu kutoka kwa **service** (kwa mfano, DNS, DHCP, TFTP, na wengine, kama ilivyoorodheshwa katika _nmap-payloads_). Ikiwa utapokea **response**, basi port iko **open**.
- Tuma **UDP packet** na angalia majibu _**ICMP unreachable**_ ikiwa bandari ime **fungwa** (katika kesi kadhaa ICMP itachujwa hivyo hutapokea taarifa yoyote ikiwa bandari imefungwa au wazi).
- Tuma **formatted datagrams** ili kupata majibu kutoka kwa **huduma** (mfano, DNS, DHCP, TFTP, na wengine, kama ilivyoorodheshwa katika _nmap-payloads_). Ikiwa unapokea **majibu**, basi, bandari iko **wazi**.
**Nmap** itachanganya **chaguzi zote** mbili kwa kutumia "-sV" (uchunguzi wa UDP ni polepole sana), lakini zingatia kwamba uchunguzi wa UDP ni polepole zaidi kuliko uchunguzi wa TCP:
**Nmap** itachanganya chaguzi zote mbili kwa kutumia "-sV" (UDP scans are very slow), lakini kumbuka kwamba UDP scans ni polepole zaidi kuliko TCP scans:
```bash
# Check if any of the most common udp services is running
udp-proto-scanner.pl <IP>
@ -157,18 +155,19 @@ nmap -sU -sV --version-intensity 0 -n -T4 <IP>
```
### SCTP Scan
**SCTP (Stream Control Transmission Protocol)** imeundwa kutumika pamoja na **TCP (Transmission Control Protocol)** na **UDP (User Datagram Protocol)**. Kusudi lake kuu ni kuwezesha usafirishaji wa data za simu kupitia mitandao ya IP, ikionyesha sifa nyingi za kuaminika zinazopatikana katika **Signaling System 7 (SS7)**. **SCTP** ni sehemu muhimu ya familia ya protokali ya **SIGTRAN**, ambayo inalenga kusafirisha ishara za SS7 kupitia mitandao ya IP.
**SCTP (Stream Control Transmission Protocol)** imetengenezwa kutumika pamoja na **TCP (Transmission Control Protocol)** na **UDP (User Datagram Protocol)**. Kusudi lake kuu ni kuwezesha usafirishaji wa data za telefonia kupitia mitandao ya IP, ikifanana na vipengele vingi vya uaminifu vinavyopatikana kwenye **Signaling System 7 (SS7)**. **SCTP** ni sehemu ya msingi ya familia ya itifaki **SIGTRAN**, inayolenga kusafirisha ishara za SS7 kupitia mitandao ya IP.
Msaada kwa **SCTP** unapatikana kutoka kwa mifumo mbalimbali ya uendeshaji, kama vile **IBM AIX**, **Oracle Solaris**, **HP-UX**, **Linux**, **Cisco IOS**, na **VxWorks**, ikionyesha kukubalika kwake pana na matumizi katika uwanja wa mawasiliano na mitandao.
Msaada kwa **SCTP** unatolewa na mifumo mbalimbali ya uendeshaji, kama **IBM AIX**, **Oracle Solaris**, **HP-UX**, **Linux**, **Cisco IOS**, na **VxWorks**, ikionesha kukubalika kwake kwa upana na matumizi yake katika sekta ya mawasiliano na mitandao.
Mikaguzi miwili tofauti ya SCTP inatolewa na nmap: _-sY_ na _-sZ_
nmap inatoa scans mbili tofauti za SCTP: _-sY_ na _-sZ_
```bash
# Nmap fast SCTP scan
nmap -T4 -sY -n -oA SCTFastScan <IP>
# Nmap all SCTP scan
nmap -T4 -p- -sY -sV -sC -F -n -oA SCTAllScan <IP>
```
### IDS na IPS kukwepa
### Kuepuka IDS na IPS
{{#ref}}
ids-evasion.md
@ -176,13 +175,14 @@ ids-evasion.md
### **Chaguzi zaidi za nmap**
{{#ref}}
nmap-summary-esp.md
{{#endref}}
### Kuonyesha Anwani za IP za Ndani
### Kufichua Anwani za IP za Ndani
**Router, firewalls, na vifaa vya mtandao vilivyopangwa vibaya** wakati mwingine vinajibu kwa uchunguzi wa mtandao kwa kutumia **anwani za chanzo zisizo za umma**. **tcpdump** inaweza kutumika kubaini pakiti zinazopokelewa kutoka kwa anwani za kibinafsi wakati wa majaribio. Kwa haswa, kwenye Kali Linux, pakiti zinaweza kukamatwa kwenye **eth2 interface**, ambayo inapatikana kutoka kwa Mtandao wa umma. Ni muhimu kutambua kwamba ikiwa mipangilio yako iko nyuma ya NAT au Firewall, pakiti kama hizo zinaweza kuchujwa.
**Misconfigured routers, firewalls, and network devices** wakati mwingine hujibu network probes kwa kutumia **nonpublic source addresses**. **tcpdump** inaweza kutumika kubaini paketi zinazopokelewa kutoka kwa anwani za ndani wakati wa upimaji. Hasa, kwenye Kali Linux, paketi zinaweza kukamatwa kwenye **eth2 interface**, ambayo inapatikana kutoka kwenye Intaneti ya umma. Ni muhimu kutambua kwamba ikiwa mpangilio wako uko nyuma ya NAT au Firewall, paketi hizo zinaweza kuchujwa.
```bash
tcpdump nt -i eth2 src net 10 or 172.16/12 or 192.168/16
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
@ -192,9 +192,9 @@ IP 10.10.0.2 > 185.22.224.18: ICMP echo reply, id 25804, seq 1586, length 64
```
## Sniffing
Sniffing unaweza kujifunza maelezo ya anuwai za IP, ukubwa wa subnet, anwani za MAC, na majina ya mwenyeji kwa kupitia fremu na pakiti zilizokamatwa. Ikiwa mtandao umewekwa vibaya au kitambaa cha kubadili kiko chini ya shinikizo, washambuliaji wanaweza kukamata nyenzo nyeti kupitia sniffing ya mtandao isiyo ya moja kwa moja.
Kwa Sniffing unaweza kujifunza maelezo ya IP ranges, subnet sizes, MAC addresses, na hostnames kwa kupitia ukaguzi wa frames na packets zilizokamatwa. Ikiwa mtandao umewekwa vibaya au switching fabric iko chini ya mzigo, wadukuzi wanaweza kunasa taarifa nyeti kupitia passive network sniffing.
Ikiwa mtandao wa Ethernet uliohamasishwa umewekwa vizuri, utaona tu fremu za matangazo na nyenzo zinazokusudiwa kwa anwani yako ya MAC.
Ikiwa switched Ethernet network imewekwa ipasavyo, utaona tu broadcast frames na vitu vilivyolengwa kwa MAC address yako.
### TCPDump
```bash
@ -202,7 +202,7 @@ sudo tcpdump -i <INTERFACE> udp port 53 #Listen to DNS request to discover what
tcpdump -i <IFACE> icmp #Listen to icmp packets
sudo bash -c "sudo nohup tcpdump -i eth0 -G 300 -w \"/tmp/dump-%m-%d-%H-%M-%S-%s.pcap\" -W 50 'tcp and (port 80 or port 443)' &"
```
Mtu anaweza pia kukamata pakiti kutoka kwa mashine ya mbali kupitia kikao cha SSH kwa kutumia Wireshark kama GUI katika wakati halisi.
Pia, mtu anaweza kunasa packets kutoka kwa mashine ya mbali kupitia kikao cha SSH kwa kutumia Wireshark kama GUI kwa wakati halisi.
```
ssh user@<TARGET IP> tcpdump -i ens160 -U -s0 -w - | sudo wireshark -k -i -
ssh <USERNAME>@<TARGET IP> tcpdump -i <INTERFACE> -U -s0 -w - 'port not 22' | sudo wireshark -k -i - # Exclude SSH traffic
@ -218,17 +218,17 @@ set net.sniff.regexp #If set only packets matching this regex will be considered
```
### Wireshark
Kwa wazi.
Bila shaka.
### Kukamata sifa
### Capturing credentials
Unaweza kutumia zana kama [https://github.com/lgandx/PCredz](https://github.com/lgandx/PCredz) kuchambua sifa kutoka kwa pcap au kiolesura cha moja kwa moja.
Unaweza kutumia zana kama [https://github.com/lgandx/PCredz](https://github.com/lgandx/PCredz) kuchambua credentials kutoka pcap au live interface.
## Mashambulizi ya LAN
### ARP spoofing
ARP Spoofing inajumuisha kutuma ARPResponses za bure kuashiria kwamba IP ya mashine ina MAC ya kifaa chetu. Kisha, mwathirika atabadilisha jedwali la ARP na atawasiliana na mashine yetu kila wakati anapotaka kuwasiliana na IP iliyosafishwa.
ARP Spoofing inajumuisha kutuma gratuitous ARPResponses ili kuonyesha kwamba IP ya mashine ina MAC ya kifaa chetu. Kisha, mwanaathiriwa atabadilisha jedwali la ARP na atawasiliana na mashine yetu kila anapotaka kuwasiliana na IP spoofed.
#### **Bettercap**
```bash
@ -246,23 +246,23 @@ arpspoof -t 192.168.1.2 192.168.1.1
```
### MAC Flooding - CAM overflow
Mwagilia meza ya CAM ya swichi kwa kutuma pakiti nyingi zenye anwani tofauti za mac. Wakati meza ya CAM imejaa, swichi inaanza kujiendesha kama hub (ikitoa matangazo ya trafiki yote).
Jaza CAM table ya switch kwa kutuma packets nyingi zenye source mac address tofauti. Wakati CAM table imejaa, switch huanza kufanya kazi kama hub (broadcasting all the traffic).
```bash
macof -i <interface>
```
Katika swichi za kisasa, udhaifu huu umerekebishwa.
Katika switches za kisasa udhaifu huu umerekebishwa.
### 802.1Q VLAN / DTP Shambulio
### 802.1Q VLAN / DTP Attacks
#### Dynamic Trunking
**Dynamic Trunking Protocol (DTP)** imeundwa kama itifaki ya tabaka la kiungo ili kuwezesha mfumo wa kiotomatiki wa trunking, ikiruhusu swichi kuchagua port kwa njia ya trunk (Trunk) au njia isiyo ya trunk kiotomatiki. Utekelezaji wa **DTP** mara nyingi huonekana kama ishara ya muundo wa mtandao usio bora, ikisisitiza umuhimu wa kuweka trunks kwa mikono tu pale inahitajika na kuhakikisha kuwa kuna nyaraka sahihi.
The **Dynamic Trunking Protocol (DTP)** imeundwa kama protocol ya link layer kusaidia mfumo wa kiotomatiki wa trunking, ikiruhusu switches kuchagua ports kwa ajili ya trunk mode (Trunk) au non-trunk mode kwa njia ya moja kwa moja. Utekelezaji wa **DTP** mara nyingi unaonekana kama dalili ya muundo duni wa mtandao, ikibainisha umuhimu wa kusanidi trunks kwa mikono tu pale inapohitajika na kuhakikisha nyaraka sahihi.
Kwa kawaida, port za swichi zimewekwa kufanya kazi katika hali ya Dynamic Auto, ikimaanisha ziko tayari kuanzisha trunking ikiwa itasababishwa na swichi jirani. Wasiwasi wa usalama unatokea wakati pentester au mshambuliaji anapounganisha na swichi na kutuma fremu ya DTP Desirable, ikilazimisha port kuingia katika hali ya trunk. Kitendo hiki kinamwezesha mshambuliaji kuhesabu VLANs kupitia uchambuzi wa fremu za STP na kupita segmentation ya VLAN kwa kuanzisha interfaces za virtual.
Kwa kawaida, switch ports zimewekwa kufanya kazi katika Dynamic Auto mode, yaani ziko tayari kuanzisha trunking ikiwa zitahimizwa na switch jirani. Hatari ya usalama inatokea pale pentester au attacker anapounganisha kwenye switch na kutuma DTP Desirable frame, na kulazimisha port kuingia trunk mode. Hatua hii inamruhusu attacker kuorodhesha VLANs kupitia uchambuzi wa STP frames na kuzunguka segmentation ya VLAN kwa kuanzisha virtual interfaces.
Uwepo wa DTP katika swichi nyingi kwa kawaida unaweza kutumiwa na maadui kuiga tabia ya swichi, hivyo kupata ufikiaji wa trafiki katika VLAN zote. Skripti [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) inatumika kufuatilia interface, ikifunua ikiwa swichi iko katika hali ya Default, Trunk, Dynamic, Auto, au Access—hali ya mwisho ikiwa ndio pekee iliyohakikishiwa dhidi ya shambulio la VLAN hopping. Chombo hiki kinakadiria hali ya udhaifu wa swichi.
Uwepo wa DTP katika switches nyingi kwa default unaweza kutumiwa na maadui kuiga tabia ya switch, na hivyo kupata ufikiaji wa trafiki kupitia VLAN zote. Script [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) hutumika kufuatilia interface, ikionyesha ikiwa switch iko katika Default, Trunk, Dynamic, Auto, au Access mode—hii ya mwisho ikiwa ndiyo configuration pekee iliyo kinga dhidi ya VLAN hopping attacks. Zana hii inatathmini hali ya udhaifu wa switch.
Iwapo udhaifu wa mtandao utagundulika, chombo _**Yersinia**_ kinaweza kutumika "kuwezesha trunking" kupitia itifaki ya DTP, ikiruhusu kuangalia pakiti kutoka VLAN zote.
Ikiwa udhaifu wa mtandao utabainika, zana _**Yersinia**_ inaweza kutumika "kuwasha trunking" kupitia protocol ya DTP, ikiruhusu kuangalia packets kutoka VLAN zote.
```bash
apt-get install yersinia #Installation
sudo apt install kali-linux-large #Another way to install it in Kali
@ -275,20 +275,20 @@ yersinia -G #For graphic mode
```
![](<../../images/image (269).png>)
Ili kuhesabu VLANs, pia inawezekana kuzalisha fremu ya DTP Desirable kwa kutumia script [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)**. Usikatishe script hiyo kwa hali yoyote. Inachoma DTP Desirable kila sekunde tatu. **Makanali ya trunk iliyoundwa kwa njia ya kidinamikia kwenye swichi inaishi kwa dakika tano tu. Baada ya dakika tano, trunk inanguka.**
Ili kuorodhesha VLANs pia inawezekana kuunda fremu ya DTP Desirable kwa kutumia script [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)**. **U**sizuie script kwa hali yoyote. Inaingiza DTP Desirable kila sekunde tatu. **Trunk channels zinazoundwa kwa dynamic kwenye switch huishi kwa dakika tano tu. Baada ya dakika tano, trunk inaanguka.**
```
sudo python3 DTPHijacking.py --interface eth0
```
Ningependa kuonyesha kwamba **Access/Desirable (0x03)** inaonyesha kwamba fremu ya DTP ni ya aina ya Desirable, ambayo inamwambia bandari ibadilike kuwa katika hali ya Trunk. Na **802.1Q/802.1Q (0xa5)** inaonyesha aina ya encapsulation ya **802.1Q**.
Ningependa kuonyesha kwamba **Access/Desirable (0x03)** inaonyesha kuwa fremu ya DTP ni ya aina Desirable, ambayo inaamuru port kubadilika kuwa Trunk mode. Na **802.1Q/802.1Q (0xa5**) inaonyesha aina ya encapsulation **802.1Q**.
Kwa kuchambua fremu za STP, **tunajifunza kuhusu uwepo wa VLAN 30 na VLAN 60.**
Kwa kuchambua fremu za STP, **tunagundua uwepo wa VLAN 30 na VLAN 60.**
<figure><img src="../../images/image (124).png" alt=""><figcaption></figcaption></figure>
#### Kushambulia VLAN maalum
#### Attacking specific VLANs
Mara tu unavyojua IDs za VLAN na thamani za IP, unaweza **kuunda kiunganishi cha virtual kushambulia VLAN maalum**.\
Ikiwa DHCP haipatikani, basi tumia _ifconfig_ kuweka anwani ya IP ya kudumu.
Mara tu unapojua VLAN IDs na thamani za IPs, unaweza **configure a virtual interface to attack a specific VLAN**.\
Ikiwa DHCP haipatikani, tumia _ifconfig_ kuweka anwani ya IP ya statiki.
```
root@kali:~# modprobe 8021q
root@kali:~# vconfig add eth1 250
@ -321,75 +321,75 @@ sudo vconfig add eth0 30
sudo ip link set eth0.30 up
sudo dhclient -v eth0.30
```
#### Automatic VLAN Hopper
#### Otomatiki VLAN Hopper
Shambulio lililozungumziwa la **Dynamic Trunking na kuunda interfaces za virtual na kugundua wenyeji ndani** ya VLAN nyingine linafanywa **kiotomatiki** na chombo: [**https://github.com/nccgroup/vlan-hopping---frogger**](https://github.com/nccgroup/vlan-hopping---frogger)
Shambulio lililojadiliwa la **Dynamic Trunking and creating virtual interfaces an discovering hosts inside** katika VLAN nyingine hufanywa kwa otomatiki na zana: [**https://github.com/nccgroup/vlan-hopping---frogger**](https://github.com/nccgroup/vlan-hopping---frogger)
#### Double Tagging
Ikiwa mshambuliaji anajua thamani ya **MAC, IP na VLAN ID ya mwenyeji wa kidhulumu**, anaweza kujaribu **kugonga mara mbili fremu** kwa VLAN yake iliyoteuliwa na VLAN ya kidhulumu na kutuma pakiti. Kwa kuwa **kidhulumu hakiwezi kuungana tena** na mshambuliaji, hivyo **chaguo bora kwa mshambuliaji ni kuwasiliana kupitia UDP** kwa protokali ambazo zinaweza kufanya vitendo vya kuvutia (kama SNMP).
Ikiwa mshambuliaji anajua thamani ya **MAC, IP and VLAN ID of the victim host**, anaweza kujaribu **double tag a frame** na VLAN iliyoteuliwa na VLAN ya muathirika kisha kutuma packet. Kwa kuwa **muathirika hatoweza kuungana kurudi** na mshambuliaji, hivyo **chaguo bora kwa mshambuliaji ni kuwasiliana kupitia UDP** na protocols ambazo zinaweza kufanya baadhi ya vitendo vya kuvutia (kama SNMP).
Chaguo lingine kwa mshambuliaji ni kuzindua **TCP port scan ikijifanya kuwa IP inayodhibitiwa na mshambuliaji na inayopatikana na kidhulumu** (labda kupitia intaneti). Kisha, mshambuliaji anaweza kunusa katika mwenyeji wa pili aliye na yeye ikiwa unapata baadhi ya pakiti kutoka kwa kidhulumu.
Another option for the attacker is to launch a **TCP port scan spoofing an IP controlled by the attacker and accessible by the victim** (probably through internet). Then, the attacker could sniff in the second host owned by him if it receives some packets from the victim.
![](<../../images/image (190).png>)
Ili kufanya shambulio hili unaweza kutumia scapy: `pip install scapy`
Ili kutekeleza shambulio hili unaweza kutumia scapy: `pip install scapy`
```python
from scapy.all import *
# Double tagging with ICMP packet (the response from the victim isn't double tagged so it will never reach the attacker)
packet = Ether()/Dot1Q(vlan=1)/Dot1Q(vlan=20)/IP(dst='192.168.1.10')/ICMP()
sendp(packet)
```
#### Lateral VLAN Segmentation Bypass <a href="#d679" id="d679"></a>
#### Kupitisha Lateral VLAN Segmentation Bypass <a href="#d679" id="d679"></a>
Ikiwa una **ufikiaji wa swichi ambayo umeunganishwa moja kwa moja**, una uwezo wa **kuzidi segmentation ya VLAN** ndani ya mtandao. Rahisi tu **badilisha bandari kuwa katika hali ya trunk** (inayojulikana pia kama trunk), tengeneza interfaces za virtual zenye IDs za VLAN zinazolengwa, na uweke anwani ya IP. Unaweza kujaribu kuomba anwani hiyo kwa njia ya kidinamik (DHCP) au unaweza kuipanga kwa njia ya statiki. Inategemea hali.
Ikiwa una ufikiaji wa switch ambao umeunganishwa moja kwa moja, una uwezo wa kupitisha VLAN segmentation ndani ya mtandao. Badilisha tu port kuwa trunk mode (inayojulikana pia kama trunk), tengeneza virtual interfaces zenye IDs za target VLANs, na panga anwani ya IP. Unaweza kujaribu kuomba anwani kwa njia ya DHCP au kuiweka kimiliki (statically). Inategemea kesi.
{{#ref}}
lateral-vlan-segmentation-bypass.md
{{#endref}}
#### Layer 3 Private VLAN Bypass
#### Kupitisha Layer 3 Private VLAN Bypass
Katika mazingira fulani, kama vile mitandao ya wireless ya wageni, mipangilio ya **port isolation (inayojulikana pia kama private VLAN)** inatekelezwa ili kuzuia wateja waliounganishwa na pointi za ufikiaji wa wireless kuwasiliana moja kwa moja. Hata hivyo, mbinu imegundulika ambayo inaweza kuzunguka hatua hizi za kutengwa. Mbinu hii inatumia ama ukosefu wa ACL za mtandao au usanidi wao usio sahihi, ikiruhusu pakiti za IP kupitishwa kupitia router ili kufikia mteja mwingine kwenye mtandao huo huo.
Katika mazingira fulani, kama vile guest wireless networks, port isolation (also known as private VLAN) hutumika ili kuzuia clients waliounganishwa kwenye wireless access point kuwasiliana moja kwa moja. Hata hivyo, mbinu imebainiwa inayoweza kuzunguka hatua hizi za isolation. Mbinu hii inatumia ukosefu wa network ACLs au usanidi usio sahihi, ikiruhusu vifurushi vya IP kupitishwa kupitia router ili kufika kwa client mwingine kwenye mtandao huo huo.
Shambulio linafanywa kwa kuunda **pakiti inayobeba anwani ya IP ya mteja wa marudio lakini ikiwa na anwani ya MAC ya router**. Hii inasababisha router kupeleka pakiti hiyo kwa makosa kwa mteja wa lengo. Njia hii ni sawa na ile inayotumika katika Shambulio za Double Tagging, ambapo uwezo wa kudhibiti mwenyeji anayepatikana kwa mwathirika unatumika kutekeleza kasoro ya usalama.
Shambulio linatekelezwa kwa kutengeneza paketi inayobeba anwani ya IP ya client lengwa lakini ikiwa na router's MAC address. Hii husababisha router kuipatia paketi hiyo kimakosa kwa client lengwa. Njia hii ni sawa na ile inayotumiwa katika Double Tagging Attacks, ambapo uwezo wa kudhibiti host inayoweza kufikiwa na mwathiriwa unatumiwa kuutilia dozi hitilafu ya usalama.
**Hatua Muhimu za Shambulio:**
Key Steps of the Attack:
1. **Kuunda Pakiti:** Pakiti inaundwa kwa njia maalum ili kujumuisha anwani ya IP ya mteja wa lengo lakini ikiwa na anwani ya MAC ya router.
2. **Kutatua Tabia ya Router:** Pakiti iliyoundwa inatumwa hadi kwa router, ambayo, kutokana na usanidi, inapeleka pakiti hiyo kwa mteja wa lengo, ikipita hatua za kutengwa zinazotolewa na mipangilio ya private VLAN.
1. Crafting a Packet: Paketi inatengenezwa maalum ili ijaze IP address ya client lengwa lakini ikiwa na router's MAC address.
2. Exploiting Router Behavior: Paketi hiyo iliyotengenezwa inatumwa hadi router, ambayo kwa sababu ya usanidi, inarejesha paketi kwa client lengwa, ikipita isolation iliyotolewa na private VLAN settings.
### VTP Attacks
VTP (VLAN Trunking Protocol) inakusanya usimamizi wa VLAN. Inatumia nambari za marekebisho kudumisha uaminifu wa hifadhidata ya VLAN; mabadiliko yoyote huongeza nambari hii. Swichi zinachukua usanidi wenye nambari za marekebisho za juu, zikisasisha hifadhidata zao za VLAN.
VTP (VLAN Trunking Protocol) inalenga kuendesha uendeshaji wa VLAN kwa kit centralized. Inatumia revision numbers kudumisha uadilifu wa VLAN database; mabadiliko yoyote huongeza nambari hii. Switches hupokea configurations zenye revision numbers za juu zaidi, na kusasisha VLAN database zao.
#### VTP Domain Roles
- **VTP Server:** Inasimamia VLANs—inaunda, inafuta, inabadilisha. Inatangaza matangazo ya VTP kwa wanachama wa eneo.
- **VTP Client:** Inapokea matangazo ya VTP ili kuunganisha hifadhidata yake ya VLAN. Jukumu hili haliruhusiwi kufanya mabadiliko ya usanidi wa VLAN za ndani.
- **VTP Transparent:** Hailihusishi katika masasisho ya VTP lakini inapeleka matangazo ya VTP. Haithiriwi na shambulio za VTP, inashikilia nambari ya marekebisho isiyobadilika ya sifuri.
- VTP Server: Inasimamia VLAN—huunda, hufuta, hubadilisha. Inatuma VTP announcements kwa wanachama wa domain.
- VTP Client: Inapokea VTP announcements ili kusawazisha VLAN database yake. Wajukuu wake banwa kutoka kufanya mabadiliko ya VLAN vizuri.
- VTP Transparent: Haitumii VTP updates lakini inapitisha VTP announcements. Haathiriwi na VTP attacks, na ina revision number ya daima zero.
#### VTP Advertisement Types
- **Summary Advertisement:** Inatangazwa na VTP server kila sekunde 300, ikibeba taarifa muhimu za eneo.
- **Subset Advertisement:** Inatumwa kufuatia mabadiliko ya usanidi wa VLAN.
- **Advertisement Request:** Inatolewa na VTP client kuomba Summary Advertisement, kawaida kama jibu la kugundua nambari ya marekebisho ya usanidi iliyo juu.
- Summary Advertisement: Inatolewa na VTP server kila sekunde 300, ikibeba taarifa muhimu za domain.
- Subset Advertisement: Inatumwa baada ya mabadiliko ya VLAN configuration.
- Advertisement Request: Inotolewa na VTP client kuomba Summary Advertisement, kawaida kama majibu ya kugundua configuration revision number ya juu zaidi.
Uhalifu wa VTP unaweza kutumika pekee kupitia bandari za trunk kwani matangazo ya VTP yanazunguka kupitia hizo pekee. Baada ya hali za shambulio za DTP, huenda zikageukia VTP. Zana kama Yersinia zinaweza kusaidia shambulio za VTP, zikilenga kufuta hifadhidata ya VLAN, kwa ufanisi kuharibu mtandao.
VTP vulnerabilities zinaweza kutumika tu kupitia trunk ports kwani VTP announcements zinazunguka kupitia port hizo pekee. Baada ya shambulio la DTP huenda shambulio likageuka kuwa VTP. Zana kama Yersinia zinaweza kusaidia katika VTP attacks, lengo likiwa kufuta VLAN database, ikiharibu mtandao kwa ufanisi.
Kumbuka: Majadiliano haya yanahusiana na toleo la VTP 1 (VTPv1).
````bash
%% yersinia -G # Launch Yersinia in graphical mode ```
````
Katika hali ya picha ya Yersinia, chagua chaguo la kufuta VTP vlans zote ili kufuta hifadhidata ya VLAN.
Note: Mjadala huu unahusu VTP version 1 (VTPv1).
```bash
yersinia -G # Launch Yersinia in graphical mode
```
Katika graphical mode ya Yersinia, chagua chaguo la deleting all VTP vlans ili kufuta VLAN database.
### Shambulio la STP
### STP Attacks
**Ikiwa huwezi kunasa fremu za BPDU kwenye interfaces zako, ni vigumu kwamba utafanikiwa katika shambulio la STP.**
**Ikiwa huwezi kukamata BPDU frames kwenye interfaces zako, ni vigumu utafanikiwe katika STP attack.**
#### **STP BPDU DoS**
Kutuma BPDUs nyingi za TCP (Notification ya Mabadiliko ya Topolojia) au Conf (BPDUs ambazo zinatumwa wakati topolojia inaundwa) swichi zinachanganyikiwa na kuacha kufanya kazi ipasavyo.
Kutuma BPDUs nyingi za TCP (Topology Change Notification) au Conf (BPDUs zinazotumwa wakati topology inaundwa) husababisha switches kuzidiwa na kuacha kufanya kazi vizuri.
```bash
yersinia stp -attack 2
yersinia stp -attack 3
@ -397,73 +397,73 @@ yersinia stp -attack 3
```
#### **STP TCP Attack**
Wakati TCP inatumwa, jedwali la CAM la swichi litafutwa ndani ya sekunde 15. Kisha, ikiwa unatumia pakiti hizi kwa kuendelea, jedwali la CAM litaanzishwa upya mara kwa mara (au kila sekunde 15) na wakati linapoanzishwa upya, swichi inafanya kazi kama hub.
Wakati TCP inapotumwa, jedwali la CAM la switches litafutwa ndani ya 15s. Kisha, ikiwa unatumia kwa kuendelea aina hizi za packets, jedwali la CAM litaanzishwa upya mara kwa mara (au kila 15s) na inapofufuliwa, switch itatenda kama hub
```bash
yersinia stp -attack 1 #Will send 1 TCP packet and the switch should restore the CAM in 15 seconds
yersinia stp -attack 0 #Will send 1 CONF packet, nothing else will happen
```
#### **STP Root Attack**
Mshambuliaji anasimulia tabia ya swichi ili kuwa STP root wa mtandao. Kisha, data zaidi itapita kupitia kwake. Hii ni ya kuvutia unapokuwa umeunganishwa na swichi mbili tofauti.\
Hii inafanywa kwa kutuma BPDUs CONF pakiti zikisema kwamba thamani ya **priority** ni ndogo kuliko kipaumbele halisi cha swichi halisi ya mzizi.
Mshambuliaji anajifanya kama switch ili kuwa STP root wa mtandao. Kisha, data zaidi itapitia kupitia kwake. Hili ni muhimu ukiwa umeunganishwa kwa switch mbili tofauti.\
Hii hufanywa kwa kutuma BPDUs CONF packets zikidai kwamba thamani ya **priority** ni ndogo kuliko ile ya root switch halisi.
```bash
yersinia stp -attack 4 #Behaves like the root switch
yersinia stp -attack 5 #This will make the device behaves as a switch but will not be root
```
**Ikiwa mshambuliaji ameunganishwa na swichi 2 anaweza kuwa mzizi wa mti mpya na trafiki yote kati ya swichi hizo itapita kupitia kwake** (shambulio la MITM litafanywa).
**Ikiwa mshambulizi ameunganishwa kwenye switches 2 anaweza kuwa mzizi wa mti mpya na trafiki yote kati ya switches hizo itapitia kupitia kwake** (a MITM attack will be performed).
```bash
yersinia stp -attack 6 #This will cause a DoS as the layer 2 packets wont be forwarded. You can use Ettercap to forward those packets "Sniff" --> "Bridged sniffing"
ettercap -T -i eth1 -B eth2 -q #Set a bridge between 2 interfaces to forwardpackages
```
### CDP Mashambulizi
### Mashambulio ya CDP
CISCO Discovery Protocol (CDP) ni muhimu kwa mawasiliano kati ya vifaa vya CISCO, ikiruhusu **kuvitambua na kushiriki maelezo ya usanidi**.
CISCO Discovery Protocol (CDP) ni muhimu kwa mawasiliano kati ya vifaa vya CISCO, ikiwaruhusu **kujitanisha na kushiriki maelezo ya usanidi**.
#### Kukusanya Data kwa Njia ya Pasifiki <a href="#id-0e0f" id="id-0e0f"></a>
#### Ukusanyaji wa Data (Passive) <a href="#id-0e0f" id="id-0e0f"></a>
CDP imewekwa ili kutangaza taarifa kupitia bandari zote, ambayo inaweza kusababisha hatari ya usalama. Mshambuliaji, anapounganisha kwenye bandari ya swichi, anaweza kutumia waandishi wa mtandao kama **Wireshark**, **tcpdump**, au **Yersinia**. Kitendo hiki kinaweza kufichua data nyeti kuhusu kifaa cha mtandao, ikiwa ni pamoja na mfano wake na toleo la Cisco IOS linalotumia. Mshambuliaji anaweza kisha kulenga udhaifu maalum katika toleo lililotambuliwa la Cisco IOS.
CDP imewekwa ili kurusha taarifa kupitia bandari zote, ambayo inaweza kusababisha hatari ya usalama. Mdukuzi, akiwa ameunganishwa kwenye porti ya switch, anaweza kutumia network sniffers kama **Wireshark**, **tcpdump**, au **Yersinia**. Hatua hii inaweza kufichua data nyeti kuhusu kifaa cha mtandao, ikijumuisha mfano wake na toleo la Cisco IOS linaloendesha. Mdukuzi anaweza kisha kulenga udhaifu maalum kwenye toleo hilo la Cisco IOS.
#### Kusababisha Mv flooding wa CDP <a href="#id-0d6a" id="id-0d6a"></a>
#### Kusababisha Kujaa kwa Jedwali la CDP <a href="#id-0d6a" id="id-0d6a"></a>
Njia yenye nguvu zaidi inahusisha kuzindua shambulio la Denial of Service (DoS) kwa kujaa kumbukumbu ya swichi, akijifanya kuwa vifaa halali vya CISCO. Hapa chini kuna mfuatano wa amri za kuanzisha shambulio kama hilo kwa kutumia Yersinia, chombo cha mtandao kilichoundwa kwa ajili ya majaribio:
Mbinu kali zaidi inahusisha kuzindua shambulio la Denial of Service (DoS) kwa kumwaga kumbukumbu ya switch, akijifanya kuwa vifaa halali vya CISCO. Hapa chini ni mfululizo wa amri za kuanzisha shambulio kama hilo kwa kutumia Yersinia, zana ya mtandao iliyoundwa kwa ajili ya kujaribu:
```bash
sudo yersinia cdp -attack 1 # Initiates a DoS attack by simulating fake CISCO devices
# Alternatively, for a GUI approach:
sudo yersinia -G
```
Wakati wa shambulio hili, CPU ya switch na jedwali la majirani wa CDP yanakabiliwa na mzigo mzito, na kusababisha kile kinachojulikana kama **“kufeli kwa mtandao”** kutokana na matumizi makubwa ya rasilimali.
Wakati wa shambulio hili, CPU ya switch na jedwali la majirani la CDP vinabebwa mzigo mkubwa, na kusababisha kile kinachoitwa mara nyingi **“paralisi ya mtandao”** kutokana na matumizi ya rasilimali kupita kiasi.
#### Shambulio la Uigaji wa CDP
#### CDP Impersonation Attack
```bash
sudo yersinia cdp -attack 2 #Simulate a new CISCO device
sudo yersinia cdp -attack 0 #Send a CDP packet
```
You could also use [**scapy**](https://github.com/secdev/scapy/). Be sure to install it with `scapy/contrib` package.
Unaweza pia kutumia [**scapy**](https://github.com/secdev/scapy/). Hakikisha kuisakinisha na kifurushi `scapy/contrib`.
### Mashambulizi ya VoIP na Zana ya VoIP Hopper
### Shambulio za VoIP na Zana VoIP Hopper
Simu za VoIP, ambazo zinaunganishwa zaidi na vifaa vya IoT, zinatoa kazi kama kufungua milango au kudhibiti thermostats kupitia nambari maalum za simu. Hata hivyo, muunganisho huu unaweza kuleta hatari za usalama.
Simu za VoIP, zinazounganishwa zaidi na vifaa vya IoT, zinatoa huduma kama kufungua milango au kudhibiti thermostats kupitia nambari maalum za simu. Hata hivyo, uunganisho huu unaweza kuleta hatari za usalama.
Zana [**voiphopper**](http://voiphopper.sourceforge.net) imeundwa kuiga simu ya VoIP katika mazingira mbalimbali (Cisco, Avaya, Nortel, Alcatel-Lucent). Inagundua ID ya VLAN ya mtandao wa sauti kwa kutumia protokali kama CDP, DHCP, LLDP-MED, na 802.1Q ARP.
The tool [**voiphopper**](http://voiphopper.sourceforge.net) imeundwa kuiga simu ya VoIP katika mazingira mbalimbali (Cisco, Avaya, Nortel, Alcatel-Lucent). Inagundua VLAN ID ya mtandao wa sauti kwa kutumia itifaki kama CDP, DHCP, LLDP-MED, na 802.1Q ARP.
**VoIP Hopper** inatoa njia tatu za Protokali ya Ugunduzi wa Cisco (CDP):
**VoIP Hopper** inatoa hali tatu kwa Cisco Discovery Protocol (CDP):
1. **Sniff Mode** (`-c 0`): Inachambua pakiti za mtandao ili kubaini ID ya VLAN.
2. **Spoof Mode** (`-c 1`): Inazalisha pakiti maalum zinazofanana na zile za kifaa halisi cha VoIP.
3. **Spoof with Pre-made Packet Mode** (`-c 2`): Inatuma pakiti zinazofanana na zile za mfano maalum wa simu ya IP ya Cisco.
1. **Sniff Mode** (`-c 0`): Inachambua vifurushi vya mtandao ili kubaini VLAN ID.
2. **Spoof Mode** (`-c 1`): Inatengeneza vifurushi maalum vinavyofanana na vya kifaa halisi cha VoIP.
3. **Spoof with Pre-made Packet Mode** (`-c 2`): Inatuma vifurushi vinavyolingana kabisa na vya modeli maalum ya Cisco IP phone.
Njia inayopendekezwa kwa kasi ni ya tatu. Inahitaji kufafanua:
Hali inayopendekezwa kwa kasi ni ya tatu. Inahitaji kutaja:
- Kiunganishi cha mtandao cha mshambuliaji (`-i` parameter).
- Jina la kifaa cha VoIP kinachoungwa mkono (`-E` parameter), ikizingatia muundo wa majina ya Cisco (mfano, SEP ikifuatiwa na anwani ya MAC).
- interface ya mtandao ya mshambuliaji (`-i` parameter).
- jina la kifaa cha VoIP kinachoigwa (`-E` parameter), ukizingatia muundo wa majina wa Cisco (mfano, SEP ikifuatiwa na anwani ya MAC).
Katika mazingira ya kampuni, ili kuiga kifaa kilichopo cha VoIP, mtu anaweza:
Katika mazingira ya kampuni, ili kuiga kifaa kilicho tayari kuwepo cha VoIP, mtu anaweza:
- Kuangalia lebo ya MAC kwenye simu.
- Kupitia mipangilio ya onyesho la simu ili kuona taarifa za mfano.
- Kuunganisha kifaa cha VoIP kwenye laptop na kuangalia maombi ya CDP kwa kutumia Wireshark.
- Kukagua lebo ya MAC kwenye simu.
- Kupitia mipangilio ya skrini ya simu kuona taarifa za modeli.
- Kuunganisha kifaa cha VoIP kwa laptop na kuangalia maombi ya CDP kwa kutumia Wireshark.
Mfano wa amri ya kutekeleza zana katika njia ya tatu ingekuwa:
Mfano wa amri ya kutekeleza zana katika hali ya tatu ungekuwa:
```bash
voiphopper -i eth1 -E 'SEP001EEEEEEEEE ' -c 2
```
@ -489,59 +489,60 @@ Nmap done: 0 IP addresses (0 hosts up) scanned in 5.27 seconds
```
**DoS**
**Aina mbili za DoS** zinaweza kufanywa dhidi ya seva za DHCP. Aina ya kwanza inajumuisha **kuiga wenyeji wa uwongo wa kutosha kutumia anwani zote zinazowezekana za IP**.\
Shambulio hili litafanya kazi tu ikiwa unaweza kuona majibu ya seva ya DHCP na kukamilisha itifaki (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server)). Kwa mfano, hii **haiwezekani katika mitandao ya Wifi**.
**Aina mbili za DoS** zinaweza kufanywa dhidi ya DHCP servers. Ya kwanza inahusisha **simulate enough fake hosts to use all the possible IP addresses**.\
Shambulio hili litafanya kazi tu ikiwa unaweza kuona majibu ya DHCP server na kukamilisha protocol (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server)). Kwa mfano, hili **siwezekani kwenye mitandao ya Wifi**.
Njia nyingine ya kufanya DoS ya DHCP ni kutuma **pakiti ya DHCP-RELEASE ikitumia kama msimbo kila anwani ya IP inayowezekana**. Kisha, seva itafikiria kwamba kila mtu amemaliza kutumia IP.
Njia nyingine ya kutekeleza DHCP DoS ni kutuma a **DHCP-RELEASE packet using as source code every possible IP**. Kisha, server itafikiri kwamba kila mtu ameisha kutumia IP.
```bash
yersinia dhcp -attack 1
yersinia dhcp -attack 3 #More parameters are needed
```
Njia ya kiotomatiki zaidi ya kufanya hivi ni kutumia chombo [DHCPing](https://github.com/kamorin/DHCPig)
Njia ya kiotomatiki zaidi ya kufanya hili ni kutumia zana [DHCPing](https://github.com/kamorin/DHCPig)
Unaweza kutumia mashambulizi ya DoS yaliyotajwa kulazimisha wateja kupata leseni mpya ndani ya mazingira, na kuchoma seva halali ili ziwe zisijibu. Hivyo wakati halali wanapojaribu kuungana tena, **unaweza kutoa thamani mbaya zilizotajwa katika shambulio linalofuata**.
Unaweza kutumia mashambulio ya DoS yaliyotajwa kulazimisha wateja wapate leases mpya ndani ya mazingira, na kuchosha servers halali hadi zisijibu. Hivyo, wakati wale halali wanapojaribu kuunganishwa tena, **unaweza kuwapa thamani zenye madhara zilizotajwa katika shambulio lijalo**.
#### Weka thamani mbaya
#### Weka thamani hatari
Seva ya DHCP isiyo halali inaweza kuanzishwa kwa kutumia skripti ya DHCP iliyoko `/usr/share/responder/DHCP.py`. Hii ni muhimu kwa mashambulizi ya mtandao, kama vile kukamata trafiki ya HTTP na akidi, kwa kuhamasisha trafiki kwa seva mbaya. Hata hivyo, kuweka lango la uasi ni kidogo sana kwa ufanisi kwani inaruhusu tu kukamata trafiki inayotoka kwa mteja, ikikosa majibu kutoka kwa lango halisi. Badala yake, kuanzisha seva ya DNS isiyo halali au WPAD inashauriwa kwa shambulio lenye ufanisi zaidi.
Server ya DHCP ya udanganyifu inaweza kuanzishwa kwa kutumia script ya DHCP iliyopo kwenye `/usr/share/responder/DHCP.py`. Hii ni muhimu kwa mashambulio ya mtandao, kama kukamata trafiki ya HTTP na vitambulisho, kwa kupitisha trafiki kwa server ya udanganyifu. Hata hivyo, kuweka gateway ya udanganyifu ni chache ufanisi kwa sababu inaruhusu tu kukamata trafiki inayotoka kwa mteja, ikikosa majibu kutoka kwa gateway halisi. Badala yake, tunapendekeza kuanzisha server ya DNS au WPAD ya udanganyifu kwa shambulio lililo na ufanisi zaidi.
Hapa chini kuna chaguzi za amri za kuunda seva ya DHCP isiyo halali:
Hapo chini ni chaguzi za amri za kusanidi server ya DHCP ya udanganyifu:
- **Anuani Yetu ya IP (Tangazo la Lango)**: Tumia `-i 10.0.0.100` kutangaza anuani ya IP ya mashine yako kama lango.
- **Jina la Kikoa la DNS la Mitaa**: Kwa hiari, tumia `-d example.org` kuweka jina la kikoa la DNS la mitaa.
- **Anuani ya IP ya Router/Lango la Awali**: Tumia `-r 10.0.0.1` kubainisha anuani ya IP ya router au lango halali.
- **Anuani ya IP ya Seva ya DNS Kuu**: Tumia `-p 10.0.0.100` kuweka anuani ya IP ya seva ya DNS isiyo halali unayodhibiti.
- **Anuani ya IP ya Seva ya DNS ya Pili**: Kwa hiari, tumia `-s 10.0.0.1` kuweka anuani ya IP ya seva ya DNS ya pili.
- **Netmask ya Mtandao wa Mitaa**: Tumia `-n 255.255.255.0` kufafanua netmask kwa mtandao wa mitaa.
- **Kiunganishi kwa Trafiki ya DHCP**: Tumia `-I eth1` kusikiliza trafiki ya DHCP kwenye kiunganishi maalum cha mtandao.
- **Anuani ya Mipangilio ya WPAD**: Tumia `-w “http://10.0.0.100/wpad.dat”` kuweka anuani ya mipangilio ya WPAD, kusaidia katika kukamata trafiki ya wavuti.
- **Kudanganya Anuani ya IP ya Lango la Kawaida**: Jumuisha `-S` kudanganya anuani ya IP ya lango la kawaida.
- **Jibu kwa Maombi Yote ya DHCP**: Jumuisha `-R` kufanya seva ijibu maombi yote ya DHCP, lakini kuwa makini kwamba hii ni kelele na inaweza kugundulika.
- **Anwani yetu ya IP (Gateway Advertisement)**: Tumia `-i 10.0.0.100` kutangaza IP ya mashine yako kama gateway.
- **Local DNS Domain Name**: Ki hiari, tumia `-d example.org` kuweka jina la domaini ya DNS ya ndani.
- **Original Router/Gateway IP**: Tumia `-r 10.0.0.1` kubainisha anwani ya IP ya router/gateway halali.
- **Primary DNS Server IP**: Tumia `-p 10.0.0.100` kuweka anwani ya IP ya server ya DNS ya udanganyifu unayodhibiti.
- **Secondary DNS Server IP**: Ki hiari, tumia `-s 10.0.0.1` kuweka IP ya server ya pili ya DNS.
- **Netmask of Local Network**: Tumia `-n 255.255.255.0` kubainisha netmask ya mtandao wa ndani.
- **Interface for DHCP Traffic**: Tumia `-I eth1` kusikiliza trafiki ya DHCP kwenye interface maalum ya mtandao.
- **WPAD Configuration Address**: Tumia `-w “http://10.0.0.100/wpad.dat”` kuweka anwani ya konfigurasi ya WPAD, kusaidia katika kukamata trafiki ya wavuti.
- **Udanganyifu wa IP ya Gateway chaguo-msingi**: Ongeza `-S` kudanganya anwani ya IP ya gateway chaguo-msingi.
- **Jibu Maombi yote ya DHCP**: Ongeza `-R` ili kufanya server kujibu maombi yote ya DHCP, lakini fahamu kuwa hii ni ya kelele na inaweza kugunduliwa.
Kwa kutumia chaguzi hizi kwa usahihi, seva ya DHCP isiyo halali inaweza kuanzishwa ili kukamata trafiki ya mtandao kwa ufanisi.
Kwa kutumia chaguzi hizi kwa usahihi, server ya DHCP ya udanganyifu inaweza kuanzishwa ili kukamata trafiki ya mtandao kwa ufanisi.
```python
# Example to start a rogue DHCP server with specified options
!python /usr/share/responder/DHCP.py -i 10.0.0.100 -d example.org -r 10.0.0.1 -p 10.0.0.100 -s 10.0.0.1 -n 255.255.255.0 -I eth1 -w "http://10.0.0.100/wpad.dat" -S -R
```
### **EAP Attacks**
### **EAP Mashambulizi**
Hapa kuna baadhi ya mbinu za shambulio ambazo zinaweza kutumika dhidi ya utekelezaji wa 802.1X:
Hapa kuna baadhi ya mbinu za shambulizi ambazo zinaweza kutumika dhidi ya utekekelezaji wa 802.1X:
- Active brute-force password grinding via EAP
- Attacking the RADIUS server with malformed EAP content _\*\*_(exploits)
- EAP message capture and offline password cracking (EAP-MD5 and PEAP)
- Forcing EAP-MD5 authentication to bypass TLS certificate validation
- Injecting malicious network traffic upon authenticating using a hub or similar
- Brute-force ya password kwa njia ya EAP (active)
- Kushambulia server ya RADIUS kwa content ya EAP isiyofaa _\*\*_(exploits)
- Kukamata ujumbe wa EAP na kukata password offline (EAP-MD5 na PEAP)
- Kulazimisha uthibitishaji wa EAP-MD5 ili kuepuka uthibitishaji wa cheti la TLS
- Kuingiza trafiki ya network yenye madhara mara baada ya authentication kwa kutumia hub au kifaa kinachofanana
Ikiwa mshambuliaji yuko kati ya mwathirika na seva ya uthibitishaji, anaweza kujaribu kudhoofisha (ikiwa ni lazima) itifaki ya uthibitishaji hadi EAP-MD5 na kukamata jaribio la uthibitishaji. Kisha, anaweza kufanya brute-force hii kwa kutumia:
Ikiwa mshambuliaji yuko kati ya victim na authentication server, anaweza kujaribu kudhoofisha (ikiwa inahitajika) protocol ya authentication hadi EAP-MD5 na kukamata jaribio la authentication. Kisha, angeweza kufanya brute-force kwa kutumia:
```
eapmd5pass r pcap.dump w /usr/share/wordlist/sqlmap.txt
```
### FHRP (GLBP & HSRP) Attacks <a href="#id-6196" id="id-6196"></a>
### FHRP (GLBP & HSRP) Mashambulizi <a href="#id-6196" id="id-6196"></a>
**FHRP** (First Hop Redundancy Protocol) ni darasa la protokali za mtandao zilizoundwa ili **kuunda mfumo wa routing wa ziada wa moto**. Kwa FHRP, route za kimwili zinaweza kuunganishwa kuwa kifaa kimoja cha mantiki, ambacho kinapanua uvumilivu wa makosa na kusaidia kugawa mzigo.
**FHRP** (First Hop Redundancy Protocol) ni darasa la itifaki za mtandao zilizoundwa ili **kuunda mfumo wa routing wa ziada unaofanya kazi papo hapo**. Kwa FHRP, routers za kimwili zinaweza kuunganishwa kuwa kifaa kimoja cha kimantiki, ambacho huongeza uvumilivu wa hitilafu na husaidia kugawanya mzigo.
**Cisco Systems engineers wameunda itifaki mbili za FHRP, GLBP na HSRP.**
**Injinia wa Cisco Systems wameendeleza protokali mbili za FHRP, GLBP na HSRP.**
{{#ref}}
glbp-and-hsrp-attacks.md
@ -549,54 +550,55 @@ glbp-and-hsrp-attacks.md
### RIP
Toleo tatu la Protokali ya Taarifa za Routing (RIP) zinajulikana kuwepo: RIP, RIPv2, na RIPng. Datagrams zinatumwa kwa wenzake kupitia bandari 520 kwa kutumia UDP na RIP na RIPv2, wakati datagrams zinatangazwa kwa bandari ya UDP 521 kupitia multicast ya IPv6 na RIPng. Msaada wa uthibitisho wa MD5 ulianzishwa na RIPv2. Kwa upande mwingine, uthibitisho wa asili haujajumuishwa na RIPng; badala yake, kutegemea kunafanywa kwenye vichwa vya IPsec AH na ESP ndani ya IPv6.
Matoleo matatu ya Routing Information Protocol (RIP) yanajulikana kuwepo: RIP, RIPv2, na RIPng. Datagramu zinatumwa kwa peers kupitia port 520 kwa kutumia UDP na RIP na RIPv2, wakati RIPng inapotuma datagramu hutumia UDP port 521 kwa kupitia IPv6 multicast. RIPv2 ilileta msaada wa uthibitishaji wa MD5. Kwa upande mwingine, RIPng haina uthibitishaji wa asili; badala yake inategemea vichwa vya hiari vya IPsec AH na ESP ndani ya IPv6.
- **RIP na RIPv2:** Mawasiliano yanafanywa kupitia datagrams za UDP kwenye bandari 520.
- **RIPng:** Inatumia bandari ya UDP 521 kwa kutangaza datagrams kupitia multicast ya IPv6.
- **RIP and RIPv2:** Mawasiliano hufanywa kupitia datagramu za UDP kwenye port 520.
- **RIPng:** Inatumia UDP port 521 kwa kutangaza datagramu kupitia IPv6 multicast.
Kumbuka kwamba RIPv2 inasaidia uthibitisho wa MD5 wakati RIPng haina uthibitisho wa asili, ikitegemea vichwa vya IPsec AH na ESP katika IPv6.
Kumbuka kuwa RIPv2 inasaidia uthibitishaji wa MD5 wakati RIPng haina uthibitishaji wa asili, ikitegemea vichwa vya IPsec AH na ESP ndani ya IPv6.
### EIGRP Attacks
### EIGRP Mashambulizi
**EIGRP (Enhanced Interior Gateway Routing Protocol)** ni protokali ya routing ya dynamic. **Ni protokali ya distance-vector.** Ikiwa hakuna **uthibitisho** na usanidi wa interfaces za passiv, **mshambuliaji** anaweza kuingilia katika routing ya EIGRP na kusababisha **kuharibu meza za routing**. Zaidi ya hayo, mtandao wa EIGRP (kwa maneno mengine, mfumo huru) **ni tambarare na haina segmentation katika maeneo yoyote**. Ikiwa **mshambuliaji anaingiza njia**, kuna uwezekano kwamba njia hii itasambaa katika mfumo huru wa EIGRP.
**EIGRP (Enhanced Interior Gateway Routing Protocol)** ni itifaki ya routing inayobadilika. **Ni itifaki ya distance-vector.** Ikiwa hakuna **uthibitishaji** na usanidi wa interfaces passive, **muvamizi** anaweza kuingilia routing ya EIGRP na kusababisha **uchafuzi wa jedwali za routing**. Zaidi ya hayo, mtandao wa EIGRP (kwa maneno mengine, autonomous system) **ni usawa na haugawiki katika maeneo yoyote**. Ikiwa **mshambuliaji ataingiza route**, kuna uwezekano route hiyo itaenea katika mfumo mzima wa autonomous EIGRP.
Kushambulia mfumo wa EIGRP kunahitaji **kuanzisha jirani na route halali ya EIGRP**, ambayo inafungua uwezekano mwingi, kutoka kwa upelelezi wa msingi hadi sindano mbalimbali.
Kushambulia mfumo wa EIGRP kunahitaji **kuanzisha ujirani na router halali wa EIGRP**, jambo ambalo hufungua fursa nyingi, kutoka reconnaissance ya msingi hadi aina mbalimbali za injections.
[**FRRouting**](https://frrouting.org/) inakuwezesha kutekeleza **virtual router inayounga mkono BGP, OSPF, EIGRP, RIP na itifaki nyingine.** Yote unayotakiwa kufanya ni kuitegemea kwenye mfumo wa mshambuliaji na unaweza kujionyesha kama router halali katika eneo la routing.
[**FRRouting**](https://frrouting.org/) inakuwezesha kutekeleza **router ya virtual inayosaidia BGP, OSPF, EIGRP, RIP na protokali nyingine.** Unachohitaji kufanya ni kuikamilisha kwenye mfumo wa mshambuliaji wako na unaweza kweli kujiweka kama router halali katika eneo la routing.
{{#ref}}
eigrp-attacks.md
{{#endref}}
[**Coly**](https://code.google.com/p/coly/) ina uwezo wa kukamata matangazo ya EIGRP (Enhanced Interior Gateway Routing Protocol). Pia inaruhusu sindano ya pakiti, ambayo inaweza kutumika kubadilisha usanidi wa routing.
[**Coly**](https://code.google.com/p/coly/) ina uwezo wa kukamata matangazo ya EIGRP (Enhanced Interior Gateway Routing Protocol). Pia inawezesha injection ya packets, ambazo zinaweza kutumika kubadilisha usanidi wa routing.
### OSPF
Katika protokali ya Open Shortest Path First (OSPF) **uthibitisho wa MD5 mara nyingi unatumika kuhakikisha mawasiliano salama kati ya route**rs. Hata hivyo, kipimo hiki cha usalama kinaweza kuathiriwa kwa kutumia zana kama Loki na John the Ripper. Zana hizi zina uwezo wa kukamata na kubomoa hashi za MD5, zikifunua funguo za uthibitisho. Mara funguo hii inapopatikana, inaweza kutumika kuingiza taarifa mpya za routing. Ili kusanidi vigezo vya njia na kuanzisha funguo zilizovunjwa, tabo za _Injection_ na _Connection_ zinatumika, mtawalia.
Katika itifaki ya Open Shortest Path First (OSPF), uthibitishaji wa MD5 mara nyingi hutumika kuhakikisha mawasiliano salama kati ya routers. Hata hivyo, hatua hii ya usalama inaweza kuvurugwa kwa kutumia zana kama Loki na John the Ripper. Zana hizi zina uwezo wa kukamata na kuvunja MD5 hashes, zikifichua ufunguo wa uthibitishaji. Mara ufunguo huo unapopatikana, unaweza kutumika kuingiza taarifa mpya za routing. Ili kusanidi vigezo vya route na kuweka ufunguo uliovamiwa, tabo za _Injection_ na _Connection_ zinatumiwa kwa mtiririko huo.
- **Kukamata na Kubomoa Hashes za MD5:** Zana kama Loki na John the Ripper zinatumika kwa kusudi hili.
- **Kusanidi Vigezo vya Njia:** Hii inafanywa kupitia tabo ya _Injection_.
- **Kuweka Funguo Iliyovunjwa:** Funguo inasanidiwa chini ya tabo ya _Connection_.
- **Kukamata na Kuvunja MD5 Hashes:** Zana kama Loki na John the Ripper zinatumika kwa madhumuni haya.
- **Kusanidi Vigezo vya Route:** Hufanywa kupitia tabo ya _Injection_.
- **Kuweka Ufunguo Uliovamiwa:** Ufunguo unasanidiwa chini ya tabo ya _Connection_.
### Other Generic Tools & Sources
- [**Above**](https://github.com/c4s73r/Above): Zana ya kuchanganua trafiki ya mtandao na kupata udhaifu
- Unaweza kupata **maelezo zaidi kuhusu mashambulizi ya mtandao** [**hapa**](https://github.com/Sab0tag3d/MITM-cheatsheet).
- [**Above**](https://github.com/c4s73r/Above): Zana ya kuchambua trafiki ya mtandao na kubaini udhaifu
- Unaweza kupata **taarifa zaidi kuhusu mashambulizi ya mtandao** [**here**](https://github.com/Sab0tag3d/MITM-cheatsheet).
## **Spoofing**
Mshambuliaji anasanidi vigezo vyote vya mtandao (GW, IP, DNS) vya mwanachama mpya wa mtandao kwa kutuma majibu ya DHCP ya uongo.
Mshambuliaji anasanidi vigezo vyote vya mtandao (GW, IP, DNS) vya mwanachama mpya wa mtandao kwa kutuma DHCP responses za bandia.
```bash
Ettercap
yersinia dhcp -attack 2 #More parameters are needed
```
### ARP Spoofing
Angalia [sehemu ya awali](#arp-spoofing).
Angalia [previous section](#arp-spoofing).
### ICMPRedirect
ICMP Redirect inajumuisha kutuma pakiti ya ICMP aina 1 msimbo 5 ambayo inaonyesha kwamba mshambuliaji ndiye njia bora ya kufikia IP. Kisha, wakati mwathirika anataka kuwasiliana na IP, atatuma pakiti kupitia mshambuliaji.
ICMP Redirect inajumuisha kutuma ICMP packet type 1 code 5 kinachoonyesha kwamba attacker ndiye njia bora ya kufikia IP. Kisha, wakati victim atakapotaka kuwasiliana na IP, atatuma packet kupitia attacker.
```bash
Ettercap
icmp_redirect
@ -604,7 +606,7 @@ hping3 [VICTIM IP ADDRESS] -C 5 -K 1 -a [VICTIM DEFAULT GW IP ADDRESS] --icmp-gw
```
### DNS Spoofing
Mshambuliaji atatatua baadhi (au zote) za maeneo ambayo mwathirika anahitaji.
Mshambuliaji atatatua baadhi (au yote) ya vikoa ambavyo mhanga anaomba.
```bash
set dns.spoof.hosts ./dns.spoof.hosts; dns.spoof on
```
@ -613,9 +615,9 @@ set dns.spoof.hosts ./dns.spoof.hosts; dns.spoof on
apt-get install dnsmasqecho "addn-hosts=dnsmasq.hosts" > dnsmasq.conf #Create dnsmasq.confecho "127.0.0.1 domain.example.com" > dnsmasq.hosts #Domains in dnsmasq.hosts will be the domains resolved by the Dsudo dnsmasq -C dnsmasq.conf --no-daemon
dig @localhost domain.example.com # Test the configured DNS
```
### Local Gateways
### Milango ya ndani
Njia nyingi za mifumo na mitandao mara nyingi zipo. Baada ya kujenga orodha ya anwani za MAC ndani ya mtandao wa ndani, tumia _gateway-finder.py_ kutambua mwenyeji wanaounga mkono IPv4 forwarding.
Mara nyingi kuna njia nyingi za kufikia mifumo na mitandao. Baada ya kuunda orodha ya anwani za MAC ndani ya mtandao wa ndani, tumia _gateway-finder.py_ kutambua hosts zinazounga mkono IPv4 forwarding.
```
root@kali:~# git clone https://github.com/pentestmonkey/gateway-finder.git
root@kali:~# cd gateway-finder/
@ -635,35 +637,35 @@ gateway-finder v1.0 http://pentestmonkey.net/tools/gateway-finder
```
### [Spoofing LLMNR, NBT-NS, and mDNS](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
Kwa ajili ya kutatua mwenyeji wa ndani wakati utafutaji wa DNS haufanikiwi, mifumo ya Microsoft inategemea **Link-Local Multicast Name Resolution (LLMNR)** na **NetBIOS Name Service (NBT-NS)**. Vivyo hivyo, **Apple Bonjour** na utekelezaji wa **Linux zero-configuration** hutumia **Multicast DNS (mDNS)** kwa ajili ya kugundua mifumo ndani ya mtandao. Kutokana na asili isiyo na uthibitisho ya protokali hizi na uendeshaji wao juu ya UDP, kutangaza ujumbe, zinaweza kutumiwa na washambuliaji wanaolenga kuelekeza watumiaji kwenye huduma mbaya.
Kwa utekelezaji wa kutatua majina ya hosti ya ndani pale utafutaji wa DNS unaposhindwa, mifumo ya Microsoft inategemea Link-Local Multicast Name Resolution (LLMNR) na NetBIOS Name Service (NBT-NS). Vilevile, Apple Bonjour na Linux zero-configuration implementations hutumia Multicast DNS (mDNS) kugundua systems ndani ya mtandao. Kutokana na asili isiyothibitishwa ya protokoli hizi na jinsi zinavyofanya kazi juu ya UDP kwa kutuma matangazo, zinaweza kutumiwa na attackers wanaolenga kuwalenga watumiaji na kuwarekebisha kwa huduma zenye madhara.
Unaweza kujifanya kuwa huduma zinazotafutwa na wenyeji kwa kutumia Responder kutuma majibu ya uongo.\
Soma hapa maelezo zaidi kuhusu [jinsi ya Kujifanya huduma na Responder](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
Unaweza kuiga services zinazotafutwa na hosts kwa kutumia Responder kutuma majibu ya uongo.\
Soma hapa habari zaidi kuhusu [how to Impersonate services with Responder](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
### [Spoofing WPAD](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
Vivinjari kwa kawaida hutumia **Web Proxy Auto-Discovery (WPAD) protocol ili kupata mipangilio ya proxy kiotomatiki**. Hii inahusisha kupata maelezo ya usanidi kutoka kwa seva, hasa kupitia URL kama "http://wpad.example.org/wpad.dat". Ugunduzi wa seva hii na wateja unaweza kutokea kupitia mitindo mbalimbali:
Browsers kawaida hutumia the Web Proxy Auto-Discovery (WPAD) protocol ili kupata mipangilio ya proxy kwa otomatiki. Hii inajumuisha kupata maelezo ya konfigurasheni kutoka kwa server, hasa kupitia URL kama "http://wpad.example.org/wpad.dat". Ugundaji wa server hii na clients unaweza kutokea kwa njia mbalimbali:
- Kupitia **DHCP**, ambapo ugunduzi unarahisishwa kwa kutumia nambari maalum ya kuingia 252.
- Kwa **DNS**, ambayo inahusisha kutafuta jina la mwenyeji lililoandikwa _wpad_ ndani ya eneo la ndani.
- Kupitia **Microsoft LLMNR na NBT-NS**, ambazo ni mitindo ya akiba inayotumika katika hali ambapo utafutaji wa DNS haufanikiwi.
- Kupitia **DHCP**, ambapo ugundaji hufanywa kwa kutumia entry maalum ya code 252.
- Kwa **DNS**, ambayo inahusisha kutafuta hostname iliyo alama _wpad_ ndani ya domain ya ndani.
- Kupitia **Microsoft LLMNR and NBT-NS**, ambazo ni mbinu za fallback zinazotumika pale utafutaji wa DNS haufaniki.
Chombo cha Responder kinatumia faida ya protokali hii kwa kutenda kama **seva mbaya ya WPAD**. Kinatumia DHCP, DNS, LLMNR, na NBT-NS kuwapotosha wateja kuungana nayo. Ili kuingia kwa undani zaidi jinsi huduma zinaweza kujifananisha kwa kutumia Responder [angalia hii](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
Zana Responder inachukua faida ya protocol hii kwa kufanya kazi kama server ya WPAD yenye nia mbaya. Inatumia DHCP, DNS, LLMNR, na NBT-NS kudanganya clients ili waiunge nazo. Ili kujifunza kwa undani jinsi services zinavyoweza kuigwa kwa kutumia Responder [check this](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
### [Spoofing SSDP and UPnP devices](spoofing-ssdp-and-upnp-devices.md)
Unaweza kutoa huduma tofauti katika mtandao kujaribu **kudanganya mtumiaji** kuingiza baadhi ya **akidi za maandiko wazi**. **Maelezo zaidi kuhusu shambulio hili katika** [**Spoofing SSDP and UPnP Devices**](spoofing-ssdp-and-upnp-devices.md)**.**
Unaweza kutoa services mbalimbali ndani ya mtandao kujaribu **kudanganya mtumiaji** kuingiza baadhi ya **nywila za maandishi wazi**. **More information about this attack in** [**Spoofing SSDP and UPnP Devices**](spoofing-ssdp-and-upnp-devices.md)**.**
### IPv6 Neighbor Spoofing
Shambulio hili linafanana sana na ARP Spoofing lakini katika ulimwengu wa IPv6. Unaweza kumfanya mwathirika kufikiri kwamba IPv6 ya GW ina MAC ya mshambuliaji.
Shambulio hili ni karibu sawa na ARP Spoofing lakini katika ulimwengu wa IPv6. Unaweza kufanya madhulumiwa afikiri kuwa IPv6 ya GW ina MAC ya mshambuliaji.
```bash
sudo parasite6 -l eth0 # This option will respond to every requests spoofing the address that was requested
sudo fake_advertise6 -r -w 2 eth0 <Router_IPv6> #This option will send the Neighbor Advertisement packet every 2 seconds
```
### IPv6 Router Advertisement Spoofing/Flooding
Baadhi ya mifumo ya uendeshaji huweka chaguo-msingi lango kutoka kwa pakiti za RA zinazotumwa kwenye mtandao. Ili kutangaza mshambuliaji kama router ya IPv6 unaweza kutumia:
Baadhi ya OS huweka kwa chaguo-msingi gateway kutoka kwa vifurushi vya RA vinavyotumwa kwenye mtandao. Ili kutangaza mshambuliaji kama IPv6 router unaweza kutumia:
```bash
sysctl -w net.ipv6.conf.all.forwarding=1 4
ip route add default via <ROUTER_IPv6> dev wlan0
@ -671,20 +673,20 @@ fake_router6 wlan0 fe80::01/16
```
### IPv6 DHCP spoofing
Kwa kawaida, baadhi ya mifumo ya uendeshaji hujaribu kuunda DNS kwa kusoma pakiti ya DHCPv6 katika mtandao. Kisha, mshambuliaji anaweza kutuma pakiti ya DHCPv6 ili kujipatia mwenyewe kama DNS. DHCP pia inatoa IPv6 kwa mwathirika.
Kwa chaguo-msingi baadhi ya OS hujaribu kusanidi DNS kwa kusoma paketi ya DHCPv6 kwenye mtandao. Mshambuliaji anaweza kutuma paketi ya DHCPv6 ili kujifanya kuwa DNS. DHCP pia hutoa anwani ya IPv6 kwa muathiriwa.
```bash
dhcp6.spoof on
dhcp6.spoof.domains <list of domains>
mitm6
```
### HTTP (ukurasa wa uwongo na sindano ya JS)
### HTTP (ukurasa bandia na JS code injection)
## Mashambulizi ya Mtandao
## Shambulio za Intaneti
### sslStrip
Kimsingi, kile ambacho shambulio hili linafanya ni, ikiwa **mtumiaji** anajaribu **kufikia** ukurasa wa **HTTP** ambao unarejelea toleo la **HTTPS**. **sslStrip** itakuwa na **kiunganishi cha HTTP na** **mteja** na **kiunganishi cha HTTPS na** **server** ili iweze **kunusa** kiunganishi hicho kwa **maandishi wazi**.
Kwa kawaida, shambulio hili hufanya ni kwamba, ikiwa **user** anajaribu **access** ukurasa wa **HTTP** unao **redirecting** kwa toleo la **HTTPS**, **sslStrip** itafanya **maintain** **HTTP connection with** **client** na **HTTPS connection with** **server**, hivyo itakuwa na uwezo wa **sniff** muunganisho kwa **plain text**.
```bash
apt-get install sslstrip
sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k
@ -693,29 +695,29 @@ sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
iptables -A INPUT -p tcp --destination-port 10000 -j ACCEPT
```
More info [here](https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf).
Maelezo zaidi [hapa](https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf).
### sslStrip+ na dns2proxy kwa kupita HSTS
### sslStrip+ and dns2proxy kwa kuvuka HSTS
**tofauti** kati ya **sslStrip+ na dns2proxy** dhidi ya **sslStrip** ni kwamba zitafanya **kuhamasisha** kwa mfano _**www.facebook.com**_ **kwenda** _**wwww.facebook.com**_ (zingatia **ziada** "**w**") na zitak seti **anwani ya kikoa hiki kama IP ya mshambuliaji**. Kwa njia hii, **mteja** at **unganishwa** na _**wwww.facebook.com**_ **(mshambuliaji)** lakini nyuma ya pazia **sslstrip+** it **hifadhi** **unganisho halisi** kupitia https na **www.facebook.com**.
Tofauti kati ya **sslStrip+ and dns2proxy** dhidi ya **sslStrip** ni kwamba zitafanya **redirect**, kwa mfano _**www.facebook.com**_ **kuwa** _**wwww.facebook.com**_ (kumbuka **"w"** ya ziada) na zitapanga **anwani ya domain hii kuwa IP ya attacker**. Kwa njia hii, **client** ita**connect** kwa _**wwww.facebook.com**_ **(the attacker)** lakini nyuma ya pazia **sslStrip+** itadumisha **real connection** kupitia https na **www.facebook.com**.
**lengo** la mbinu hii ni **kuepuka HSTS** kwa sababu _**wwww**.facebook.com_ **hata** itahifadhiwa katika **cache** ya kivinjari, hivyo kivinjari kitadanganywa kufanya **uthibitishaji wa facebook katika HTTP**.\
Zingatia kwamba ili kufanya shambulio hili, mwathirika lazima ajaribu kufikia kwanza [http://www.faceook.com](http://www.faceook.com) na sio https. Hii inaweza kufanywa kwa kubadilisha viungo ndani ya ukurasa wa http.
Lengo la mbinu hii ni **kuepuka HSTS** kwa sababu _**wwww.facebook.com**_ **haitahifadhiwa** katika **cache** ya browser, hivyo browser itadanganywa kufanya **facebook authentication in HTTP**.\
Tambua kwamba ili kutekeleza attack hii victim anapaswa kujaribu kufikia kwanza [http://www.faceook.com](http://www.faceook.com) na sio https. Hii inaweza kufanywa kwa kubadilisha links ndani ya ukurasa wa http.
More info [here](https://www.bettercap.org/legacy/#hsts-bypass), [here](https://www.slideshare.net/Fatuo__/offensive-exploiting-dns-servers-changes-blackhat-asia-2014) and [here](https://security.stackexchange.com/questions/91092/how-does-bypassing-hsts-with-sslstrip-work-exactly).
Taarifa zaidi [hapa](https://www.bettercap.org/legacy/#hsts-bypass), [hapa](https://www.slideshare.net/Fatuo__/offensive-exploiting-dns-servers-changes-blackhat-asia-2014) na [hapa](https://security.stackexchange.com/questions/91092/how-does-bypassing-hsts-with-sslstrip-work-exactly).
**sslStrip au sslStrip+ haitumiki tena. Hii ni kwa sababu kuna sheria za HSTS zilizohifadhiwa katika vivinjari, hivyo hata ikiwa ni mara ya kwanza kwa mtumiaji kufikia kikoa "muhimu" atakifikia kupitia HTTPS. Pia, zingatia kwamba sheria zilizohifadhiwa na sheria nyingine zilizoundwa zinaweza kutumia bendera** [**`includeSubdomains`**](https://hstspreload.appspot.com) **hivyo mfano wa** _**wwww.facebook.com**_ **kutoka awali hautafanya kazi tena kwani** _**facebook.com**_ **inatumia HSTS na `includeSubdomains`.**
**sslStrip or sslStrip+ haisaidi tena. Hii ni kwa sababu kuna HSTS rules zilizohifadhiwa awali kwenye browsers, hivyo hata kama ni mara ya kwanza mtumiaji anapofikia domain "important" ataifikia kupitia HTTPS. Pia, zingatia kwamba rules zilizohifadhiwa awali na rules zingine zinazotengenezwa zinaweza kutumia flag** [**`includeSubdomains`**](https://hstspreload.appspot.com) **hivyo mfano wa** _**wwww.facebook.com**_ **uliotajwa hapo awali hautafanya kazi tena kwa kuwa** _**facebook.com**_ **inatumia HSTS na `includeSubdomains`.**
TODO: easy-creds, evilgrade, metasploit, factory
## TCP sikiliza katika bandari
## TCP kusikiliza kwenye port
```bash
sudo nc -l -p 80
socat TCP4-LISTEN:80,fork,reuseaddr -
```
## TCP + SSL sikiliza katika bandari
## TCP + SSL sikiliza kwenye port
#### Tengeneza funguo na cheti kilichojisajili mwenyewe
#### Tengeneza funguo na cheti kilichojisainiwa
```
FILENAME=server
# Generate a public/private key pair:
@ -729,14 +731,14 @@ cat $FILENAME.key $FILENAME.crt >$FILENAME.pem
```
sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 -
```
#### Sikiliza kwa kutumia cheti na kuelekeza kwa wenyeji
#### Sikiliza kwa kutumia cheti na uelekeze kwa hosts
```
sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 openssl-connect:[SERVER]:[PORT],verify=0
```
Wakati mwingine, ikiwa mteja anathibitisha kwamba CA ni halali, unaweza **kutumikia cheti cha jina la mwenyeji mwingine kilichosainiwa na CA**.\
Jaribio lingine la kuvutia ni kutumikia **cheti cha jina la mwenyeji kilichohitajika lakini kilichojisaini mwenyewe**.
Wakati mwingine, ikiwa mteja anathibitisha kwamba CA ni halali, unaweza **serve a certificate of other hostname signed by a CA**.\
Jaribio jingine la kuvutia ni kumtumia c**ertificate of the requested hostname but self-signed**.
Mambo mengine ya kujaribu ni kujaribu kusaini cheti na cheti halali ambacho si CA halali. Au kutumia funguo za umma halali, kulazimisha kutumia algorithimu kama diffie hellman (moja ambayo haitahitaji kufichua chochote na funguo halisi za faragha) na wakati mteja anapohitaji kipimo cha funguo halisi za faragha (kama hash) tuma kipimo bandia na kutarajia kwamba mteja hataangalia hili.
Mambo mengine ya kujaribu ni kujaribu kusaini certificate kwa kutumia certificate halali ambayo si CA halali. Au kutumia valid public key, kulazimisha kutumia algorithm kama diffie hellman (ile ambayo haitaji ku-decrypt chochote kwa private key halisi) na wakati client inapoomba probe ya private key halisi (kama hash) tuma probe ya uongo na kutarajia kwamba client haitachunguza hili.
## Bettercap
```bash
@ -764,19 +766,19 @@ set wifi.ap.channel 5
set wifi.ap.encryption false #If true, WPA2
wifi.recon on; wifi.ap
```
### Active Discovery Notes
### Vidokezo vya Ugunduzi wa Moja kwa Moja
Kumbuka kwamba wakati pakiti ya UDP inatumwa kwa kifaa ambacho hakina bandari iliyohitajika, ICMP (Port Unreachable) inatumwa.
Kumbuka kwamba wakati paketi ya UDP inapotumwa kwa kifaa ambacho hakina port iliyohitajika, ICMP (Port Unreachable) inatumwa.
### **ARP discover**
### **ARP ugundaji**
Pakiti za ARP zinatumika kugundua IP zipi zinatumika ndani ya mtandao. PC inapaswa kutuma ombi kwa kila anwani ya IP inayowezekana na zile tu zinazotumika zitajibu.
Paketi za ARP zinatumika kugundua IPs zinazotumika ndani ya mtandao. PC inapaswa kutuma ombi kwa kila anwani ya IP inayowezekana na ni zile tu zinazotumiwa zitakazo jibu.
### **mDNS (multicast DNS)**
Bettercap inatuma ombi la MDNS (kila X ms) ikitafuta **\_services\_.dns-sd.\_udp.local** mashine inayoshuhudia pakiti hii kawaida inajibu ombi hili. Kisha, inatafuta tu mashine zinazojibu "services".
Bettercap inatuma ombi la MDNS (kila X ms) likiuliza kwa **\_services\_.dns-sd.\_udp.local**. Mashine inayona paketi hii kawaida hupiga jibu kwa ombi hili. Kisha, inatafuta tu mashine zinazo jibu "services".
**Tools**
**Zana**
- Avahi-browser (--all)
- Bettercap (net.probe.mdns)
@ -784,15 +786,15 @@ Bettercap inatuma ombi la MDNS (kila X ms) ikitafuta **\_services\_.dns-sd.\_udp
### **NBNS (NetBios Name Server)**
Bettercap inatangaza pakiti kwa bandari 137/UDP ikitafuta jina "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA".
Bettercap inatuma paketi za broadcast kwa port 137/UDP ikiuomba jina "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA".
### **SSDP (Simple Service Discovery Protocol)**
Bettercap inatangaza pakiti za SSDP ikitafuta huduma za kila aina (UDP Port 1900).
Bettercap inatuma paketi za SSDP kwa broadcast ikitafuta aina zote za services (UDP Port 1900).
### **WSD (Web Service Discovery)**
Bettercap inatangaza pakiti za WSD ikitafuta huduma (UDP Port 3702).
Bettercap inatuma paketi za WSD kwa broadcast ikitafuta services (UDP Port 3702).
### Telecom / Mobile-Core (GTP) Exploitation
@ -802,7 +804,7 @@ Bettercap inatangaza pakiti za WSD ikitafuta huduma (UDP Port 3702).
telecom-network-exploitation.md
{{#endref}}
## References
## Marejeo
- [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
- **Network Security Assessment: Know Your Network (3rd edition)**