From 5cd19b4c7add01e790df9b20efed5a740a37abb3 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 20 Aug 2025 10:32:06 +0000 Subject: [PATCH] Translated ['src/generic-methodologies-and-resources/pentesting-network/ --- .../pentesting-network/pentesting-ipv6.md | 66 +++++++++++++------ 1 file changed, 47 insertions(+), 19 deletions(-) diff --git a/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md b/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md index 89585fe5b..599cabe71 100644 --- a/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md +++ b/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md @@ -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}}