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 2421b0aa6..61ee64187 100644 --- a/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md +++ b/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md @@ -14,7 +14,7 @@ IPv6 adrese su strukturirane da poboljšaju organizaciju mreže i interakciju ur Dok IPv6 izostavlja ARP protokol prisutan u IPv4, uvodi **ICMPv6** sa dve glavne poruke: -- **Zahtev za susedom (NS)**: Multicast poruke za rešavanje adresa. +- **Zahtev za suseda (NS)**: Multicast poruke za rešavanje adresa. - **Oglas suseda (NA)**: Unicast odgovori na NS ili spontani oglasi. IPv6 takođe uključuje posebne tipove adresa: @@ -50,17 +50,17 @@ Data je MAC adresa **`12:34:56:78:9a:bc`**, možete konstruisati Link-local IPv6 ### **Tipovi IPv6 adresa** -- **Unique Local Address (ULA)**: Za lokalne komunikacije, nije namenjena za javno internet rutiranje. Prefiks: **`FEC00::/7`** -- **Multicast Address**: Za komunikaciju jedan-prema-mnogima. Dostavlja se svim interfejsima u multicast grupi. Prefiks: **`FF00::/8`** -- **Anycast Address**: Za komunikaciju jedan-prema-najbližem. Šalje se najbližem interfejsu prema ruting protokolu. Deo je **`2000::/3`** globalnog unicast opsega. +- **Jedinstvena lokalna adresa (ULA)**: Za lokalne komunikacije, nije namenjena za javno internet rutiranje. Prefiks: **`FEC00::/7`** +- **Multicast adresa**: Za komunikaciju jedan-prema-mnogima. Dostavlja se svim interfejsima u multicast grupi. Prefiks: **`FF00::/8`** +- **Anycast adresa**: Za komunikaciju jedan-prema-najbližem. Poslata najbližem interfejsu prema ruting protokolu. Deo **`2000::/3`** globalnog unicast opsega. ### **Prefiksi adresa** - **fe80::/10**: Link-Local adrese (slično 169.254.x.x) -- **fc00::/7**: Unique Local-Unicast (slično privatnim IPv4 opsezima kao što su 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**: Jedinstveni lokalni unicast (slično privatnim IPv4 opsezima kao što su 10.x.x.x, 172.16.x.x, 192.168.x.x) +- **2000::/3**: Globalni unicast +- **ff02::1**: Multicast Sve čvorove +- **ff02::2**: Multicast čvorovi rutera ### **Otkrivanje IPv6 adresa unutar mreže** @@ -81,7 +81,7 @@ ip -6 neigh # Display the neighbor table Postoji nekoliko tehnika za izvođenje MitM napada u IPv6 mrežama, kao što su: -- Lažiranje ICMPv6 suseda ili oglasa rutera. +- Spoofing ICMPv6 suseda ili oglasa rutera. - Korišćenje ICMPv6 preusmeravanja ili poruka "Packet Too Big" za manipulaciju rutiranjem. - Napad na mobilni IPv6 (obično zahteva da IPSec bude onemogućen). - Postavljanje lažnog DHCPv6 servera. @@ -104,7 +104,7 @@ Da bi se identifikovale IPv6 adrese, određene vrste DNS zapisa mogu se upitavat ### Istraživanje sa Ping6 -Nakon identifikacije IPv6 adresa povezanih sa organizacijom, može se koristiti `ping6` alat za istraživanje. Ovaj alat pomaže u proceni odzivnosti identifikovanih IPv6 adresa, a takođe može pomoći u otkrivanju susednih IPv6 uređaja. +Nakon identifikacije IPv6 adresa povezanih sa organizacijom, `ping6` alat može se koristiti za istraživanje. Ovaj alat pomaže u proceni odziva identifikovanih IPv6 adresa, a takođe može pomoći u otkrivanju susednih IPv6 uređaja. ## Tehnike Napada na IPv6 Lokalnu Mrežu @@ -112,7 +112,7 @@ Sledeće sekcije pokrivaju praktične layer-2 IPv6 napade koji se mogu izvršiti ### Podešavanje Sistema za Stabilan Laboratorija -Pre nego što se igra sa IPv6 saobraćajem, preporučuje se da se ojača vaša mašina kako bi se izbeglo trovanje sopstvenim testovima i kako bi se postigla najbolja performansa tokom masovnog ubacivanja/sniffanja paketa. +Pre nego što se igra sa IPv6 saobraćajem, preporučuje se da se ojača vaša mašina kako bi se izbeglo trovanje sopstvenim testovima i kako bi se postigla najbolja performansa tokom masovnog injektovanja/snifovanja paketa. ```bash # Enable promiscuous mode to capture all frames sudo ip link set dev eth0 promisc on @@ -221,15 +221,42 @@ ICMPv6NDOptSrcLLAddr(lladdr=args.mac)) send(ra,iface=args.interface,loop=1,inter=args.interval) ``` -Da biste zapravo **prosledili saobraćaj** nakon što ste pobedili u trci: +Da biste zapravo **prosledili saobraćaj** nakon što pobedite u trci: ```bash 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 | Značenje | Efekat na ponašanje klijenta | +|------|---------|----------------------------| +| **M (Managed Address Configuration)** | Kada je postavljeno na `1`, host MORA koristiti **DHCPv6** da bi dobio svoju IPv6 adresu. | Cela adresa dolazi iz DHCPv6 – savršeno za *mitm6* stil trovanja. | +| **O (Other Configuration)** | Kada je postavljeno na `1`, host bi trebao koristiti **DHCPv6** samo da bi dobio *druge* informacije (DNS, NTP, …). | Adresa i dalje putem SLAAC, ali DNS može biti preuzet putem DHCPv6. | +| **M=0 / O=0** | Čista SLAAC mreža. | Samo RA / RDNSS trikovi su mogući – DHCPv6 neće biti poslat od strane klijenata. | +| **M=1 / O=1** | Mešovito okruženje. | Koriste se i DHCPv6 i SLAAC; površina za spoofing je najveća. | + +Tokom pentesta možete jednostavno pregledati legitimni RA jednom i odlučiti koji je vektor izvodljiv: +```bash +sudo tcpdump -vvv -i eth0 'icmp6 && ip6[40] == 134' # capture Router Advertisements +``` +Potražite polje `flags [M,O]` u dump-u – bez potrebe za pogađanjem. + +Polje **Prf** (Router Preference) unutar RA zaglavlja kontroliše koliko atraktivan izgleda vaš lažni ruter kada su prisutna *višestruka* prolaza: + +| Prf value | Binary | Meaning | +|-----------|--------|---------| +| **High** | `10` | Klijenti preferiraju ovaj ruter u odnosu na bilo koji *Medium*/*Low* | +| Medium (default) | `01` | Koristi se od strane gotovo svakog legitimnog uređaja | +| Low | `00` | Biraju se samo kada ne postoji bolji ruter | + +Kada generišete paket sa Scapy, možete ga postaviti putem `prf` parametra kao što je prikazano iznad (`prf=0x1` → High). Kombinovanje **High Prf**, **kratkog intervala** i **ne-nultog veka trajanja** čini vaš lažni prolaz izuzetno stabilnim. + +--- + ### RDNSS (DNS) Spoofing putem RA -[RFC 8106](https://datatracker.ietf.org/doc/html/rfc8106) omogućava dodavanje **Recursive DNS Server (RDNSS)** opcije unutar RA. Moderni operativni sistemi (Win 10 ≥1709, Win 11, macOS Big Sur, Linux systemd-resolved, …) automatski mu veruju: +[RFC 8106](https://datatracker.ietf.org/doc/html/rfc8106) omogućava dodavanje opcije **Recursive DNS Server (RDNSS)** unutar RA. Moderni operativni sistemi (Win 10 ≥1709, Win 11, macOS Big Sur, Linux systemd-resolved, …) automatski mu veruju: ```python #!/usr/bin/env python3 from scapy.all import * @@ -249,13 +276,13 @@ ICMPv6NDOptRDNSS(dns=[args.dns],lifetime=args.lifetime)) send(ra,iface=args.interface,loop=1,inter=args.interval) ``` -Klijenti će **dodati** vaš DNS na svoju listu resolvera za dato vreme trajanja, omogućavajući potpuno DNS preusmeravanje dok vrednost ne istekne ili ne pošaljete `lifetime=0` povratak. +Klijenti će **dodati** vaš DNS na svoju listu resolvera za dato vreme, omogućavajući potpuno DNS preusmeravanje dok vrednost ne istekne ili ne pošaljete `lifetime=0` povratak. ### DHCPv6 DNS Spoofing (mitm6) Umesto SLAAC-a, Windows mreže često zavise od **stateless DHCPv6** za DNS. [mitm6](https://github.com/rofl0r/mitm6) automatski odgovara na `Solicit` poruke sa **Advertise → Reply** tokom koji dodeljuje **vašu link-local adresu kao DNS na 300 sekundi**. Ovo otključava: -* NTLM relajne napade (WPAD + DNS preusmeravanje) +* NTLM relayski napadi (WPAD + DNS preusmeravanje) * Presretanje interne rezolucije imena bez dodirivanja rutera Tipična upotreba: @@ -266,7 +293,7 @@ sudo mitm6 -i eth0 --no-ra # only DHCPv6 poisoning * **RA Guard / DHCPv6 Guard / ND Inspekcija** na upravljanim prekidačima. * Port ACL-ovi koji dozvoljavaju samo legitimnom MAC-u rutera da šalje RAs. -* Pratiti **nepravilne RAs visoke brzine** ili iznenadne **RDNSS promene**. +* Pratiti **nepravilne visoke stope RAs** ili iznenadne **RDNSS promene**. * Onemogućavanje IPv6 na krajnjim tačkama je privremeno rešenje koje često kvari moderne usluge i skriva slepe tačke – umesto toga, preferirati L2 filtriranje. ## Reference @@ -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) +- [Praktični vodič za IPv6 napade u lokalnoj mreži](https://habr.com/ru/articles/930526/) {{#include ../../banners/hacktricks-training.md}}