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
							
								
									8bee3e5ec4
								
							
						
					
					
						commit
						ca28c502ab
					
				@ -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 фільтрації.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user