113 lines
8.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{{#include ../../banners/hacktricks-training.md}}
# Основи теорії IPv6
## Мережі
IPv6 адреси структуровані для покращення організації мережі та взаємодії пристроїв. IPv6 адреса ділиться на:
1. **Префікс мережі**: Перші 48 біт, що визначають сегмент мережі.
2. **ID підмережі**: Наступні 16 біт, що використовуються для визначення конкретних підмереж у межах мережі.
3. **Ідентифікатор інтерфейсу**: Останні 64 біти, які унікально ідентифікують пристрій у підмережі.
Хоча IPv6 не має протоколу ARP, що використовується в IPv4, він вводить **ICMPv6** з двома основними повідомленнями:
- **Запит сусіда (NS)**: Мультимедійні повідомлення для розв'язання адрес.
- **Реклама сусіда (NA)**: Уніicast відповіді на NS або спонтанні оголошення.
IPv6 також включає спеціальні типи адрес:
- **Адреса циклічного з'єднання (`::1`)**: Еквівалентна `127.0.0.1` в IPv4, для внутрішньої комунікації в межах хоста.
- **Локальні адреси зв'язку (`FE80::/10`)**: Для локальних мережевих активностей, не для маршрутизації в інтернеті. Пристрої в одній локальній мережі можуть виявляти один одного, використовуючи цей діапазон.
### Практичне використання IPv6 у мережевих командах
Для взаємодії з IPv6 мережами ви можете використовувати різні команди:
- **Ping локальних адрес**: Перевірте наявність локальних пристроїв за допомогою `ping6`.
- **Виявлення сусідів**: Використовуйте `ip neigh`, щоб переглянути пристрої, виявлені на канальному рівні.
- **alive6**: Альтернативний інструмент для виявлення пристроїв в одній мережі.
Нижче наведені деякі приклади команд:
```bash
ping6 I eth0 -c 5 ff02::1 > /dev/null 2>&1
ip neigh | grep ^fe80
# Alternatively, use alive6 for neighbor discovery
alive6 eth0
```
IPv6 адреси можуть бути отримані з MAC-адреси пристрою для локальної комунікації. Ось спрощений посібник про те, як отримати Link-local IPv6 адресу з відомої MAC-адреси, а також короткий огляд типів IPv6 адрес і методів виявлення IPv6 адрес у мережі.
## **Отримання Link-local IPv6 з MAC-адреси**
Дано MAC-адресу **`12:34:56:78:9a:bc`**, ви можете побудувати Link-local IPv6 адресу наступним чином:
1. Перетворіть MAC в формат IPv6: **`1234:5678:9abc`**
2. Додайте `fe80::` і вставте `fffe` посередині: **`fe80::1234:56ff:fe78:9abc`**
3. Інвертуйте сьомий біт зліва, змінивши `1234` на `1034`: **`fe80::1034:56ff:fe78:9abc`**
## **Типи IPv6 адрес**
- **Унікальна локальна адреса (ULA)**: Для локальних комунікацій, не призначена для маршрутизації в публічному інтернеті. Префікс: **`FEC00::/7`**
- **Мультимовна адреса**: Для комунікації один-до-багатьох. Доставляється до всіх інтерфейсів у мультимовній групі. Префікс: **`FF00::/8`**
- **Адреса Anycast**: Для комунікації один-до-найближчого. Надсилається до найближчого інтерфейсу відповідно до маршрутизаційного протоколу. Частина глобального унікального діапазону **`2000::/3`**.
## **Префікси адрес**
- **fe80::/10**: Link-Local адреси (схожі на 169.254.x.x)
- **fc00::/7**: Унікальний локальний унікаст (схожий на приватні діапазони IPv4, такі як 10.x.x.x, 172.16.x.x, 192.168.x.x)
- **2000::/3**: Глобальний унікаст
- **ff02::1**: Мультимовна адреса для всіх вузлів
- **ff02::2**: Мультимовна адреса для маршрутизаторів
## **Виявлення IPv6 адрес у мережі**
### Спосіб 1: Використання Link-local адрес
1. Отримайте MAC-адресу пристрою в мережі.
2. Отримайте Link-local IPv6 адресу з MAC-адреси.
### Спосіб 2: Використання мультимовлення
1. Надішліть пінг на мультимовну адресу `ff02::1`, щоб виявити IPv6 адреси в локальній мережі.
```bash
service ufw stop # Stop the firewall
ping6 -I <IFACE> ff02::1 # Send a ping to multicast address
ip -6 neigh # Display the neighbor table
```
## IPv6 Man-in-the-Middle (MitM) Attacks
Існує кілька технік для виконання атак MitM в мережах IPv6, таких як:
- Підробка ICMPv6 сусідніх або маршрутизаторських оголошень.
- Використання ICMPv6 перенаправлень або повідомлень "Пакет занадто великий" для маніпуляції маршрутизацією.
- Атака на мобільний IPv6 (зазвичай вимагає вимкнення IPSec).
- Налаштування підробленого DHCPv6 сервера.
# Identifying IPv6 Addresses in the eild
## Exploring Subdomains
Метод для знаходження піддоменів, які потенційно пов'язані з адресами IPv6, полягає у використанні пошукових систем. Наприклад, використання шаблону запиту, такого як `ipv6.*`, може бути ефективним. Конкретно, наступна команда пошуку може бути використана в Google:
```bash
site:ipv6./
```
## Використання DNS Запитів
Щоб ідентифікувати IPv6 адреси, можна запитувати певні типи DNS записів:
- **AXFR**: Запитує повний трансфер зони, що може виявити широкий спектр DNS записів.
- **AAAA**: Безпосередньо шукає IPv6 адреси.
- **ANY**: Широкий запит, який повертає всі доступні DNS записи.
## Пробивання з Ping6
Після визначення IPv6 адрес, пов'язаних з організацією, можна використовувати утиліту `ping6` для пробивання. Цей інструмент допомагає оцінити реакцію виявлених IPv6 адрес і може також допомогти виявити сусідні IPv6 пристрої.
## Посилання
- [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)
{{#include ../../banners/hacktricks-training.md}}