tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
Podstawowa teoria IPv6
Sieci
Adresy IPv6 są zorganizowane w celu poprawy organizacji sieci i interakcji urządzeń. Adres IPv6 dzieli się na:
- Prefiks sieciowy: Początkowe 48 bitów, określające segment sieci.
- ID podsieci: Następne 16 bitów, używane do definiowania konkretnych podsieci w sieci.
- Identyfikator interfejsu: Ostatnie 64 bity, unikalnie identyfikujące urządzenie w podsieci.
Podczas gdy IPv6 pomija protokół ARP występujący w IPv4, wprowadza ICMPv6 z dwoma głównymi komunikatami:
- Zapytanie sąsiednie (NS): Wiadomości multicastowe do rozwiązywania adresów.
- Ogłoszenie sąsiednie (NA): Odpowiedzi unicastowe na NS lub spontaniczne ogłoszenia.
IPv6 wprowadza również specjalne typy adresów:
- Adres loopback (
::1
): Odpowiednik127.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.
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. - alive6: Alternatywne narzędzie do odkrywania urządzeń w tej samej sieci.
Poniżej znajdują się przykłady poleceń:
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 mogą być wyprowadzone z adresu MAC urządzenia do komunikacji lokalnej. Oto uproszczony przewodnik, jak wyprowadzić adres Link-local IPv6 z znanego adresu MAC oraz krótki przegląd typów adresów IPv6 i metod odkrywania adresów IPv6 w sieci.
Wyprowadzanie Link-local IPv6 z adresu MAC
Dany adres MAC 12:34:56:78:9a:bc
, możesz skonstruować adres Link-local IPv6 w następujący sposób:
- Przekształć MAC na format IPv6:
1234:5678:9abc
- Dodaj
fe80::
i wstawfffe
w środku:fe80::1234:56ff:fe78:9abc
- Odwróć siódmy bit z lewej, zmieniając
1234
na1034
:fe80::1034:56ff:fe78:9abc
Typy adresów IPv6
- 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
.
Prefiksy adresów
- 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 All Nodes
- ff02::2: Multicast Router Nodes
Odkrywanie adresów IPv6 w sieci
Sposób 1: Używając adresów Link-local
- Uzyskaj adres MAC urządzenia w sieci.
- Wyprowadź adres Link-local IPv6 z adresu MAC.
Sposób 2: Używając multicast
- Wyślij ping do adresu 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 wykonywania ataków MitM w sieciach IPv6, takich jak:
- 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.
Identyfikacja adresów IPv6 w terenie
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:
site:ipv6./
Wykorzystanie zapytań DNS
Aby zidentyfikować adresy IPv6, można zapytać o określone typy rekordów DNS:
- AXFR: Żąda pełnego transferu strefy, co może ujawnić szeroki zakres rekordów DNS.
- AAAA: Bezpośrednio poszukuje adresów IPv6.
- ANY: Szerokie zapytanie, które zwraca wszystkie dostępne rekordy DNS.
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.
Odniesienia
- 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
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.