Translated ['src/generic-methodologies-and-resources/pentesting-network/

This commit is contained in:
Translator 2025-08-20 11:32:30 +00:00
parent 8bee3e5ec4
commit ca28c502ab
2 changed files with 28 additions and 27 deletions

View File

@ -19,8 +19,8 @@ IPv6 адреси структуровані для покращення орг
IPv6 також включає спеціальні типи адрес:
- **Адреса циклічного з'єднання (`::1`)**: Еквівалентна `127.0.0.1` в IPv4, для внутрішньої комунікації в межах хоста.
- **Локальні адреси зв'язку (`FE80::/10`)**: Для локальних мережевих дій, не для маршрутизації в інтернеті. Пристрої в одній локальній мережі можуть виявляти одне одного, використовуючи цей діапазон.
- **Адреса циклічного з'єднання (`::1`)**: Еквівалентна IPv4 `127.0.0.1`, для внутрішньої комунікації в межах хоста.
- **Локальні адреси зв'язку (`FE80::/10`)**: Для локальних мережевих дій, не для маршрутизації в інтернеті. Пристрої в одній локальній мережі можуть виявляти один одного, використовуючи цей діапазон.
### Практичне використання IPv6 у мережевих командах
@ -51,16 +51,16 @@ IPv6 адреси можуть бути отримані з MAC-адреси п
### **Типи IPv6 адрес**
- **Унікальна локальна адреса (ULA)**: Для локальних комунікацій, не призначена для маршрутизації в публічному інтернеті. Префікс: **`FEC00::/7`**
- **Мультимовна адреса**: Для комунікації один-до-багатьох. Доставляється до всіх інтерфейсів у мультимовній групі. Префікс: **`FF00::/8`**
- **Анкаст адреса**: Для комунікації один-до-найближчого. Надсилається до найближчого інтерфейсу відповідно до маршрутизаційного протоколу. Частина глобального унікального діапазону **`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)
- **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,9 +79,9 @@ ip -6 neigh # Display the neighbor table
```
### IPv6 Man-in-the-Middle (MitM) Attacks
Існує кілька технік для виконання MitM атак в IPv6 мережах, таких як:
Існує кілька технік для виконання MitM-атак в мережах IPv6, таких як:
- Підробка ICMPv6 сусідів або рекламних оголошень маршрутизаторів.
- Підробка ICMPv6 сусідніх або маршрутизаторських оголошень.
- Використання ICMPv6 перенаправлень або повідомлень "Пакет занадто великий" для маніпуляції маршрутизацією.
- Атака на мобільний IPv6 (зазвичай вимагає вимкнення IPSec).
- Налаштування підробленого DHCPv6 сервера.
@ -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
@ -128,7 +128,7 @@ sudo sysctl -w net.ipv4.tcp_tw_reuse=1
```
### Пасивне NDP та DHCPv6 Сніфінг
Оскільки кожен хост IPv6 **автоматично приєднується до кількох мультикаст-груп** (`ff02::1`, `ff02::2`, …) і використовує ICMPv6 для SLAAC/NDP, ви можете відобразити весь сегмент, не відправляючи жодного пакета. Наступний однорядковий код на Python/Scapy слухає найцікавіші L2 повідомлення та виводить кольоровий, з позначкою часу журнал того, хто є хто:
Оскільки кожен хост IPv6 **автоматично приєднується до кількох мультикаст-груп** (`ff02::1`, `ff02::2`, …) і використовує ICMPv6 для SLAAC/NDP, ви можете відобразити весь сегмент, не відправляючи жодного пакету. Наступний однорядковий код на Python/Scapy слухає найцікавіші L2 повідомлення та виводить кольоровий, позначений часом журнал того, хто є хто:
```python
#!/usr/bin/env python3
from scapy.all import *
@ -199,7 +199,7 @@ sniff(iface=a.interface,prn=handler,timeout=a.time or None,store=0)
### Спуфінг оголошень маршрутизатора (RA)
IPv6 хости покладаються на **ICMPv6 оголошення маршрутизаторів** для виявлення шлюзу за замовчуванням. Якщо ви інжектуєте підроблені RA **частіше**, ніж легітимний маршрутизатор, пристрої безшумно переключаться на вас як на шлюз.
IPv6 хости покладаються на **ICMPv6 оголошення маршрутизаторів** для виявлення шлюзу за замовчуванням. Якщо ви впроваджуєте підроблені RA **частіше**, ніж легітимний маршрутизатор, пристрої безшумно переключаться на вас як на шлюз.
```python
#!/usr/bin/env python3
from scapy.all import *
@ -248,7 +248,7 @@ sudo tcpdump -vvv -i eth0 'icmp6 && ip6[40] == 134' # capture Router Advertise
|-----------|--------|---------|
| **High** | `10` | Клієнти надають перевагу цьому маршрутизатору над будь-яким *Medium*/*Low* |
| Medium (за замовчуванням) | `01` | Використовується майже кожним легітимним пристроєм |
| Low | `00` | Вибирається лише тоді, коли немає кращого маршрутизатора |
| Low | `00` | Обирається лише тоді, коли немає кращого маршрутизатора |
При генерації пакету з Scapy ви можете встановити його через параметр `prf`, як показано вище (`prf=0x1` → High). Поєднання **High Prf**, **короткого інтервалу** та **ненульового терміну служби** робить ваш зловмисний шлюз надзвичайно стабільним.
@ -282,7 +282,7 @@ send(ra,iface=args.interface,loop=1,inter=args.interval)
Замість SLAAC, мережі Windows часто залежать від **безстанційного DHCPv6** для DNS. [mitm6](https://github.com/rofl0r/mitm6) автоматично відповідає на повідомлення `Solicit` з потоком **Advertise → Reply**, який призначає **вашу локальну адресу як DNS на 300 секунд**. Це відкриває:
* Атаки NTLM реле (WPAD + DNS хайджекінг)
* NTLM атаки реле (WPAD + DNS хайджекінг)
* Перехоплення внутрішнього розв'язання імен без втручання в маршрутизатори
Типове використання:
@ -292,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 фільтрації.

View File

@ -4,9 +4,10 @@
## Pentesting Cisco Networks
**SNMP** функціонує через UDP з портами **161/UDP** для загальних повідомлень та **162/UDP** для повідомлень про трепи. Цей протокол покладається на *community strings*, які слугують у вигляді простих "паролів", що дозволяють зв'язок між SNMP агентами та менеджерами. Ці рядки визначають рівень доступу, зокрема **тільки для читання (RO) або читання та запису (RW) дозволи**.
**SNMP** функціонує через UDP з портами **161/UDP** для загальних повідомлень та **162/UDP** для повідомлень про трепи. Цей протокол покладається на *рядки спільноти*, які слугують у вигляді відкритих "паролів", що дозволяють зв'язок між SNMP агентами та менеджерами. Ці рядки визначають рівень доступу, зокрема **тільки для читання (RO) або читання-запису (RW) дозволи**.
Класичний — але все ще надзвичайно ефективний — вектор атаки полягає в **брутфорсингу community strings** для підвищення з неавтентифікованого користувача до адміністратора пристрою (RW community). Практичним інструментом для цього завдання є [**onesixtyone**](https://github.com/trailofbits/onesixtyone):
Класичний — але все ще надзвичайно ефективний — вектор атаки полягає в **брутфорсингу рядків спільноти** з метою підвищення з неавторизованого користувача до адміністратора пристрою (RW спільнота).
Практичний інструмент для цього завдання — [**onesixtyone**](https://github.com/trailofbits/onesixtyone):
```bash
onesixtyone -c community_strings.txt -i targets.txt
```
@ -40,11 +41,11 @@ snmpset -v2c -c private 192.168.66.1 \
```
Ідентифікатори рядків є *однократними*; повторне використання протягом п'яти хвилин викликає помилки `inconsistentValue`.
Як тільки файл буде на вашому TFTP сервері, ви зможете перевірити облікові дані (`enable secret`, `username <user> secret` тощо) або навіть надіслати змінену конфігурацію назад на пристрій.
Як тільки файл буде на вашому TFTP сервері, ви зможете перевірити облікові дані (`enable secret`, `username <user> secret` тощо) або навіть надіслати модифіковану конфігурацію назад на пристрій.
---
### Метасploit корисності
### Metasploit goodies
* **`cisco_config_tftp`** завантажує running-config/startup-config через TFTP після зловживання тією ж MIB.
* **`snmp_enum`** збирає інформацію про інвентаризацію пристроїв, VLAN, описи інтерфейсів, таблиці ARP тощо.
@ -62,8 +63,8 @@ run
| Рік | CVE | Вразлива функція | Вплив |
|------|-----|-----------------|--------|
| 2025 | CVE-2025-20174 | Підсистема SNMP | Сформований пакет призводить до автентифікованого *DoS* (перезавантаження) на IOS/IOS-XE (v1/v2c/v3). |
| 2024 | CVE-2024-20373 | Обробка IPv4 ACL | Неправильно налаштовані **розширені** ACL тихо *падають*, дозволяючи неавтентифіковане опитування SNMP, коли відома дійсна спільнота/користувач. |
| 2025 | (немає CVE поки) | Обхід обмеження конфігурації SNMPv3 | Дійсний користувач v3 може опитувати з адрес, які повинні бути заборонені. |
| 2024 | CVE-2024-20373 | Обробка ACL IPv4 | Неправильно налаштовані **розширені** ACL тихо *падають*, дозволяючи неавтентифіковане опитування SNMP, коли відома дійсна спільнота/користувач. |
| 2025 | (немає CVE поки) | Обхід обмеження конфігурації SNMPv3 | Дійсний v3 користувач може опитувати з адрес, які повинні бути заборонені. |
Експлуатованість часто все ще залежить від наявності рядка спільноти або облікових даних v3 — ще одна причина, чому їх брутфорсинг залишається актуальним.
@ -77,13 +78,13 @@ run
snmp-server group SECURE v3 priv
snmp-server user monitor SECURE v3 auth sha <authpass> priv aes 256 <privpass>
```
* Прив'яжіть SNMP до управлінського VRF та **обмежте за допомогою *стандартних* нумерованих IPv4 ACL** (розширені іменовані ACL є ризикованими CVE-2024-20373).
* Прив'яжіть SNMP до управлінського VRF та **обмежте за допомогою *стандартних* нумерованих ACL IPv4** (розширені іменовані ACL є ризикованими CVE-2024-20373).
* Вимкніть **RW спільноти**; якщо це необхідно для роботи, обмежте їх за допомогою ACL та переглядів:
`snmp-server community <string> RW 99 view SysView`
* Моніторте:
- Сплески UDP/161 або несподівані джерела (правила SIEM).
- Події `CISCO-CONFIG-MAN-MIB::ccmHistoryEventConfigSource`, що вказують на зміни конфігурації поза межами каналу.
* Увімкніть **SNMPv3 логування** та `snmp-server packetsize 1500`, щоб зменшити певні вектори DoS.
* Увімкніть **SNMPv3 журналювання** та `snmp-server packetsize 1500`, щоб зменшити певні вектори DoS.
---