{{#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 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}}