mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/pentesting-network/
This commit is contained in:
parent
cdf198add0
commit
8bee3e5ec4
@ -10,23 +10,23 @@ IPv6 адреси структуровані для покращення орг
|
||||
|
||||
1. **Префікс мережі**: Перші 48 біт, що визначають сегмент мережі.
|
||||
2. **ID підмережі**: Наступні 16 біт, що використовуються для визначення конкретних підмереж у межах мережі.
|
||||
3. **Ідентифікатор інтерфейсу**: Останні 64 біти, які унікально ідентифікують пристрій у межах підмережі.
|
||||
3. **Ідентифікатор інтерфейсу**: Останні 64 біти, які унікально ідентифікують пристрій у підмережі.
|
||||
|
||||
Хоча IPv6 не містить протокол ARP, що є в IPv4, він вводить **ICMPv6** з двома основними повідомленнями:
|
||||
|
||||
- **Запит сусіда (NS)**: Мультимедійні повідомлення для розв'язання адрес.
|
||||
- **Запит сусіда (NS)**: Мультимовні повідомлення для розв'язання адрес.
|
||||
- **Реклама сусіда (NA)**: Уніicast відповіді на NS або спонтанні оголошення.
|
||||
|
||||
IPv6 також включає спеціальні типи адрес:
|
||||
|
||||
- **Адреса циклічного з'єднання (`::1`)**: Еквівалентна `127.0.0.1` в IPv4, для внутрішньої комунікації в межах хоста.
|
||||
- **Локальні адреси зв'язку (`FE80::/10`)**: Для локальних мережевих дій, не для маршрутизації в інтернеті. Пристрої в одній локальній мережі можуть виявляти один одного, використовуючи цей діапазон.
|
||||
- **Локальні адреси зв'язку (`FE80::/10`)**: Для локальних мережевих дій, не для маршрутизації в інтернеті. Пристрої в одній локальній мережі можуть виявляти одне одного, використовуючи цей діапазон.
|
||||
|
||||
### Практичне використання IPv6 у мережевих командах
|
||||
|
||||
Для взаємодії з IPv6 мережами ви можете використовувати різні команди:
|
||||
|
||||
- **Ping локальних адрес**: Перевірте наявність локальних пристроїв за допомогою `ping6`.
|
||||
- **Ping локальних адрес**: Перевірте наявність локальних пристроїв, використовуючи `ping6`.
|
||||
- **Виявлення сусідів**: Використовуйте `ip neigh`, щоб переглянути пристрої, виявлені на канальному рівні.
|
||||
- **alive6**: Альтернативний інструмент для виявлення пристроїв в одній мережі.
|
||||
|
||||
@ -51,16 +51,16 @@ IPv6 адреси можуть бути отримані з MAC-адреси п
|
||||
### **Типи IPv6 адрес**
|
||||
|
||||
- **Унікальна локальна адреса (ULA)**: Для локальних комунікацій, не призначена для маршрутизації в публічному інтернеті. Префікс: **`FEC00::/7`**
|
||||
- **Мультимедійна адреса**: Для комунікації один-до-багатьох. Доставляється до всіх інтерфейсів у групі мультимедіа. Префікс: **`FF00::/8`**
|
||||
- **Адреса anycast**: Для комунікації один-до-найближчого. Надсилається до найближчого інтерфейсу відповідно до маршрутизаційного протоколу. Частина глобального унікального діапазону **`2000::/3`**.
|
||||
- **Мультимовна адреса**: Для комунікації один-до-багатьох. Доставляється до всіх інтерфейсів у мультимовній групі. Префікс: **`FF00::/8`**
|
||||
- **Анкаст адреса**: Для комунікації один-до-найближчого. Надсилається до найближчого інтерфейсу відповідно до маршрутизаційного протоколу. Частина глобального унікального діапазону **`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**: Мультимедійна адреса для маршрутизаторів
|
||||
- **ff02::1**: Мультимовна адреса для всіх вузлів
|
||||
- **ff02::2**: Мультимовна адреса для маршрутизаторів
|
||||
|
||||
### **Виявлення IPv6 адрес у мережі**
|
||||
|
||||
@ -69,9 +69,9 @@ IPv6 адреси можуть бути отримані з MAC-адреси п
|
||||
1. Отримайте MAC-адресу пристрою в мережі.
|
||||
2. Отримайте Link-local IPv6 адресу з MAC-адреси.
|
||||
|
||||
#### Спосіб 2: Використання мультимедіа
|
||||
#### Спосіб 2: Використання мультимовної адреси
|
||||
|
||||
1. Надішліть пінг на мультимедійну адресу `ff02::1`, щоб виявити IPv6 адреси в локальній мережі.
|
||||
1. Надішліть пінг на мультимовну адресу `ff02::1`, щоб виявити IPv6 адреси в локальній мережі.
|
||||
```bash
|
||||
service ufw stop # Stop the firewall
|
||||
ping6 -I <IFACE> ff02::1 # Send a ping to multicast address
|
||||
@ -79,7 +79,7 @@ ip -6 neigh # Display the neighbor table
|
||||
```
|
||||
### IPv6 Man-in-the-Middle (MitM) Attacks
|
||||
|
||||
Існує кілька технік для виконання MitM-атак в мережах IPv6, таких як:
|
||||
Існує кілька технік для виконання MitM атак в IPv6 мережах, таких як:
|
||||
|
||||
- Підробка ICMPv6 сусідів або рекламних оголошень маршрутизаторів.
|
||||
- Використання ICMPv6 перенаправлень або повідомлень "Пакет занадто великий" для маніпуляції маршрутизацією.
|
||||
@ -90,7 +90,7 @@ ip -6 neigh # Display the neighbor table
|
||||
|
||||
### Exploring Subdomains
|
||||
|
||||
Метод для знаходження піддоменів, які потенційно пов'язані з адресами IPv6, полягає у використанні пошукових систем. Наприклад, використання шаблону запиту, такого як `ipv6.*`, може бути ефективним. Конкретно, наступна команда пошуку може бути використана в Google:
|
||||
Метод для знаходження піддоменів, які потенційно пов'язані з IPv6 адресами, полягає у використанні пошукових систем. Наприклад, використання шаблону запиту, такого як `ipv6.*`, може бути ефективним. Конкретно, наступна команда пошуку може бути використана в Google:
|
||||
```bash
|
||||
site:ipv6./
|
||||
```
|
||||
@ -98,13 +98,13 @@ site:ipv6./
|
||||
|
||||
Щоб ідентифікувати IPv6 адреси, можна запитувати певні типи DNS записів:
|
||||
|
||||
- **AXFR**: Запит на повний трансфер зони, що потенційно виявляє широкий спектр DNS записів.
|
||||
- **AXFR**: Запит на повний трансфер зони, що потенційно може виявити широкий спектр DNS записів.
|
||||
- **AAAA**: Безпосередньо шукає IPv6 адреси.
|
||||
- **ANY**: Широкий запит, який повертає всі доступні DNS записи.
|
||||
|
||||
### Пробивання з Ping6
|
||||
|
||||
Після визначення IPv6 адрес, пов'язаних з організацією, можна використовувати утиліту `ping6` для пробивання. Цей інструмент допомагає оцінити реакцію виявлених IPv6 адрес і може також допомогти в знаходженні сусідніх IPv6 пристроїв.
|
||||
Після визначення IPv6 адрес, пов'язаних з організацією, можна використовувати утиліту `ping6` для пробивання. Цей інструмент допомагає оцінити реакцію виявлених IPv6 адрес і може також допомогти виявити сусідні IPv6 пристрої.
|
||||
|
||||
## Техніки Атак на Локальну Мережу IPv6
|
||||
|
||||
@ -221,13 +221,40 @@ ICMPv6NDOptSrcLLAddr(lladdr=args.mac))
|
||||
|
||||
send(ra,iface=args.interface,loop=1,inter=args.interval)
|
||||
```
|
||||
Щоб насправді **переслати трафік** після виграшу в гонці:
|
||||
Щоб насправді **перенаправити трафік** після виграшу в гонці:
|
||||
```bash
|
||||
sudo sysctl -w net.ipv6.conf.all.forwarding=1
|
||||
sudo ip6tables -A FORWARD -i eth0 -j ACCEPT
|
||||
sudo ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
||||
```
|
||||
### RDNSS (DNS) Спуфінг через RA
|
||||
#### Прапори оголошення маршрутизатора (M/O) та перевага за замовчуванням маршрутизатора (Prf)
|
||||
|
||||
| Прапор | Значення | Вплив на поведінку клієнта |
|
||||
|--------|----------|-----------------------------|
|
||||
| **M (Управляюча конфігурація адреси)** | Коли встановлено на `1`, хост ПОВИНЕН використовувати **DHCPv6** для отримання своєї IPv6 адреси. | Вся адресація надходить з DHCPv6 – ідеально для отруєння в стилі *mitm6*. |
|
||||
| **O (Інша конфігурація)** | Коли встановлено на `1`, хост повинен використовувати **DHCPv6** лише для отримання *іншої* інформації (DNS, NTP, …). | Адреса все ще через SLAAC, але DNS може бути перехоплено за допомогою DHCPv6. |
|
||||
| **M=0 / O=0** | Чиста мережа SLAAC. | Можливі лише трюки RA / RDNSS – DHCPv6 не буде надіслано клієнтами. |
|
||||
| **M=1 / O=1** | Змішане середовище. | Використовуються як DHCPv6, так і SLAAC; поверхня для спуфінгу найбільша. |
|
||||
|
||||
Під час пентесту ви можете просто один раз перевірити легітимний RA і вирішити, який вектор є доцільним:
|
||||
```bash
|
||||
sudo tcpdump -vvv -i eth0 'icmp6 && ip6[40] == 134' # capture Router Advertisements
|
||||
```
|
||||
Шукайте поле `flags [M,O]` у дампі – без здогадок.
|
||||
|
||||
Поле **Prf** (Router Preference) всередині заголовка RA контролює, наскільки привабливим виглядає ваш зловмисний маршрутизатор, коли присутні *декілька* шлюзів:
|
||||
|
||||
| Prf value | Binary | Meaning |
|
||||
|-----------|--------|---------|
|
||||
| **High** | `10` | Клієнти надають перевагу цьому маршрутизатору над будь-яким *Medium*/*Low* |
|
||||
| Medium (за замовчуванням) | `01` | Використовується майже кожним легітимним пристроєм |
|
||||
| Low | `00` | Вибирається лише тоді, коли немає кращого маршрутизатора |
|
||||
|
||||
При генерації пакету з Scapy ви можете встановити його через параметр `prf`, як показано вище (`prf=0x1` → High). Поєднання **High Prf**, **короткого інтервалу** та **ненульового терміну служби** робить ваш зловмисний шлюз надзвичайно стабільним.
|
||||
|
||||
---
|
||||
|
||||
### Спуфінг RDNSS (DNS) через RA
|
||||
|
||||
[RFC 8106](https://datatracker.ietf.org/doc/html/rfc8106) дозволяє додавати опцію **Recursive DNS Server (RDNSS)** всередині RA. Сучасні ОС (Win 10 ≥1709, Win 11, macOS Big Sur, Linux systemd-resolved, …) автоматично довіряють їй:
|
||||
```python
|
||||
@ -265,7 +292,7 @@ sudo mitm6 -i eth0 --no-ra # only DHCPv6 poisoning
|
||||
### Захист
|
||||
|
||||
* **RA Guard / DHCPv6 Guard / ND Inspection** на керованих комутаторах.
|
||||
* ACL портів, які дозволяють лише легітимному MAC-адресу маршрутизатора надсилати RAs.
|
||||
* ACL портів, які дозволяють лише легітимній MAC-адресі маршрутизатора надсилати RAs.
|
||||
* Моніторинг **неконтрольованих високих RAs** або раптових **змін RDNSS**.
|
||||
* Вимкнення IPv6 на кінцевих пристроях є тимчасовим рішенням, яке часто порушує роботу сучасних сервісів і приховує сліпі зони – віддавайте перевагу L2 фільтрації.
|
||||
|
||||
@ -276,5 +303,6 @@ sudo mitm6 -i eth0 --no-ra # only DHCPv6 poisoning
|
||||
- [RFC 8106 – IPv6 ND DNS Configuration](https://datatracker.ietf.org/doc/html/rfc8106)
|
||||
- [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)
|
||||
- [Practical Guide to IPv6 Attacks in a Local Network](https://habr.com/ru/articles/930526/)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user