Pentesting IPv6

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Podstawowa teoria IPv6

Sieci

Adresy IPv6 są strukturalnie zorganizowane, aby ułatwić organizację sieci i interakcję urządzeń. Adres IPv6 jest podzielony na:

  1. Prefiks sieciowy: Pierwsze 48 bitów, określający segment sieciowy.

  2. ID podsieci: Następne 16 bitów, używane do definiowania konkretnych podsieci w sieci.

  3. Identyfikator interfejsu: Ostatnie 64 bity, unikalnie identyfikujący urządzenie w podsieci.

Podczas gdy IPv6 pomija protokół ARP, który występuje w IPv4, wprowadza ICMPv6 z dwoma podstawowymi wiadomościami:

  • Solicytacja sąsiada (NS): Wiadomości multicast do rozwiązywania adresów.

  • Ogłoszenie sąsiada (NA): Unicastowe odpowiedzi na NS lub spontaniczne ogłoszenia.

IPv6 zawiera również specjalne typy adresów:

  • Adres pętli zwrotnej (::1): Odpowiednik 127.0.0.1 w IPv4, służy do komunikacji wewnętrznej wewnątrz hosta.

  • Adresy lokalne (FE80::/10): Do lokalnych działań sieciowych, nie do routingu internetowego. Urządzenia w tej samej sieci lokalnej mogą odnaleźć się nawzajem, korzystając z tego zakresu.

Praktyczne użycie IPv6 w poleceniach sieciowych

Aby korzystać z sieci IPv6, można używać różnych poleceń:

  • Ping adresów lokalnych: Sprawdź obecność lokalnych urządzeń za pomocą ping6.

  • Odkrywanie sąsiadów: Użyj ip neigh, aby wyświetlić urządzenia odkryte na warstwie łącza.

  • alive6: Alternatywne narzędzie do odkrywania urządzeń w tej samej sieci.

Poniżej znajdują się przykładowe polecenia:

ping6 –I eth0 -c 5 ff02::1 > /dev/null 2>&1
ip neigh | grep ^fe80

# Alternatively, use alive6 for neighbor discovery
alive6 eth0

Adresy IPv6 można wygenerować na podstawie adresu MAC urządzenia do lokalnej komunikacji. Oto uproszczony przewodnik, jak wygenerować adres IPv6 typu Link-local na podstawie znanego adresu MAC, oraz krótki opis typów adresów IPv6 i metod odkrywania adresów IPv6 w sieci.

Dla podanego adresu MAC 12:34:56:78:9a:bc, można skonstruować adres Link-local IPv6 w następujący sposób:

  1. Przekształć MAC na format IPv6: 1234:5678:9abc

  2. Dodaj prefiks fe80:: i wstaw fffe w środku: fe80::1234:56ff:fe78:9abc

  3. Odwróć siódmy bit od lewej strony, zmieniając 1234 na 1034: fe80::1034:56ff:fe78:9abc

Typy adresów IPv6

  • Unique Local Address (ULA): Do lokalnej komunikacji, nie przeznaczony do routingu w publicznym internecie. Prefiks: FEC00::/7

  • Adres multicast: Do komunikacji jedno-do-wielu. Dostarczany do wszystkich interfejsów w grupie multicastowej. Prefiks: FF00::/8

  • Adres anycast: Do komunikacji jedno-do-najbliższego. Wysyłany do najbliższego interfejsu zgodnie z protokołem routingu. Część globalnego zakresu unicast 2000::/3.

Prefiksy adresów

  • fe80::/10: Adresy Link-Local (podobne do 169.254.x.x)

  • fc00::/7: Unikalne lokalne unicast (podobne do prywatnych zakresów IPv4, takich jak 10.x.x.x, 172.16.x.x, 192.168.x.x)

  • 2000::/3: Globalny Unicast

  • ff02::1: Multicast Wszystkie Węzły

  • ff02::2: Multicast Węzły Routera

Odkrywanie adresów IPv6 w sieci

  1. Uzyskaj adres MAC urządzenia w sieci.

  2. Wygeneruj adres Link-local IPv6 na podstawie adresu MAC.

Sposób 2: Wykorzystanie Multicastu

  1. Wyślij ping na adres multicast ff02::1, aby odkryć adresy IPv6 w lokalnej sieci.

service ufw stop # Stop the firewall
ping6 -I <IFACE> ff02::1 # Send a ping to multicast address
ip -6 neigh # Display the neighbor table

Ataki typu Man-in-the-Middle (MitM) w IPv6

Istnieje kilka technik umożliwiających przeprowadzenie ataków typu MitM w sieciach IPv6, takich jak:

  • Podrobienie komunikatów ICMPv6 dotyczących sąsiadów lub routera.

  • Wykorzystanie komunikatów ICMPv6 przekierowania lub "Packet Too Big" do manipulacji trasowaniem.

  • Atakowanie mobilnego IPv6 (zwykle wymaga wyłączenia IPSec).

  • Utworzenie fałszywego serwera DHCPv6.

Identyfikacja adresów IPv6 w dziedzinie

Badanie subdomen

Metoda polegająca na znalezieniu subdomen potencjalnie powiązanych z adresami IPv6 polega na wykorzystaniu wyszukiwarek. Na przykład, można skorzystać z wzorca zapytania ipv6.*. W szczególności, w Google można użyć następującej komendy wyszukiwania:

site:ipv6./

Wykorzystywanie zapytań DNS

Aby zidentyfikować adresy IPv6, można zapytać o określone typy rekordów DNS:

  • AXFR: Wymaga pełnego transferu strefy, co może ujawnić szeroki zakres rekordów DNS.

  • AAAA: Bezpośrednio wyszukuje adresy IPv6.

  • ANY: Szerokie zapytanie, które zwraca wszystkie dostępne rekordy DNS.

Sondowanie za pomocą Ping6

Po zlokalizowaniu adresów IPv6 powiązanych z organizacją, można użyć narzędzia ping6 do sondowania. Narzędzie to pomaga ocenić reaktywność zidentyfikowanych adresów IPv6 i może również pomóc w odkrywaniu sąsiednich urządzeń IPv6.

Referencje

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated