mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
113 lines
8.2 KiB
Markdown
113 lines
8.2 KiB
Markdown
{{#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}}
|