From 0cc255595dea12e5f994cb373c069fd978457bad Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 20 Aug 2025 10:33:01 +0000 Subject: [PATCH] Translated ['src/generic-methodologies-and-resources/pentesting-network/ --- .../pentesting-network/pentesting-ipv6.md | 74 +++++++++++++------ 1 file changed, 51 insertions(+), 23 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 07af5f9c3..0271e65c9 100644 --- a/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md +++ b/src/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md @@ -14,20 +14,20 @@ Adresy IPv6 są zorganizowane w celu poprawy organizacji sieci i interakcji urz Podczas gdy IPv6 pomija protokół ARP występujący w IPv4, wprowadza **ICMPv6** z dwoma głównymi komunikatami: -- **Zapytanie o sąsiada (NS)**: Wiadomości multicastowe do rozwiązywania adresów. -- **Ogłoszenie sąsiada (NA)**: Odpowiedzi unicastowe na NS lub spontaniczne ogłoszenia. +- **Zapytanie sąsiedztwa (NS)**: Wiadomości multicastowe do rozwiązywania adresów. +- **Ogłoszenie sąsiedztwa (NA)**: Odpowiedzi unicastowe na NS lub spontaniczne ogłoszenia. IPv6 wprowadza również specjalne typy adresów: - **Adres loopback (`::1`)**: Odpowiednik `127.0.0.1` w IPv4, do komunikacji wewnętrznej w hoście. -- **Adresy lokalne (`FE80::/10`)**: Do lokalnych działań sieciowych, nie do routingu w internecie. Urządzenia w tej samej lokalnej sieci mogą się nawzajem odkrywać, używając tego zakresu. +- **Adresy lokalne (`FE80::/10`)**: Do lokalnych działań sieciowych, nie do routingu w internecie. Urządzenia w tej samej lokalnej sieci mogą się nawzajem odkrywać, korzystając z tego zakresu. ### Praktyczne zastosowanie IPv6 w poleceniach sieciowych Aby interagować z sieciami IPv6, można używać różnych poleceń: - **Ping adresy lokalne**: Sprawdź obecność lokalnych urządzeń za pomocą `ping6`. -- **Odkrywanie sąsiadów**: Użyj `ip neigh`, aby zobaczyć urządzenia odkryte na warstwie łącza. +- **Odkrywanie sąsiedztwa**: Użyj `ip neigh`, aby zobaczyć urządzenia odkryte na warstwie łącza. - **alive6**: Alternatywne narzędzie do odkrywania urządzeń w tej samej sieci. Poniżej znajdują się przykłady poleceń: @@ -50,7 +50,7 @@ Dany adres MAC **`12:34:56:78:9a:bc`**, możesz skonstruować adres Link-local I ### **Typy adresów IPv6** -- **Unique Local Address (ULA)**: Do komunikacji lokalnej, nieprzeznaczone do routingu w internecie. Prefiks: **`FEC00::/7`** +- **Unique Local Address (ULA)**: Do komunikacji lokalnej, nieprzeznaczone do routingu w Internecie. Prefiks: **`FEC00::/7`** - **Multicast Address**: Do komunikacji jeden-do-wielu. Dostarczany do wszystkich interfejsów w grupie multicast. Prefiks: **`FF00::/8`** - **Anycast Address**: Do komunikacji jeden-do-najbliższego. Wysyłany do najbliższego interfejsu zgodnie z protokołem routingu. Część globalnego zakresu unicast **`2000::/3`**. @@ -59,17 +59,17 @@ Dany adres MAC **`12:34:56:78:9a:bc`**, możesz skonstruować adres Link-local I - **fe80::/10**: Adresy Link-Local (podobne do 169.254.x.x) - **fc00::/7**: Unique Local-Unicast (podobne do prywatnych zakresów IPv4, takich jak 10.x.x.x, 172.16.x.x, 192.168.x.x) - **2000::/3**: Global Unicast -- **ff02::1**: Multicast Wszystkie Węzły -- **ff02::2**: Multicast Węzły Routerów +- **ff02::1**: Multicast All Nodes +- **ff02::2**: Multicast Router Nodes ### **Odkrywanie adresów IPv6 w sieci** -#### Sposób 1: Użycie adresów Link-local +#### Sposób 1: Używając adresów Link-local 1. Uzyskaj adres MAC urządzenia w sieci. 2. Wyprowadź adres Link-local IPv6 z adresu MAC. -#### Sposób 2: Użycie Multicast +#### Sposób 2: Używając multicast 1. Wyślij ping do adresu multicast `ff02::1`, aby odkryć adresy IPv6 w lokalnej sieci. ```bash @@ -81,7 +81,7 @@ ip -6 neigh # Display the neighbor table Istnieje kilka technik wykonywania ataków MitM w sieciach IPv6, takich jak: -- Fałszowanie reklam sąsiedztwa lub routera ICMPv6. +- Fałszowanie reklamacji sąsiadów lub routerów ICMPv6. - Używanie komunikatów ICMPv6 redirect lub "Packet Too Big" do manipulacji trasowaniem. - Atakowanie mobilnego IPv6 (zwykle wymaga wyłączenia IPSec). - Ustawienie nieautoryzowanego serwera DHCPv6. @@ -90,7 +90,7 @@ Istnieje kilka technik wykonywania ataków MitM w sieciach IPv6, takich jak: ### Badanie subdomen -Metoda znajdowania subdomen, które mogą być powiązane z adresami IPv6, polega na wykorzystaniu wyszukiwarek. Na przykład, zastosowanie wzoru zapytania takiego jak `ipv6.*` może być skuteczne. Konkretnie, następujące polecenie wyszukiwania można użyć w Google: +Metoda znajdowania subdomen, które mogą być powiązane z adresami IPv6, polega na wykorzystaniu wyszukiwarek. Na przykład, zastosowanie wzoru zapytania takiego jak `ipv6.*` może być skuteczne. Konkretnie, można użyć następującego polecenia wyszukiwania w Google: ```bash site:ipv6./ ``` @@ -102,13 +102,13 @@ Aby zidentyfikować adresy IPv6, można zapytać o określone typy rekordów DNS - **AAAA**: Bezpośrednio poszukuje adresów IPv6. - **ANY**: Szerokie zapytanie, które zwraca wszystkie dostępne rekordy DNS. -### Probing z Ping6 +### Badanie za pomocą Ping6 Po zidentyfikowaniu adresów IPv6 związanych z organizacją, można użyć narzędzia `ping6` do badania. To narzędzie pomaga ocenić responsywność zidentyfikowanych adresów IPv6 i może również pomóc w odkrywaniu sąsiednich urządzeń IPv6. ## Techniki ataków na lokalną sieć IPv6 -Następujące sekcje obejmują praktyczne ataki IPv6 na warstwie 2, które można wykonać **w obrębie tego samego segmentu /64** bez znajomości jakiegoś globalnego prefiksu. Wszystkie pakiety pokazane poniżej są **link-local** i podróżują tylko przez lokalny przełącznik, co czyni je niezwykle dyskretnymi w większości środowisk. +Poniższe sekcje obejmują praktyczne ataki IPv6 na warstwie 2, które można wykonać **w obrębie tego samego segmentu /64** bez znajomości jakiegoś globalnego prefiksu. Wszystkie pakiety pokazane poniżej są **link-local** i podróżują tylko przez lokalny przełącznik, co czyni je niezwykle dyskretnymi w większości środowisk. ### Dostosowanie systemu do stabilnego laboratorium @@ -126,9 +126,9 @@ sudo sysctl -w fs.file-max=100000 sudo sysctl -w net.core.somaxconn=65535 sudo sysctl -w net.ipv4.tcp_tw_reuse=1 ``` -### Pasywne sniffing NDP i DHCPv6 +### Pasywne sniffowanie NDP i DHCPv6 -Ponieważ każdy host IPv6 **automatycznie dołącza do wielu grup multicastowych** (`ff02::1`, `ff02::2`, …) i komunikuje się za pomocą ICMPv6 dla SLAAC/NDP, możesz zmapować cały segment bez wysyłania pojedynczego pakietu. Poniższy jednowierszowy skrypt Python/Scapy nasłuchuje najciekawszych wiadomości L2 i drukuje kolorowy, stemplowany czasem dziennik, kto jest kim: +Ponieważ każdy host IPv6 **automatycznie dołącza do wielu grup multicastowych** (`ff02::1`, `ff02::2`, …) i używa ICMPv6 do SLAAC/NDP, możesz zmapować cały segment bez wysyłania pojedynczego pakietu. Poniższy jednowierszowy skrypt Python/Scapy nasłuchuje najciekawszych wiadomości L2 i drukuje kolorowy, stemplowany czasem log, kto jest kim: ```python #!/usr/bin/env python3 from scapy.all import * @@ -195,11 +195,11 @@ argp.add_argument('-t','--time',type=int,default=0,help='Duration (0 = infinite) a = argp.parse_args() sniff(iface=a.interface,prn=handler,timeout=a.time or None,store=0) ``` -Wynik: pełna **topologia lokalna linku** (MAC ⇄ IPv6) w ciągu kilku sekund, bez wywoływania systemów IPS/IDS, które polegają na aktywnych skanach. +Wynik: pełna **topologia link-local** (MAC ⇄ IPv6) w ciągu kilku sekund, bez wywoływania systemów IPS/IDS, które polegają na aktywnych skanach. -### Fałszowanie ogłoszeń routera (RA) +### Fałszowanie Reklam Routera (RA) -Hosty IPv6 polegają na **ogłoszeniach routera ICMPv6** w celu odkrywania domyślnej bramy. Jeśli wstrzykniesz sfałszowane RA **częściej** niż prawdziwy router, urządzenia cicho przełączą się na Ciebie jako bramę. +Hosty IPv6 polegają na **Reklamach Routera ICMPv6** w celu odkrywania domyślnej bramy. Jeśli wstrzykniesz sfałszowane RA **częściej** niż prawdziwy router, urządzenia cicho przełączą się na Ciebie jako bramę. ```python #!/usr/bin/env python3 from scapy.all import * @@ -227,7 +227,34 @@ 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 ``` -### RDNSS (DNS) Spoofing za pomocą RA +#### Flagi Ogłoszenia Routera (M/O) i Preferencje Domyślnego Routera (Prf) + +| Flaga | Znaczenie | Efekt na zachowanie klienta | +|-------|-----------|-----------------------------| +| **M (Zarządzana Konfiguracja Adresu)** | Gdy ustawiona na `1`, host MUSI używać **DHCPv6** do uzyskania swojego adresu IPv6. | Całe adresowanie pochodzi z DHCPv6 – idealne do trucia w stylu *mitm6*. | +| **O (Inna Konfiguracja)** | Gdy ustawiona na `1`, host powinien używać **DHCPv6** tylko do uzyskania *innych* informacji (DNS, NTP, …). | Adres nadal przez SLAAC, ale DNS może być przejęty za pomocą DHCPv6. | +| **M=0 / O=0** | Czysta sieć SLAAC. | Możliwe są tylko sztuczki RA / RDNSS – DHCPv6 nie będzie wysyłane przez klientów. | +| **M=1 / O=1** | Środowisko mieszane. | Używane są zarówno DHCPv6, jak i SLAAC; powierzchnia do spoofingu jest największa. | + +Podczas pentestu możesz po prostu raz sprawdzić legalne RA i zdecydować, który wektor jest wykonalny: +```bash +sudo tcpdump -vvv -i eth0 'icmp6 && ip6[40] == 134' # capture Router Advertisements +``` +Szukaj pola `flags [M,O]` w zrzucie – nie ma potrzeby zgadywania. + +Pole **Prf** (Router Preference) wewnątrz nagłówka RA kontroluje, jak atrakcyjny wygląda twój fałszywy router, gdy obecnych jest *wiele* bram: + +| Wartość Prf | Binarnie | Znaczenie | +|-------------|----------|-----------| +| **Wysoki** | `10` | Klienci preferują ten router nad jakimkolwiek *Średnim*/*Niskim* | +| Średni (domyślny) | `01` | Używany przez prawie każde legalne urządzenie | +| Niski | `00` | Wybierany tylko wtedy, gdy nie ma lepszego routera | + +Podczas generowania pakietu za pomocą Scapy możesz ustawić to przez parametr `prf`, jak pokazano powyżej (`prf=0x1` → Wysoki). Łączenie **Wysokiego Prf**, **krótkiego interwału** i **niezerowego czasu życia** sprawia, że twój fałszywy gateway jest niezwykle stabilny. + +--- + +### Spoofing RDNSS (DNS) za pomocą RA [RFC 8106](https://datatracker.ietf.org/doc/html/rfc8106) pozwala na dodanie opcji **Recursive DNS Server (RDNSS)** wewnątrz RA. Nowoczesne systemy operacyjne (Win 10 ≥1709, Win 11, macOS Big Sur, Linux systemd-resolved, …) automatycznie mu ufają: ```python @@ -253,16 +280,16 @@ Klienci **dodają** twoje DNS do swojej listy resolverów na dany czas życia, c ### DHCPv6 DNS Spoofing (mitm6) -Zamiast SLAAC, sieci Windows często polegają na **stateless DHCPv6** dla DNS. [mitm6](https://github.com/rofl0r/mitm6) automatycznie odpowiada na wiadomości `Solicit` przepływem **Advertise → Reply**, który przypisuje **twój adres link-local jako DNS na 300 sekund**. To odblokowuje: +Zamiast SLAAC, sieci Windows często polegają na **stateless DHCPv6** dla DNS. [mitm6](https://github.com/rofl0r/mitm6) automatycznie odpowiada na wiadomości `Solicit` za pomocą przepływu **Advertise → Reply**, który przypisuje **twoje lokalne adresy jako DNS na 300 sekund**. To odblokowuje: -* ataki relay NTLM (WPAD + przejęcie DNS) -* przechwytywanie wewnętrznego rozwiązywania nazw bez dotykania routerów +* Ataki relay NTLM (WPAD + przejęcie DNS) +* Przechwytywanie wewnętrznego rozwiązywania nazw bez dotykania routerów Typowe użycie: ```bash sudo mitm6 -i eth0 --no-ra # only DHCPv6 poisoning ``` -### Ochrony +### Ochrona * **RA Guard / DHCPv6 Guard / ND Inspection** na zarządzanych przełącznikach. * Port ACL, które pozwalają tylko na wysyłanie RAs przez prawidłowy adres MAC routera. @@ -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}}