diff --git a/src/generic-methodologies-and-resources/pentesting-network/README.md b/src/generic-methodologies-and-resources/pentesting-network/README.md index b11aab90d..72ad2ec74 100644 --- a/src/generic-methodologies-and-resources/pentesting-network/README.md +++ b/src/generic-methodologies-and-resources/pentesting-network/README.md @@ -1,4 +1,4 @@ -# Pentesting Network +# Pentesting sieci {{#include ../../banners/hacktricks-training.md}} @@ -6,61 +6,61 @@ ## Odkrywanie hostów z zewnątrz -To będzie **krótka sekcja** na temat tego, jak znaleźć **IP odpowiadające** z **Internetu**.\ -W tej sytuacji masz pewien **zakres IP** (może nawet kilka **zakresów**) i musisz tylko znaleźć **które IP odpowiadają**. +To będzie **krótka sekcja** o tym, jak znaleźć **adresy IP odpowiadające** z **Internetu**.\ +W tej sytuacji masz pewien **zakres adresów IP** (może nawet kilka **zakresów**) i musisz tylko znaleźć **które adresy IP odpowiadają**. ### ICMP -To jest **najłatwiejszy** i **najszybszy** sposób, aby odkryć, czy host jest aktywny, czy nie.\ -Możesz spróbować wysłać kilka pakietów **ICMP** i **oczekiwać odpowiedzi**. Najłatwiejszym sposobem jest po prostu wysłanie **żądania echo** i oczekiwanie na odpowiedź. Możesz to zrobić, używając prostego `ping` lub używając `fping` dla **zakresów**.\ -Możesz również użyć **nmap**, aby wysłać inne typy pakietów ICMP (to pomoże uniknąć filtrów dla powszechnych żądań-odpowiedzi ICMP echo). +To jest **najszybszy** i **najprostszy** sposób, aby sprawdzić, czy host jest aktywny czy nie.\ +Możesz spróbować wysłać kilka pakietów **ICMP** i **oczekiwać odpowiedzi**. Najprostszy sposób to wysłanie **echo request** i oczekiwanie odpowiedzi. Możesz to zrobić za pomocą prostego `ping` lub `fping` dla **zakresów**.\ +Możesz też użyć **nmap** do wysłania innych typów pakietów ICMP (to pozwoli ominąć filtry dla standardowego ICMP echo request-response). ```bash ping -c 1 199.66.11.4 # 1 echo request to a host fping -g 199.66.11.0/24 # Send echo requests to ranges nmap -PE -PM -PP -sn -n 199.66.11.0/24 #Send echo, timestamp requests and subnet mask requests ``` -### Odkrywanie portów TCP +### TCP Port Discovery -Bardzo często można zauważyć, że wszystkie rodzaje pakietów ICMP są filtrowane. Wtedy jedyne, co możesz zrobić, aby sprawdzić, czy host jest aktywny, to **spróbować znaleźć otwarte porty**. Każdy host ma **65535 portów**, więc jeśli masz "duży" zakres, **nie możesz** sprawdzić, czy **każdy port** każdego hosta jest otwarty, zajmie to zbyt dużo czasu.\ -W takim razie potrzebujesz **szybkiego skanera portów** ([masscan](https://github.com/robertdavidgraham/masscan)) i listy **najczęściej używanych portów:** +Bardzo często zdarza się, że wszystkie rodzaje pakietów ICMP są filtrowane. Wtedy jedyne, co możesz zrobić, żeby sprawdzić, czy host jest aktywny, to **spróbować znaleźć open ports**. Każdy host ma **65535 ports**, więc jeśli masz "big" scope, **nie możesz** sprawdzić **each port** każdego hosta, czy jest open czy nie — zajęłoby to zbyt dużo czasu.\ +W takim razie potrzebujesz **fast port scanner** ([masscan](https://github.com/robertdavidgraham/masscan)) i listy **ports more used:** ```bash #Using masscan to scan top20ports of nmap in a /24 range (less than 5min) masscan -p20,21-23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5900,8080 199.66.11.0/24 ``` -Możesz również wykonać ten krok za pomocą `nmap`, ale jest to wolniejsze i `nmap` ma problemy z identyfikowaniem aktywnych hostów. +Ten krok można również wykonać za pomocą `nmap`, ale jest wolniejszy i w pewnym stopniu `nmap` ma problemy z identyfikacją hostów. ### Odkrywanie portów HTTP -To jest po prostu odkrywanie portów TCP przydatne, gdy chcesz **skupić się na odkrywaniu usług HTTP**: +To jest tylko odkrywanie portów TCP przydatne, gdy chcesz **skupić się na odkrywaniu** **usług HTTP**: ```bash masscan -p80,443,8000-8100,8443 199.66.11.0/24 ``` -### Odkrywanie portów UDP +### UDP Port Discovery -Możesz również spróbować sprawdzić, czy niektóre **porty UDP są otwarte**, aby zdecydować, czy powinieneś **zwrócić większą uwagę** na **hosta.** Ponieważ usługi UDP zazwyczaj **nie odpowiadają** **żadnymi danymi** na standardowy pusty pakiet probe UDP, trudno jest stwierdzić, czy port jest filtrowany, czy otwarty. Najłatwiejszym sposobem na podjęcie decyzji jest wysłanie pakietu związanego z działającą usługą, a ponieważ nie wiesz, która usługa działa, powinieneś spróbować najbardziej prawdopodobnej na podstawie numeru portu: +Możesz także spróbować sprawdzić, czy jakiś **UDP port open** jest otwarty, aby zdecydować, czy powinieneś **zwrócić większą uwagę** na **host.** Ponieważ UDP services zwykle **nie odpowiadają** żadnymi danymi na zwykły pusty UDP probe packet, trudno stwierdzić, czy port jest filtrowany czy open. Najłatwiejszy sposób to wysłać pakiet powiązany z działającą service, a ponieważ nie wiesz, która service działa, powinieneś spróbować najbardziej prawdopodobnej na podstawie numeru portu: ```bash nmap -sU -sV --version-intensity 0 -F -n 199.66.11.53/24 # The -sV will make nmap test each possible known UDP service packet # The "--version-intensity 0" will make nmap only test the most probable ``` -Linia nmap zaproponowana wcześniej przetestuje **najlepsze 1000 portów UDP** w każdym hoście w zakresie **/24**, ale nawet to zajmie **>20min**. Jeśli potrzebujesz **najszybszych wyników**, możesz użyć [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner): `./udp-proto-scanner.pl 199.66.11.53/24`. To wyśle te **proby UDP** do ich **oczekiwanego portu** (dla zakresu /24 zajmie to tylko 1 min): _DNSStatusRequest, DNSVersionBindReq, NBTStat, NTPRequest, RPCCheck, SNMPv3GetRequest, chargen, citrix, daytime, db2, echo, gtpv1, ike, ms-sql, ms-sql-slam, netop, ntp, rpc, snmp-public, systat, tftp, time, xdmcp._ +Linia nmap zaproponowana wcześniej przetestuje **top 1000 UDP ports** na każdym hostie w obrębie **/24 range**, ale nawet to zajmie **>20min**. Jeśli potrzebujesz **najszybszych wyników**, możesz użyć [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner): `./udp-proto-scanner.pl 199.66.11.53/24` To wyśle te **UDP probes** na ich **expected port** (dla /24 range zajmie to tylko 1 min): _DNSStatusRequest, DNSVersionBindReq, NBTStat, NTPRequest, RPCCheck, SNMPv3GetRequest, chargen, citrix, daytime, db2, echo, gtpv1, ike,ms-sql, ms-sql-slam, netop, ntp, rpc, snmp-public, systat, tftp, time, xdmcp._ -### Odkrywanie portów SCTP +### SCTP Port Discovery ```bash #Probably useless, but it's pretty fast, why not try it? nmap -T4 -sY -n --open -Pn ``` ## Pentesting Wifi -Tutaj znajdziesz ładny przewodnik po wszystkich znanych atakach Wifi w momencie pisania: +Tutaj znajdziesz przydatny przewodnik po wszystkich dobrze znanych atakach Wifi na moment pisania: {{#ref}} ../pentesting-wifi/ {{#endref}} -## Odkrywanie hostów od wewnątrz +## Odkrywanie hostów z wnętrza sieci -Jeśli jesteś wewnątrz sieci, jedną z pierwszych rzeczy, które chcesz zrobić, jest **odkrycie innych hostów**. W zależności od **tego, ile hałasu** możesz/chcesz zrobić, można wykonać różne działania: +Jeżeli znajdujesz się wewnątrz sieci, jedną z pierwszych rzeczy, które będziesz chciał zrobić, jest **odkrycie innych hostów**. W zależności od tego, **ile hałasu** możesz/chcesz generować, można wykonać różne działania: ### Pasywne @@ -75,8 +75,8 @@ set net.show.meta true #more info ``` ### Aktywne -Zauważ, że techniki omówione w [_**Odkrywaniu hostów z zewnątrz**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP Port Discovery_) mogą być również **zastosowane tutaj**.\ -Jednak, ponieważ jesteś w **tej samej sieci** co inne hosty, możesz zrobić **więcej rzeczy**: +Zauważ, że techniki opisane w [_**Discovering hosts from the outside**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP Port Discovery_) można też **zastosować tutaj**.\ +Jednak będąc w **tej samej sieci** co pozostałe hosty, możesz zrobić **więcej**: ```bash #ARP discovery nmap -sn #ARP Requests (Discover IPs) @@ -96,35 +96,35 @@ set net.probe.throttle 10 #10ms between probes sent (default=10) #IPv6 alive6 # Send a pingv6 to multicast. ``` -### Active ICMP +### Aktywny ICMP -Zauważ, że techniki omówione w _Odkrywaniu hostów z zewnątrz_ ([_**ICMP**_](#icmp)) mogą być również **zastosowane tutaj**.\ -Jednak, ponieważ jesteś w **tej samej sieci** co inne hosty, możesz zrobić **więcej rzeczy**: +Zauważ, że techniki omówione w _Odkrywanie hostów z zewnątrz_ ([_**ICMP**_](#icmp)) mogą być również **zastosowane tutaj**.\ +Ale, ponieważ znajdujesz się w **tej samej sieci** co inne hosty, możesz zrobić **więcej**: -- Jeśli **pingujesz** **adres rozgłoszeniowy podsieci**, ping powinien dotrzeć do **każdego hosta** i mogą oni **odpowiedzieć** **tobie**: `ping -b 10.10.5.255` -- Pingując **adres rozgłoszeniowy sieci**, możesz nawet znaleźć hosty w **innych podsieciach**: `ping -b 255.255.255.255` -- Użyj flag `-PE`, `-PP`, `-PM` w `nmap`, aby przeprowadzić odkrywanie hostów, wysyłając odpowiednio **ICMPv4 echo**, **znacznik czasu** i **żądania maski podsieci:** `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24` +- Jeśli wykonasz **ping** na **adres rozgłoszeniowy podsieci**, ping powinien dotrzeć do **każdego hosta** i mogą one **odpowiedzieć** **tobie**: `ping -b 10.10.5.255` +- Wysyłając ping do **adresu rozgłoszeniowego sieci** możesz nawet znaleźć hosty w **innych podsieciach**: `ping -b 255.255.255.255` +- Użyj flag `-PE`, `-PP`, `-PM` `nmap`to wykonać wykrywanie hostów, wysyłając odpowiednio **ICMPv4 echo**, **timestamp**, i **subnet mask requests:** `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24` ### **Wake On Lan** -Wake On Lan jest używane do **włączania** komputerów za pomocą **wiadomości sieciowej**. Magiczny pakiet używany do włączenia komputera to tylko pakiet, w którym podany jest **MAC Dst**, a następnie jest on **powtarzany 16 razy** w tym samym pakiecie.\ -Takie pakiety są zazwyczaj wysyłane w **ethernet 0x0842** lub w **pakiecie UDP na port 9**.\ -Jeśli **żaden \[MAC]** nie jest podany, pakiet jest wysyłany do **rozgłoszenia ethernet** (a rozgłoszeniowy MAC będzie tym, który jest powtarzany). +Wake On Lan jest używany do **włączania** komputerów za pomocą **wiadomości sieciowej**. Magiczny pakiet używany do włączenia komputera to pakiet, w którym podany jest **MAC Dst**, i następnie jest on **powtórzony 16 razy** w obrębie tego samego pakietu.\ +Takie pakiety są zwykle wysyłane jako **ethernet 0x0842** lub jako **UDP packet to port 9**.\ +Jeśli **nie podano \[MAC]**, pakiet jest wysyłany na **broadcast ethernet** (a broadcast MAC będzie tym powtarzanym). ```bash # Bettercap (if no [MAC] is specificed ff:ff:ff:ff:ff:ff will be used/entire broadcast domain) -wol.eth [MAC] #Send a WOL as a raw ethernet packet of type 0x0847 +wol.eth [MAC] #Send a WOL as a raw ethernet packet of type 0x0842 wol.udp [MAC] #Send a WOL as an IPv4 broadcast packet to UDP port 9 ``` ## Skanowanie hostów -Gdy odkryjesz wszystkie IP (zewnętrzne lub wewnętrzne), które chcesz dokładnie zeskanować, można wykonać różne działania. +Gdy odkryjesz wszystkie adresy IP (zewnętrzne lub wewnętrzne), które chcesz przeskanować dogłębnie, można wykonać różne działania. ### TCP -- **Otwarte** porty: _SYN --> SYN/ACK --> RST_ -- **Zamknięte** porty: _SYN --> RST/ACK_ -- **Filtrowane** porty: _SYN --> \[BRAK ODPOWIEDZI]_ -- **Filtrowane** porty: _SYN --> komunikat ICMP_ +- **Otwarty** port: _SYN --> SYN/ACK --> RST_ +- **Zamknięty** port: _SYN --> RST/ACK_ +- **Filtrowany** port: _SYN --> \[NO RESPONSE]_ +- **Filtrowany** port: _SYN --> ICMP message_ ```bash # Nmap fast scan for the most 1000tcp ports used nmap -sV -sC -O -T4 -n -Pn -oA fastscan @@ -138,12 +138,12 @@ syn.scan 192.168.1.0/24 1 10000 #Ports 1-10000 ``` ### UDP -Istnieją 2 opcje skanowania portu UDP: +Są 2 opcje skanowania portu UDP: -- Wyślij **pakiet UDP** i sprawdź odpowiedź _**ICMP unreachable**_, jeśli port jest **zamknięty** (w wielu przypadkach ICMP będzie **filtrowany**, więc nie otrzymasz żadnych informacji, czy port jest zamknięty, czy otwarty). -- Wyślij **sformatowane datagramy**, aby wywołać odpowiedź od **usługi** (np. DNS, DHCP, TFTP i inne, jak wymieniono w _nmap-payloads_). Jeśli otrzymasz **odpowiedź**, to port jest **otwarty**. +- Wyślij **UDP pakiet** i sprawdź odpowiedź _**ICMP unreachable**_ jeśli port jest **zamknięty** (w niektórych przypadkach ICMP będzie **filtrowany**, więc nie otrzymasz żadnej informacji, czy port jest zamknięty czy otwarty). +- Wyślij **sformatowane datagramy** aby wywołać odpowiedź od **usługi** (np. DNS, DHCP, TFTP i inne, jak wymieniono w _nmap-payloads_). Jeśli otrzymasz **odpowiedź**, to port jest **otwarty**. -**Nmap** **łączy obie** opcje, używając "-sV" (skanowanie UDP jest bardzo wolne), ale zauważ, że skanowanie UDP jest wolniejsze niż skanowanie TCP: +**Nmap** będzie **łączył obie** opcje używając "-sV" (skany UDP są bardzo wolne), ale zwróć uwagę, że skany UDP są wolniejsze niż skany TCP: ```bash # Check if any of the most common udp services is running udp-proto-scanner.pl @@ -157,25 +157,25 @@ nmap -sU -sV --version-intensity 0 -n -T4 ``` ### SCTP Scan -**SCTP (Stream Control Transmission Protocol)** jest zaprojektowany do użycia obok **TCP (Transmission Control Protocol)** i **UDP (User Datagram Protocol)**. Jego głównym celem jest ułatwienie transportu danych telekomunikacyjnych przez sieci IP, odzwierciedlając wiele funkcji niezawodnościowych występujących w **Signaling System 7 (SS7)**. **SCTP** jest kluczowym składnikiem rodziny protokołów **SIGTRAN**, która ma na celu transport sygnałów SS7 przez sieci IP. +**SCTP (Stream Control Transmission Protocol)** został zaprojektowany do użytku razem z **TCP (Transmission Control Protocol)** i **UDP (User Datagram Protocol)**. Jego głównym celem jest ułatwienie transportu danych telefonicznych przez sieci IP, odzwierciedlając wiele funkcji niezawodności znanych z **Signaling System 7 (SS7)**. **SCTP** jest kluczowym składnikiem rodziny protokołów **SIGTRAN**, której celem jest przesyłanie sygnałów SS7 przez sieci IP. -Wsparcie dla **SCTP** jest zapewniane przez różne systemy operacyjne, takie jak **IBM AIX**, **Oracle Solaris**, **HP-UX**, **Linux**, **Cisco IOS** i **VxWorks**, co wskazuje na jego szeroką akceptację i użyteczność w dziedzinie telekomunikacji i sieci. +Wsparcie dla **SCTP** zapewniają różne systemy operacyjne, takie jak **IBM AIX**, **Oracle Solaris**, **HP-UX**, **Linux**, **Cisco IOS** i **VxWorks**, co wskazuje na jego szerokie przyjęcie i użyteczność w dziedzinie telekomunikacji i sieci. -Dwa różne skany dla SCTP są oferowane przez nmap: _-sY_ i _-sZ_ +Dwa różne skany dla SCTP oferuje nmap: _-sY_ i _-sZ_. ```bash # Nmap fast SCTP scan nmap -T4 -sY -n -oA SCTFastScan # Nmap all SCTP scan nmap -T4 -p- -sY -sV -sC -F -n -oA SCTAllScan ``` -### IDS i IPS unikanie +### IDS and IPS evasion {{#ref}} ids-evasion.md {{#endref}} -### **Więcej opcji nmap** +### **More nmap options** {{#ref}} @@ -184,7 +184,7 @@ nmap-summary-esp.md ### Ujawnianie wewnętrznych adresów IP -**Źle skonfigurowane routery, zapory ogniowe i urządzenia sieciowe** czasami odpowiadają na próby sieciowe, używając **adresów źródłowych niepublicznych**. **tcpdump** może być wykorzystany do identyfikacji pakietów otrzymanych z prywatnych adresów podczas testowania. Konkretnie, na Kali Linux, pakiety mogą być przechwytywane na **interfejsie eth2**, który jest dostępny z publicznego Internetu. Ważne jest, aby zauważyć, że jeśli twoja konfiguracja znajduje się za NAT lub zaporą ogniową, takie pakiety prawdopodobnie będą filtrowane. +**Misconfigured routers, firewalls, and network devices** czasami odpowiadają na sondy sieciowe, używając **niepublicznych adresów źródłowych**. **tcpdump** można wykorzystać do zidentyfikowania pakietów odebranych z adresów prywatnych podczas testów. W szczególności, na Kali Linux pakiety można przechwycić na **eth2 interface**, który jest dostępny z Internetu publicznego. Należy pamiętać, że jeśli twoja konfiguracja znajduje się za NAT lub Firewall, takie pakiety prawdopodobnie zostaną odfiltrowane. ```bash tcpdump –nt -i eth2 src net 10 or 172.16/12 or 192.168/16 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode @@ -194,9 +194,9 @@ IP 10.10.0.2 > 185.22.224.18: ICMP echo reply, id 25804, seq 1586, length 64 ``` ## Sniffing -Sniffing możesz dowiedzieć się szczegółów dotyczących zakresów IP, rozmiarów podsieci, adresów MAC i nazw hostów, przeglądając przechwycone ramki i pakiety. Jeśli sieć jest źle skonfigurowana lub fabric przełączania jest obciążona, atakujący mogą przechwycić wrażliwe materiały za pomocą pasywnego sniffingu sieciowego. +Sniffing pozwala poznać szczegóły zakresów IP, rozmiarów podsieci, adresów MAC i nazw hostów poprzez analizę przechwyconych ramek i pakietów. Jeśli sieć jest źle skonfigurowana lub switching fabric znajduje się pod obciążeniem, atakujący mogą przechwycić wrażliwe dane za pomocą passive network sniffing. -Jeśli przełączona sieć Ethernet jest poprawnie skonfigurowana, zobaczysz tylko ramki rozgłoszeniowe i materiały przeznaczone dla twojego adresu MAC. +Jeśli przełączana sieć Ethernet jest prawidłowo skonfigurowana, zobaczysz jedynie ramki rozgłoszeniowe oraz ruch przeznaczony dla twojego adresu MAC. ### TCPDump ```bash @@ -204,7 +204,7 @@ sudo tcpdump -i udp port 53 #Listen to DNS request to discover what tcpdump -i icmp #Listen to icmp packets sudo bash -c "sudo nohup tcpdump -i eth0 -G 300 -w \"/tmp/dump-%m-%d-%H-%M-%S-%s.pcap\" -W 50 'tcp and (port 80 or port 443)' &" ``` -Można również przechwytywać pakiety z zdalnej maszyny przez sesję SSH z Wireshark jako interfejsem graficznym w czasie rzeczywistym. +Można również przechwytywać pakiety z zdalnej maszyny przez sesję SSH, używając Wireshark jako GUI w czasie rzeczywistym. ``` ssh user@ tcpdump -i ens160 -U -s0 -w - | sudo wireshark -k -i - ssh @ tcpdump -i -U -s0 -w - 'port not 22' | sudo wireshark -k -i - # Exclude SSH traffic @@ -222,15 +222,15 @@ set net.sniff.regexp #If set only packets matching this regex will be considered Oczywiście. -### Przechwytywanie poświadczeń +### Capturing credentials -Możesz użyć narzędzi takich jak [https://github.com/lgandx/PCredz](https://github.com/lgandx/PCredz), aby analizować poświadczenia z pliku pcap lub z aktywnego interfejsu. +Możesz użyć narzędzi takich jak [https://github.com/lgandx/PCredz](https://github.com/lgandx/PCredz) do parsowania credentials z pcap lub z live interface. -## Ataki w LAN +## LAN attacks -### Spoofing ARP +### ARP spoofing -Spoofing ARP polega na wysyłaniu niepotrzebnych odpowiedzi ARP, aby wskazać, że IP maszyny ma MAC naszego urządzenia. Wtedy ofiara zmieni tabelę ARP i skontaktuje się z naszą maszyną za każdym razem, gdy będzie chciała skontaktować się z podrobionym IP. +ARP Spoofing polega na wysyłaniu gratuitous ARPResponses, aby wskazać, że IP maszyny ma MAC naszego urządzenia. Wtedy ofiara zmieni ARP table i będzie kontaktować się z naszym urządzeniem za każdym razem, gdy będzie chciała skontaktować się z podszytym IP. #### **Bettercap** ```bash @@ -248,23 +248,23 @@ arpspoof -t 192.168.1.2 192.168.1.1 ``` ### MAC Flooding - CAM overflow -Przepełnienie tabeli CAM przełącznika, wysyłając wiele pakietów z różnymi adresami MAC źródłowymi. Gdy tabela CAM jest pełna, przełącznik zaczyna zachowywać się jak hub (broadcastując cały ruch). +Przepełnij tabelę CAM przełącznika, wysyłając wiele pakietów z różnymi adresami źródłowymi MAC. Gdy tabela CAM jest pełna, przełącznik zaczyna zachowywać się jak hub (rozgłaszając cały ruch). ```bash macof -i ``` -W nowoczesnych przełącznikach ta podatność została naprawiona. +In modern switches this vulnerability has been fixed. -### Ataki 802.1Q VLAN / DTP +### 802.1Q VLAN / DTP Attacks #### Dynamic Trunking -**Dynamic Trunking Protocol (DTP)** jest zaprojektowany jako protokół warstwy łącza, aby ułatwić automatyczny system trunkingu, pozwalając przełącznikom na automatyczny wybór portów do trybu trunk (Trunk) lub trybu non-trunk. Wdrożenie **DTP** często postrzegane jest jako wskaźnik suboptymalnego projektowania sieci, podkreślając znaczenie ręcznej konfiguracji trunków tylko tam, gdzie jest to konieczne, oraz zapewnienia odpowiedniej dokumentacji. +The **Dynamic Trunking Protocol (DTP)** is designed as a link layer protocol to facilitate an automatic system for trunking, allowing switches to automatically select ports for trunk mode (Trunk) or non-trunk mode. The deployment of **DTP** is often seen as indicative of suboptimal network design, underscoring the importance of manually configuring trunks only where necessary and ensuring proper documentation. -Domyślnie porty przełącznika są ustawione na tryb Dynamic Auto, co oznacza, że są gotowe do inicjowania trunkingu, jeśli zostaną o to poproszone przez sąsiedni przełącznik. Problem bezpieczeństwa pojawia się, gdy pentester lub atakujący łączy się z przełącznikiem i wysyła ramkę DTP Desirable, zmuszając port do wejścia w tryb trunk. Działanie to umożliwia atakującemu enumerację VLAN-ów poprzez analizę ramek STP i obejście segmentacji VLAN, tworząc wirtualne interfejsy. +By default, switch ports are set to operate in Dynamic Auto mode, meaning they are ready to initiate trunking if prompted by a neighboring switch. A security concern arises when a pentester or attacker connects to the switch and sends a DTP Desirable frame, compelling the port to enter trunk mode. This action enables the attacker to enumerate VLANs through STP frame analysis and circumvent VLAN segmentation by setting up virtual interfaces. -Obecność DTP w wielu przełącznikach domyślnie może być wykorzystywana przez przeciwników do naśladowania zachowania przełącznika, co pozwala na dostęp do ruchu we wszystkich VLAN-ach. Skrypt [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) jest wykorzystywany do monitorowania interfejsu, ujawniając, czy przełącznik jest w trybie Default, Trunk, Dynamic, Auto, czy Access—ten ostatni będąc jedyną konfiguracją odporną na ataki VLAN hopping. To narzędzie ocenia status podatności przełącznika. +The presence of DTP in many switches by default can be exploited by adversaries to mimic a switch's behavior, thereby gaining access to traffic across all VLANs. The script [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) is utilized to monitor an interface, revealing whether a switch is in Default, Trunk, Dynamic, Auto, or Access mode—the latter being the only configuration immune to VLAN hopping attacks. This tool assesses the switch's vulnerability status. -Jeśli zostanie zidentyfikowana podatność sieci, narzędzie _**Yersinia**_ może być użyte do "włączenia trunkingu" za pomocą protokołu DTP, co pozwala na obserwację pakietów ze wszystkich VLAN-ów. +Should network vulnerability be identified, the _**Yersinia**_ tool can be employed to "enable trunking" via the DTP protocol, allowing for the observation of packets from all VLANs. ```bash apt-get install yersinia #Installation sudo apt install kali-linux-large #Another way to install it in Kali @@ -277,11 +277,11 @@ yersinia -G #For graphic mode ``` ![](<../../images/image (269).png>) -Aby enumerować VLAN-y, można również wygenerować ramkę DTP Desirable za pomocą skryptu [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)**. N**ie przerywaj skryptu w żadnych okolicznościach. Wstrzykuje DTP Desirable co trzy sekundy. **Dynamically created trunk channels on the switch only live for five minutes. After five minutes, the trunk falls off.** +Aby wyliczyć VLANy, można także wygenerować ramkę DTP Desirable za pomocą skryptu [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)**. N**ie przerywaj skryptu w żadnym wypadku. Skrypt wstrzykuje DTP Desirable co trzy sekundy. **Dynamicznie tworzone kanały trunk na switchu istnieją tylko przez pięć minut. Po pięciu minutach trunk przestaje działać.** ``` sudo python3 DTPHijacking.py --interface eth0 ``` -Chciałbym zwrócić uwagę, że **Access/Desirable (0x03)** wskazuje, że ramka DTP jest typu Desirable, co informuje port o przełączeniu w tryb Trunk. A **802.1Q/802.1Q (0xa5)** wskazuje typ enkapsulacji **802.1Q**. +Chciałbym zwrócić uwagę, że **Access/Desirable (0x03)** wskazuje, że ramka DTP ma typ Desirable, co nakazuje portowi przełączenie się w tryb Trunk. Natomiast **802.1Q/802.1Q (0xa5** wskazuje typ enkapsulacji **802.1Q**. Analizując ramki STP, **dowiadujemy się o istnieniu VLAN 30 i VLAN 60.** @@ -289,8 +289,8 @@ Analizując ramki STP, **dowiadujemy się o istnieniu VLAN 30 i VLAN 60.** #### Atakowanie konkretnych VLAN-ów -Gdy znasz identyfikatory VLAN i wartości IP, możesz **skonfigurować wirtualny interfejs, aby zaatakować konkretny VLAN**.\ -Jeśli DHCP nie jest dostępne, użyj _ifconfig_, aby ustawić statyczny adres IP. +Po poznaniu ID VLAN i wartości adresów IP możesz **skonfigurować interfejs wirtualny, aby zaatakować konkretny VLAN**.\ +Jeśli DHCP nie jest dostępny, użyj _ifconfig_, aby ustawić statyczny adres IP. ``` root@kali:~# modprobe 8021q root@kali:~# vconfig add eth1 250 @@ -325,17 +325,17 @@ sudo dhclient -v eth0.30 ``` #### Automatic VLAN Hopper -Dyskusja na temat ataku **Dynamic Trunking i tworzenia wirtualnych interfejsów oraz odkrywania hostów wewnątrz** innych VLANów jest **automatycznie wykonywana** przez narzędzie: [**https://github.com/nccgroup/vlan-hopping---frogger**](https://github.com/nccgroup/vlan-hopping---frogger) +Omówiony atak **Dynamic Trunking and creating virtual interfaces an discovering hosts inside** other VLANs jest **automatycznie wykonywany** przez narzędzie: [**https://github.com/nccgroup/vlan-hopping---frogger**](https://github.com/nccgroup/vlan-hopping---frogger) #### Double Tagging -Jeśli atakujący zna wartość **MAC, IP i VLAN ID of the victim host**, może spróbować **podwójnie oznaczyć ramkę** jej przypisanym VLANem oraz VLANem ofiary i wysłać pakiet. Ponieważ **ofiara nie będzie mogła połączyć się z powrotem** z atakującym, **najlepszą opcją dla atakującego jest komunikacja za pomocą UDP** do protokołów, które mogą wykonać interesujące akcje (jak SNMP). +Jeśli atakujący zna wartość **MAC, IP and VLAN ID of the victim host**, może spróbować **double tag a frame** z jego przypisanym VLAN oraz VLAN of the victim i wysłać pakiet. Ponieważ **victim won't be able to connect back** z atakującym, najlepszą opcją dla atakującego jest komunikacja przez UDP do protokołów, które mogą wykonać interesujące akcje (np. SNMP). -Inną opcją dla atakującego jest przeprowadzenie **skanowania portów TCP, podszywając się pod IP kontrolowane przez atakującego i dostępne przez ofiarę** (prawdopodobnie przez internet). Następnie atakujący mógłby podsłuchiwać na drugim hoście, który mu należy, jeśli otrzyma jakieś pakiety od ofiary. +Another option for the attacker is to launch a **TCP port scan spoofing an IP controlled by the attacker and accessible by the victim** (probably through internet). Then, the attacker could sniff in the second host owned by him if it receives some packets from the victim. ![](<../../images/image (190).png>) -Aby przeprowadzić ten atak, możesz użyć scapy: `pip install scapy` +To perform this attack you could use scapy: `pip install scapy` ```python from scapy.all import * # Double tagging with ICMP packet (the response from the victim isn't double tagged so it will never reach the attacker) @@ -344,7 +344,8 @@ sendp(packet) ``` #### Lateral VLAN Segmentation Bypass -Jeśli masz **dostęp do switcha, do którego jesteś bezpośrednio podłączony**, masz możliwość **obejścia segmentacji VLAN** w sieci. Po prostu **przełącz port w tryb trunk** (znany również jako trunk), utwórz wirtualne interfejsy z identyfikatorami docelowych VLAN-ów i skonfiguruj adres IP. Możesz spróbować zażądać adresu dynamicznie (DHCP) lub skonfigurować go statycznie. To zależy od przypadku. +Jeśli masz dostęp do switcha, do którego jesteś bezpośrednio podłączony, możesz obejść segmentację VLAN w sieci. Wystarczy przełączyć port do trybu trunk, utworzyć virtual interfaces z ID docelowych VLANów i skonfigurować adres IP. Możesz spróbować uzyskać adres dynamicznie (DHCP) lub skonfigurować go statycznie — zależy od przypadku. + {{#ref}} lateral-vlan-segmentation-bypass.md @@ -352,120 +353,120 @@ lateral-vlan-segmentation-bypass.md #### Layer 3 Private VLAN Bypass -W niektórych środowiskach, takich jak sieci bezprzewodowe dla gości, wprowadza się ustawienia **izolacji portów (znane również jako prywatny VLAN)**, aby zapobiec bezpośredniej komunikacji między klientami podłączonymi do punktu dostępowego. Jednak zidentyfikowano technikę, która może obejść te środki izolacyjne. Technika ta wykorzystuje brak ACL w sieci lub ich niewłaściwą konfigurację, umożliwiając pakietom IP przechodzenie przez router, aby dotrzeć do innego klienta w tej samej sieci. +W niektórych środowiskach, takich jak sieci bezprzewodowe dla gości, stosuje się ustawienia port isolation (również znane jako private VLAN), aby uniemożliwić klientom podłączonym do access point bezpośrednią komunikację. Jednak wykryto technikę, która może obejść te środki izolacji. Technika ta wykorzystuje brak network ACLs lub ich nieprawidłową konfigurację, umożliwiając przekazanie pakietów IP przez router, aby dotrzeć do innego klienta w tej samej sieci. -Atak jest realizowany poprzez stworzenie **pakietu, który zawiera adres IP docelowego klienta, ale z adresem MAC routera**. To powoduje, że router błędnie przekazuje pakiet do docelowego klienta. To podejście jest podobne do tego stosowanego w atakach Double Tagging, gdzie możliwość kontrolowania hosta dostępnego dla ofiary jest wykorzystywana do wykorzystania luki w zabezpieczeniach. +Atak polega na przygotowaniu pakietu, który zawiera adres IP docelowego klienta, ale z MAC address routera. Powoduje to, że router błędnie przekaże pakiet do klienta docelowego. Podejście to jest podobne do stosowanego w Double Tagging Attacks, gdzie wykorzystuje się kontrolę nad hostem dostępnym dla ofiary, aby wykorzystać tę lukę. **Kluczowe kroki ataku:** -1. **Tworzenie pakietu:** Pakiet jest specjalnie skonstruowany, aby zawierał adres IP docelowego klienta, ale z adresem MAC routera. -2. **Wykorzystywanie zachowania routera:** Stworzony pakiet jest wysyłany do routera, który, z powodu konfiguracji, przekierowuje pakiet do docelowego klienta, omijając izolację zapewnianą przez ustawienia prywatnego VLAN. +1. **Tworzenie pakietu:** Specjalnie przygotowany pakiet zawiera adres IP docelowego klienta, ale z MAC address routera. +2. **Wykorzystanie zachowania routera:** Przygotowany pakiet jest wysyłany do routera, który z powodu konfiguracji przekierowuje pakiet do klienta docelowego, omijając izolację zapewnianą przez private VLAN. ### VTP Attacks -VTP (VLAN Trunking Protocol) centralizuje zarządzanie VLAN. Wykorzystuje numery rewizji do utrzymania integralności bazy danych VLAN; każda modyfikacja zwiększa ten numer. Switche przyjmują konfiguracje z wyższymi numerami rewizji, aktualizując swoje własne bazy danych VLAN. +VTP (VLAN Trunking Protocol) centralizuje zarządzanie VLAN. Używa revision numbers do utrzymania integralności VLAN database; każda modyfikacja zwiększa tę wartość. Switche przyjmują konfiguracje z wyższymi revision numbers, aktualizując własne VLAN database. #### VTP Domain Roles -- **VTP Server:** Zarządza VLAN-ami—tworzy, usuwa, modyfikuje. Rozsyła ogłoszenia VTP do członków domeny. -- **VTP Client:** Odbiera ogłoszenia VTP, aby zsynchronizować swoją bazę danych VLAN. Ta rola jest ograniczona w zakresie lokalnych modyfikacji konfiguracji VLAN. -- **VTP Transparent:** Nie angażuje się w aktualizacje VTP, ale przekazuje ogłoszenia VTP. Nie jest podatny na ataki VTP, utrzymuje stały numer rewizji równy zero. +- **VTP Server:** Zarządza VLANami — tworzy, usuwa, modyfikuje. Rozsyła VTP announcements do członków domeny. +- **VTP Client:** Odbiera VTP announcements w celu synchronizacji swojej VLAN database. W tej roli nie można lokalnie modyfikować konfiguracji VLAN. +- **VTP Transparent:** Nie bierze udziału w VTP updates, ale przekazuje VTP announcements. Nie jest podatny na VTP attacks i utrzymuje stały revision number równy zero. #### VTP Advertisement Types -- **Summary Advertisement:** Rozsyłane przez serwer VTP co 300 sekund, zawiera istotne informacje o domenie. +- **Summary Advertisement:** Nadawane przez VTP server co 300 sekund, zawiera kluczowe informacje o domenie. - **Subset Advertisement:** Wysyłane po zmianach konfiguracji VLAN. -- **Advertisement Request:** Wydawane przez klienta VTP w celu zażądania ogłoszenia podsumowującego, zazwyczaj w odpowiedzi na wykrycie wyższego numeru rewizji konfiguracji. +- **Advertisement Request:** Wystawiane przez VTP clienta, aby poprosić o Summary Advertisement, zazwyczaj w odpowiedzi na wykrycie wyższego configuration revision number. -Luki w VTP są wykorzystywane wyłącznie przez porty trunk, ponieważ ogłoszenia VTP krążą tylko przez nie. Scenariusze po ataku DTP mogą przejść do VTP. Narzędzia takie jak Yersinia mogą ułatwić ataki VTP, mając na celu usunięcie bazy danych VLAN, skutecznie zakłócając sieć. +Luki w VTP można wykorzystać wyłącznie przez trunk ports, ponieważ VTP announcements krążą tylko nimi. Po ataku DTP scenariusze mogą przejść do ataków VTP. Narzędzia takie jak Yersinia mogą ułatwić VTP attacks, dążąc do wyczyszczenia VLAN database, co skutecznie zakłóca działanie sieci. -Uwaga: Ta dyskusja dotyczy wersji VTP 1 (VTPv1). -````bash -%% yersinia -G # Launch Yersinia in graphical mode ``` -```` -W trybie graficznym Yersinii wybierz opcję usunięcia wszystkich VLAN-ów VTP, aby wyczyścić bazę danych VLAN. +Uwaga: Dyskusja odnosi się do VTP version 1 (VTPv1). +```bash +yersinia -G # Launch Yersinia in graphical mode +``` +W trybie graficznym Yersinia wybierz opcję deleting all VTP vlans, aby wyczyścić VLAN database. -### Ataki STP +### STP Attacks -**Jeśli nie możesz przechwycić ramek BPDU na swoich interfejsach, jest mało prawdopodobne, że odniesiesz sukces w ataku STP.** +**Jeśli nie możesz przechwycić ramek BPDU na swoich interfejsach, mało prawdopodobne jest, że odniesiesz sukces w STP attack.** #### **STP BPDU DoS** -Wysyłając dużą ilość BPDUs TCP (Powiadomienie o zmianie topologii) lub Conf (BPDUs, które są wysyłane, gdy topologia jest tworzona), przełączniki są przeciążone i przestają działać poprawnie. +Wysyłanie dużej ilości BPDUs TCP (Topology Change Notification) lub Conf (BPDUs wysyłane podczas tworzenia topologii) powoduje przeciążenie przełączników i ich nieprawidłowe działanie. ```bash yersinia stp -attack 2 yersinia stp -attack 3 #Use -M to disable MAC spoofing ``` -#### **Atak STP TCP** +#### **STP TCP Attack** -Gdy wysyłany jest TCP, tabela CAM przełączników zostanie usunięta w ciągu 15s. Następnie, jeśli ciągle wysyłasz tego rodzaju pakiety, tabela CAM będzie restartowana ciągle (lub co 15 sekund) i gdy zostanie zrestartowana, przełącznik zachowuje się jak hub. +Kiedy wysyłany jest TCP, CAM table przełączników zostanie usunięta po 15s. Następnie, jeśli będziesz ciągle wysyłać tego typu pakiety, CAM table będzie się restartować ciągle (albo co 15s) i kiedy zostanie zrestartowana, switch zachowuje się jak hub. ```bash yersinia stp -attack 1 #Will send 1 TCP packet and the switch should restore the CAM in 15 seconds yersinia stp -attack 0 #Will send 1 CONF packet, nothing else will happen ``` -#### **Atak STP Root** +#### **STP Root Attack** -Napastnik symuluje zachowanie przełącznika, aby stać się korzeniem STP w sieci. Wtedy więcej danych będzie przechodzić przez niego. To jest interesujące, gdy jesteś podłączony do dwóch różnych przełączników.\ -To osiąga się poprzez wysyłanie pakietów BPDUs CONF, mówiących, że wartość **priorytetu** jest mniejsza niż rzeczywisty priorytet rzeczywistego przełącznika korzenia. +Atakujący symuluje zachowanie switcha, aby zostać STP root sieci. Wtedy przez niego przejdzie więcej danych. To jest interesujące, gdy jesteś podłączony do dwóch różnych switchy.\ +Jest to robione poprzez wysyłanie BPDUs CONF packets mówiących, że wartość **priority** jest mniejsza niż rzeczywista wartość **priority** aktualnego root switch. ```bash yersinia stp -attack 4 #Behaves like the root switch yersinia stp -attack 5 #This will make the device behaves as a switch but will not be root ``` -**Jeśli atakujący jest podłączony do 2 switchy, może stać się korzeniem nowego drzewa, a cały ruch między tymi switchami będzie przechodził przez niego** (zostanie przeprowadzony atak MITM). +**Jeśli atakujący jest podłączony do 2 przełączników, może stać się korzeniem nowego drzewa i cały ruch między tymi przełącznikami będzie przez niego przechodził** (zostanie przeprowadzony atak MITM). ```bash yersinia stp -attack 6 #This will cause a DoS as the layer 2 packets wont be forwarded. You can use Ettercap to forward those packets "Sniff" --> "Bridged sniffing" ettercap -T -i eth1 -B eth2 -q #Set a bridge between 2 interfaces to forwardpackages ``` ### Ataki CDP -CISCO Discovery Protocol (CDP) jest niezbędny do komunikacji między urządzeniami CISCO, umożliwiając im **identyfikację nawzajem i dzielenie się szczegółami konfiguracji**. +CISCO Discovery Protocol (CDP) jest niezbędny do komunikacji między urządzeniami CISCO, umożliwiając im **identyfikowanie się nawzajem i udostępnianie szczegółów konfiguracji**. -#### Pasywne zbieranie danych +#### Passive Data Collection -CDP jest skonfigurowany do nadawania informacji przez wszystkie porty, co może prowadzić do ryzyka bezpieczeństwa. Atakujący, podłączając się do portu przełącznika, może wdrożyć analizatory sieciowe, takie jak **Wireshark**, **tcpdump** lub **Yersinia**. Działanie to może ujawnić wrażliwe dane o urządzeniu sieciowym, w tym jego model i wersję Cisco IOS, którą obsługuje. Atakujący może następnie celować w konkretne luki w zidentyfikowanej wersji Cisco IOS. +CDP jest skonfigurowany do nadawania informacji przez wszystkie porty, co może prowadzić do ryzyka bezpieczeństwa. Atakujący, po podłączeniu się do portu przełącznika, może uruchomić narzędzia do przechwytywania ruchu sieciowego, takie jak **Wireshark**, **tcpdump** lub **Yersinia**. To działanie może ujawnić wrażliwe dane o urządzeniu sieciowym, w tym jego model i wersję Cisco IOS, na której działa. Następnie atakujący może celować w konkretne podatności zidentyfikowanej wersji Cisco IOS. -#### Wzbudzanie zalewania tabeli CDP +#### Inducing CDP Table Flooding -Bardziej agresywne podejście polega na przeprowadzeniu ataku typu Denial of Service (DoS) poprzez przytłoczenie pamięci przełącznika, udając legalne urządzenia CISCO. Poniżej znajduje się sekwencja poleceń do rozpoczęcia takiego ataku przy użyciu Yersinia, narzędzia sieciowego zaprojektowanego do testowania: +Bardziej agresywne podejście polega na przeprowadzeniu Denial of Service (DoS) poprzez przepełnienie pamięci przełącznika, podszywając się pod prawowite urządzenia CISCO. Poniżej znajduje się sekwencja poleceń do zainicjowania takiego ataku przy użyciu Yersinia, narzędzia sieciowego przeznaczonego do testowania: ```bash sudo yersinia cdp -attack 1 # Initiates a DoS attack by simulating fake CISCO devices # Alternatively, for a GUI approach: sudo yersinia -G ``` -Podczas tego ataku, CPU przełącznika i tabela sąsiadów CDP są mocno obciążone, co prowadzi do tego, co często określa się jako **„paraliż sieci”** z powodu nadmiernego zużycia zasobów. +#### CDP Impersonation Attack -#### Atak na podszywanie się pod CDP +W trakcie tego ataku CPU przełącznika oraz CDP neighbor table są mocno obciążone, co prowadzi do tego, co często określa się jako **„paraliż sieci”** z powodu nadmiernego zużycia zasobów. ```bash sudo yersinia cdp -attack 2 #Simulate a new CISCO device sudo yersinia cdp -attack 0 #Send a CDP packet ``` -Możesz również użyć [**scapy**](https://github.com/secdev/scapy/). Upewnij się, że zainstalujesz go z pakietem `scapy/contrib`. +You could also use [**scapy**](https://github.com/secdev/scapy/). Be sure to install it with `scapy/contrib` package. ### Ataki VoIP i narzędzie VoIP Hopper -Telefony VoIP, coraz bardziej zintegrowane z urządzeniami IoT, oferują funkcje takie jak odblokowywanie drzwi czy kontrolowanie termostatów za pomocą specjalnych numerów telefonów. Jednak ta integracja może stwarzać zagrożenia dla bezpieczeństwa. +VoIP phones, increasingly integrated with IoT devices, offer functionalities like unlocking doors or controlling thermostats through special phone numbers. However, this integration can pose security risks. -Narzędzie [**voiphopper**](http://voiphopper.sourceforge.net) zostało zaprojektowane do emulacji telefonu VoIP w różnych środowiskach (Cisco, Avaya, Nortel, Alcatel-Lucent). Odkrywa identyfikator VLAN sieci głosowej za pomocą protokołów takich jak CDP, DHCP, LLDP-MED i 802.1Q ARP. +The tool [**voiphopper**](http://voiphopper.sourceforge.net) is designed to emulate a VoIP phone in various environments (Cisco, Avaya, Nortel, Alcatel-Lucent). It discovers the voice network's VLAN ID using protocols like CDP, DHCP, LLDP-MED, and 802.1Q ARP. -**VoIP Hopper** oferuje trzy tryby dla protokołu Cisco Discovery Protocol (CDP): +**VoIP Hopper** offers three modes for the Cisco Discovery Protocol (CDP): -1. **Tryb Sniff** (`-c 0`): Analizuje pakiety sieciowe, aby zidentyfikować identyfikator VLAN. -2. **Tryb Spoof** (`-c 1`): Generuje niestandardowe pakiety naśladujące te z rzeczywistego urządzenia VoIP. -3. **Tryb Spoof z gotowym pakietem** (`-c 2`): Wysyła pakiety identyczne do tych z konkretnego modelu telefonu IP Cisco. +1. **Sniff Mode** (`-c 0`): Analizuje pakiety sieciowe, aby zidentyfikować VLAN ID. +2. **Spoof Mode** (`-c 1`): Generuje niestandardowe pakiety, imitujące te wysyłane przez rzeczywiste urządzenie VoIP. +3. **Spoof with Pre-made Packet Mode** (`-c 2`): Wysyła pakiety identyczne z pakietami konkretnego modelu telefonu Cisco IP. -Preferowany tryb dla szybkości to trzeci. Wymaga on określenia: +The preferred mode for speed is the third one. It requires specifying: -- Interfejsu sieciowego atakującego (`-i` parameter). -- Nazwy emulowanego urządzenia VoIP (`-E` parameter), zgodnie z formatem nazewnictwa Cisco (np. SEP, a następnie adres MAC). +- The attacker's network interface (`-i` parameter). +- The name of the VoIP device being emulated (`-E` parameter), adhering to the Cisco naming format (e.g., SEP followed by a MAC address). -W środowiskach korporacyjnych, aby naśladować istniejące urządzenie VoIP, można: +In corporate settings, to mimic an existing VoIP device, one might: -- Sprawdzić etykietę MAC na telefonie. -- Przejść do ustawień wyświetlacza telefonu, aby zobaczyć informacje o modelu. -- Podłączyć urządzenie VoIP do laptopa i obserwować żądania CDP za pomocą Wireshark. +- Inspect the MAC label on the phone. +- Navigate the phone's display settings to view model information. +- Connect the VoIP device to a laptop and observe CDP requests using Wireshark. -Przykładowe polecenie do uruchomienia narzędzia w trzecim trybie to: +An example command to execute the tool in the third mode would be: ```bash voiphopper -i eth1 -E 'SEP001EEEEEEEEE ' -c 2 ``` @@ -491,99 +492,101 @@ Nmap done: 0 IP addresses (0 hosts up) scanned in 5.27 seconds ``` **DoS** -**Dwa typy DoS** mogą być przeprowadzone przeciwko serwerom DHCP. Pierwszy z nich polega na **symulowaniu wystarczającej liczby fałszywych hostów, aby wykorzystać wszystkie możliwe adresy IP**.\ -Ten atak zadziała tylko wtedy, gdy możesz zobaczyć odpowiedzi serwera DHCP i zakończyć protokół (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server)). Na przykład, **to nie jest możliwe w sieciach Wifi**. +**Dwa rodzaje DoS** mogą być przeprowadzone przeciwko serwerom DHCP. Pierwszy polega na **zasymulowaniu wystarczającej liczby fałszywych hostów, aby wykorzystać wszystkie możliwe adresy IP**.\ +Ten atak zadziała tylko wtedy, gdy możesz zobaczyć odpowiedzi serwera DHCP i dokończyć protokół (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server)). Na przykład, to **nie jest możliwe w sieciach Wifi**. -Innym sposobem przeprowadzenia DoS DHCP jest wysłanie **pakietu DHCP-RELEASE, używając jako kodu źródłowego każdego możliwego adresu IP**. Wtedy serwer pomyśli, że wszyscy zakończyli korzystanie z IP. +Inny sposób przeprowadzenia DHCP DoS to wysłanie **pakietu DHCP-RELEASE używając jako adresu źródłowego każdej możliwej IP**. Wtedy serwer pomyśli, że wszyscy zakończyli używanie adresów IP. ```bash yersinia dhcp -attack 1 yersinia dhcp -attack 3 #More parameters are needed ``` -Bardziej automatyczny sposób na to to użycie narzędzia [DHCPing](https://github.com/kamorin/DHCPig) +Bardziej zautomatyzowany sposób to użycie narzędzia [DHCPing](https://github.com/kamorin/DHCPig) -Możesz użyć wspomnianych ataków DoS, aby zmusić klientów do uzyskania nowych dzierżaw w środowisku i wyczerpać legalne serwery, aby stały się nieodpowiedzialne. Gdy legalne serwery próbują ponownie się połączyć, **możesz serwować złośliwe wartości wspomniane w następnym ataku**. +Możesz użyć wspomnianych ataków DoS, aby zmusić klientów do uzyskania nowych dzierżaw w środowisku i wyczerpać zasoby legalnych serwerów, powodując ich brak reakcji. Gdy legalne serwery spróbują ponownie obsłużyć żądania, **możesz serwować złośliwe wartości opisane w następnym ataku**. -#### Ustaw złośliwe wartości +#### Ustawianie złośliwych wartości -Można skonfigurować nielegalny serwer DHCP za pomocą skryptu DHCP znajdującego się w `/usr/share/responder/DHCP.py`. Jest to przydatne w atakach sieciowych, takich jak przechwytywanie ruchu HTTP i poświadczeń, poprzez przekierowywanie ruchu do złośliwego serwera. Jednak ustawienie nielegalnej bramy jest mniej skuteczne, ponieważ pozwala tylko na przechwytywanie ruchu wychodzącego od klienta, pomijając odpowiedzi z prawdziwej bramy. Zamiast tego zaleca się skonfigurowanie nielegalnego serwera DNS lub WPAD dla bardziej skutecznego ataku. +Złośliwy serwer DHCP można uruchomić używając skryptu DHCP znajdującego się w `/usr/share/responder/DHCP.py`. Jest to przydatne w atakach sieciowych, np. do przechwytywania ruchu HTTP i poświadczeń, poprzez przekierowanie ruchu do złośliwego serwera. Jednak ustawienie złośliwej bramy jest mniej efektywne, ponieważ pozwala jedynie na przechwytywanie ruchu wychodzącego od klienta, pomijając odpowiedzi od rzeczywistej bramy. Zamiast tego zaleca się skonfigurowanie złośliwego serwera DNS lub WPAD dla skuteczniejszego ataku. -Poniżej znajdują się opcje poleceń do skonfigurowania nielegalnego serwera DHCP: +Poniżej znajdują się opcje poleceń do konfiguracji złośliwego serwera DHCP: -- **Nasz adres IP (Ogłoszenie bramy)**: Użyj `-i 10.0.0.100`, aby ogłosić adres IP swojej maszyny jako bramę. -- **Lokalna nazwa domeny DNS**: Opcjonalnie użyj `-d example.org`, aby ustawić lokalną nazwę domeny DNS. -- **Oryginalny adres IP routera/bramy**: Użyj `-r 10.0.0.1`, aby określić adres IP legalnego routera lub bramy. -- **Adres IP głównego serwera DNS**: Użyj `-p 10.0.0.100`, aby ustawić adres IP nielegalnego serwera DNS, który kontrolujesz. -- **Adres IP drugiego serwera DNS**: Opcjonalnie użyj `-s 10.0.0.1`, aby ustawić adres IP drugiego serwera DNS. -- **Maska sieci lokalnej**: Użyj `-n 255.255.255.0`, aby zdefiniować maskę dla sieci lokalnej. -- **Interfejs dla ruchu DHCP**: Użyj `-I eth1`, aby nasłuchiwać ruchu DHCP na konkretnym interfejsie sieciowym. -- **Adres konfiguracji WPAD**: Użyj `-w “http://10.0.0.100/wpad.dat”`, aby ustawić adres dla konfiguracji WPAD, wspomagając przechwytywanie ruchu sieciowego. -- **Fałszowanie adresu IP domyślnej bramy**: Dodaj `-S`, aby sfałszować adres IP domyślnej bramy. -- **Odpowiadanie na wszystkie żądania DHCP**: Dodaj `-R`, aby serwer odpowiadał na wszystkie żądania DHCP, ale bądź świadomy, że jest to głośne i może być wykryte. +- **Our IP Address (Gateway Advertisement)**: Use `-i 10.0.0.100` to advertise your machine's IP as the gateway. +- **Local DNS Domain Name**: Optionally, use `-d example.org` to set a local DNS domain name. +- **Original Router/Gateway IP**: Use `-r 10.0.0.1` to specify the IP address of the legitimate router or gateway. +- **Primary DNS Server IP**: Use `-p 10.0.0.100` to set the IP address of the rogue DNS server you control. +- **Secondary DNS Server IP**: Optionally, use `-s 10.0.0.1` to set a secondary DNS server IP. +- **Netmask of Local Network**: Use `-n 255.255.255.0` to define the netmask for the local network. +- **Interface for DHCP Traffic**: Use `-I eth1` to listen for DHCP traffic on a specific network interface. +- **WPAD Configuration Address**: Use `-w “http://10.0.0.100/wpad.dat”` to set the address for WPAD configuration, assisting in web traffic interception. +- **Spoof Default Gateway IP**: Include `-S` to spoof the default gateway IP address. +- **Respond to All DHCP Requests**: Include `-R` to make the server respond to all DHCP requests, but be aware that this is noisy and can be detected. -Poprawne użycie tych opcji pozwala na skuteczne utworzenie nielegalnego serwera DHCP do przechwytywania ruchu sieciowego. +Poprawne użycie tych opcji pozwala ustanowić złośliwy serwer DHCP, który skutecznie przechwyci ruch sieciowy. ```python # Example to start a rogue DHCP server with specified options !python /usr/share/responder/DHCP.py -i 10.0.0.100 -d example.org -r 10.0.0.1 -p 10.0.0.100 -s 10.0.0.1 -n 255.255.255.0 -I eth1 -w "http://10.0.0.100/wpad.dat" -S -R ``` ### **Ataki EAP** -Oto niektóre z taktyk ataku, które można wykorzystać przeciwko implementacjom 802.1X: +Oto niektóre taktyki ataku, które można stosować przeciw implementacjom 802.1X: -- Aktywne łamanie haseł metodą brute-force za pomocą EAP -- Atakowanie serwera RADIUS z użyciem źle sformatowanej zawartości EAP _\*\*_(exploits) -- Przechwytywanie wiadomości EAP i łamanie haseł offline (EAP-MD5 i PEAP) -- Wymuszanie uwierzytelniania EAP-MD5 w celu ominięcia walidacji certyfikatu TLS -- Wstrzykiwanie złośliwego ruchu sieciowego podczas uwierzytelniania za pomocą huba lub podobnego urządzenia +- Active brute-force password grinding via EAP +- Attacking the RADIUS server with malformed EAP content _\*\*_(exploits) +- EAP message capture and offline password cracking (EAP-MD5 and PEAP) +- Forcing EAP-MD5 authentication to bypass TLS certificate validation +- Injecting malicious network traffic upon authenticating using a hub or similar -Jeśli atakujący znajduje się pomiędzy ofiarą a serwerem uwierzytelniającym, może spróbować obniżyć (jeśli to konieczne) protokół uwierzytelniania do EAP-MD5 i przechwycić próbę uwierzytelnienia. Następnie może to złamać za pomocą: +Jeśli atakujący znajduje się pomiędzy ofiarą a serwerem uwierzytelniania, może spróbować (jeśli to konieczne) zdegradować protokół uwierzytelniania do EAP-MD5 i przechwycić próbę uwierzytelnienia. Następnie mógłby zastosować brute-force przy użyciu: ``` eapmd5pass –r pcap.dump –w /usr/share/wordlist/sqlmap.txt ``` -### Ataki FHRP (GLBP i HSRP) +### FHRP (GLBP & HSRP) Attacks -**FHRP** (First Hop Redundancy Protocol) to klasa protokołów sieciowych zaprojektowanych w celu **stworzenia gorącego redundantnego systemu routingu**. Dzięki FHRP fizyczne routery mogą być łączone w jeden logiczny urządzenie, co zwiększa tolerancję na błędy i pomaga rozłożyć obciążenie. +**FHRP** (First Hop Redundancy Protocol) to klasa protokołów sieciowych zaprojektowana, aby **utworzyć aktywny redundantny system routingu**. Dzięki FHRP fizyczne routery mogą być połączone w jedno logiczne urządzenie, co zwiększa odporność na awarie i pomaga rozłożyć obciążenie. **Inżynierowie Cisco Systems opracowali dwa protokoły FHRP, GLBP i HSRP.** + {{#ref}} glbp-and-hsrp-attacks.md {{#endref}} ### RIP -Znane są trzy wersje protokołu Routing Information Protocol (RIP): RIP, RIPv2 i RIPng. Datagramy są wysyłane do sąsiadów przez port 520 przy użyciu UDP przez RIP i RIPv2, podczas gdy datagramy są nadawane na port UDP 521 przez multicast IPv6 przez RIPng. Obsługa uwierzytelniania MD5 została wprowadzona przez RIPv2. Z drugiej strony, natywne uwierzytelnianie nie jest włączone w RIPng; zamiast tego polega się na opcjonalnych nagłówkach IPsec AH i ESP w IPv6. +Istnieją trzy znane wersje Routing Information Protocol (RIP): RIP, RIPv2 i RIPng. Datagramy są wysyłane do sąsiadów przez port 520 przy użyciu UDP przez RIP i RIPv2, natomiast w przypadku RIPng datagramy są rozgłaszane na UDP port 521 przez IPv6 multicast. RIPv2 wprowadził wsparcie dla uwierzytelniania MD5. Z kolei RIPng nie zawiera natywnego uwierzytelniania i polega na opcjonalnych nagłówkach IPsec AH i ESP w IPv6. - **RIP i RIPv2:** Komunikacja odbywa się przez datagramy UDP na porcie 520. -- **RIPng:** Wykorzystuje port UDP 521 do nadawania datagramów przez multicast IPv6. +- **RIPng:** Wykorzystuje UDP port 521 do rozsyłania datagramów przez IPv6 multicast. -Należy zauważyć, że RIPv2 obsługuje uwierzytelnianie MD5, podczas gdy RIPng nie zawiera natywnego uwierzytelniania, polegając na nagłówkach IPsec AH i ESP w IPv6. +Zauważ, że RIPv2 obsługuje uwierzytelnianie MD5, podczas gdy RIPng nie zawiera natywnego uwierzytelniania i polega na nagłówkach IPsec AH i ESP w IPv6. -### Ataki EIGRP +### EIGRP Attacks -**EIGRP (Enhanced Interior Gateway Routing Protocol)** to dynamiczny protokół routingu. **Jest to protokół wektorowy odległości.** Jeśli nie ma **uwierzytelniania** i konfiguracji interfejsów pasywnych, **intruz** może zakłócić routing EIGRP i spowodować **zatrucie tabel routingu**. Ponadto sieć EIGRP (innymi słowy, autonomiczny system) **jest płaska i nie ma segmentacji na żadne strefy**. Jeśli **atakujący wstrzyknie trasę**, istnieje duże prawdopodobieństwo, że ta trasa **rozprzestrzeni się** w całym autonomicznym systemie EIGRP. +**EIGRP (Enhanced Interior Gateway Routing Protocol)** to dynamiczny protokół routingu. **Jest to protokół distance-vector.** Jeśli nie ma **uwierzytelniania** i skonfigurowanych interfejsów pasywnych, **intruz** może zakłócić routing EIGRP i spowodować **otrucie tablic routingu**. Co więcej, sieć EIGRP (czyli system autonomiczny) **jest płaska i nie ma segmentacji na strefy**. Jeśli **atakujący wstrzyknie trasę**, istnieje duże prawdopodobieństwo, że trasa ta **rozprzestrzeni się** po całym autonomicznym systemie EIGRP. -Aby zaatakować system EIGRP, należy **nawiązać sąsiedztwo z legalnym routerem EIGRP**, co otwiera wiele możliwości, od podstawowego rozpoznania po różne wstrzyknięcia. +Aby zaatakować system EIGRP, trzeba **ustanowić sąsiedztwo z legalnym routerem EIGRP**, co otwiera wiele możliwości, od podstawowego rozpoznania po różne wstrzyknięcia. + +[**FRRouting**](https://frrouting.org/) pozwala zaimplementować **wirtualny router obsługujący BGP, OSPF, EIGRP, RIP i inne protokoły.** Wystarczy wdrożyć go na systemie atakującego i można podszywać się pod legalny router w domenie routingu. -[**FRRouting**](https://frrouting.org/) pozwala na wdrożenie **wirtualnego routera, który obsługuje BGP, OSPF, EIGRP, RIP i inne protokoły.** Wystarczy wdrożyć go na systemie atakującego, a można udawać legalny router w domenie routingu. {{#ref}} eigrp-attacks.md {{#endref}} -[**Coly**](https://code.google.com/p/coly/) ma możliwości przechwytywania transmisji EIGRP (Enhanced Interior Gateway Routing Protocol). Umożliwia również wstrzykiwanie pakietów, które mogą być wykorzystane do zmiany konfiguracji routingu. +[**Coly**](https://code.google.com/p/coly/) ma możliwości przechwytywania broadcastów EIGRP (Enhanced Interior Gateway Routing Protocol). Pozwala też na wstrzykiwanie pakietów, które można wykorzystać do zmiany konfiguracji routingu. ### OSPF -W protokole Open Shortest Path First (OSPF) **powszechnie stosuje się uwierzytelnianie MD5, aby zapewnić bezpieczną komunikację między routerami**. Jednak ten środek bezpieczeństwa może być naruszony za pomocą narzędzi takich jak Loki i John the Ripper. Narzędzia te są w stanie przechwytywać i łamać hashe MD5, ujawniając klucz uwierzytelniający. Po uzyskaniu tego klucza można go użyć do wprowadzenia nowych informacji routingu. Aby skonfigurować parametry trasy i ustawić skompromitowany klucz, wykorzystywane są odpowiednio zakładki _Injection_ i _Connection_. +W protokole Open Shortest Path First (OSPF) **uwierzytelnianie MD5 jest powszechnie stosowane, aby zapewnić bezpieczną komunikację między routerami**. Jednak ten mechanizm bezpieczeństwa można złamać za pomocą narzędzi takich jak Loki i John the Ripper. Narzędzia te potrafią przechwycić i złamać skróty MD5, ujawniając klucz uwierzytelniający. Po uzyskaniu tego klucza można użyć go do wprowadzenia nowych informacji routingu. Do skonfigurowania parametrów trasy i ustalenia skompromitowanego klucza służą odpowiednio zakładki _Injection_ i _Connection_. -- **Przechwytywanie i łamanie hashy MD5:** Narzędzia takie jak Loki i John the Ripper są używane do tego celu. -- **Konfigurowanie parametrów trasy:** Odbywa się to przez zakładkę _Injection_. -- **Ustawianie skompromitowanego klucza:** Klucz jest konfigurowany w zakładce _Connection_. +- **Przechwytywanie i łamanie skrótów MD5:** Do tego celu używa się narzędzi takich jak Loki i John the Ripper. +- **Konfiguracja parametrów trasy:** Odbywa się przez zakładkę _Injection_. +- **Ustawienie skompromitowanego klucza:** Klucz konfiguruje się w zakładce _Connection_. -### Inne ogólne narzędzia i źródła +### Other Generic Tools & Sources - [**Above**](https://github.com/c4s73r/Above): Narzędzie do skanowania ruchu sieciowego i znajdowania luk -- Możesz znaleźć **więcej informacji o atakach sieciowych** [**tutaj**](https://github.com/Sab0tag3d/MITM-cheatsheet). +- Więcej informacji o **atakach sieciowych** można znaleźć [**tutaj**](https://github.com/Sab0tag3d/MITM-cheatsheet). ## **Spoofing** @@ -594,11 +597,11 @@ yersinia dhcp -attack 2 #More parameters are needed ``` ### ARP Spoofing -Sprawdź [poprzednią sekcję](#arp-spoofing). +Check the [previous section](#arp-spoofing). ### ICMPRedirect -ICMP Redirect polega na wysyłaniu pakietu ICMP typu 1 kod 5, który wskazuje, że atakujący jest najlepszym sposobem dotarcia do danego adresu IP. Następnie, gdy ofiara chce skontaktować się z tym adresem IP, wyśle pakiet przez atakującego. +ICMP Redirect polega na wysyłaniu ICMP packet typu 1 code 5, który informuje, że attacker jest najlepszą drogą dotarcia do IP. Następnie, gdy victim chce skontaktować się z IP, wyśle packet przez attacker. ```bash Ettercap icmp_redirect @@ -606,7 +609,7 @@ hping3 [VICTIM IP ADDRESS] -C 5 -K 1 -a [VICTIM DEFAULT GW IP ADDRESS] --icmp-gw ``` ### DNS Spoofing -Atakujący rozwiąże niektóre (lub wszystkie) domeny, o które pyta ofiara. +Atakujący rozwiąże niektóre (lub wszystkie) domeny, o które prosi ofiara. ```bash set dns.spoof.hosts ./dns.spoof.hosts; dns.spoof on ``` @@ -617,7 +620,7 @@ dig @localhost domain.example.com # Test the configured DNS ``` ### Lokalne bramy -Wiele tras do systemów i sieci często istnieje. Po zbudowaniu listy adresów MAC w lokalnej sieci, użyj _gateway-finder.py_, aby zidentyfikować hosty, które obsługują przekazywanie IPv4. +Do systemów i sieci często prowadzi wiele tras. Po zbudowaniu listy adresów MAC w sieci lokalnej użyj _gateway-finder.py_, aby zidentyfikować hosty, które obsługują przekazywanie IPv4. ``` root@kali:~# git clone https://github.com/pentestmonkey/gateway-finder.git root@kali:~# cd gateway-finder/ @@ -635,37 +638,37 @@ gateway-finder v1.0 http://pentestmonkey.net/tools/gateway-finder [+] We can ping 209.85.227.99 via 00:13:72:09:AD:76 [10.0.0.100] [+] We can reach TCP port 80 on 209.85.227.99 via 00:13:72:09:AD:76 [10.0.0.100] ``` -### [Spoofing LLMNR, NBT-NS, i mDNS](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) +### [Spoofing LLMNR, NBT-NS, and mDNS](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) -W przypadku lokalnego rozwiązywania hostów, gdy zapytania DNS są nieudane, systemy Microsoftu polegają na **Link-Local Multicast Name Resolution (LLMNR)** i **NetBIOS Name Service (NBT-NS)**. Podobnie, **Apple Bonjour** i implementacje **Linux zero-configuration** wykorzystują **Multicast DNS (mDNS)** do odkrywania systemów w sieci. Z powodu nieautoryzowanej natury tych protokołów i ich działania przez UDP, broadcastując wiadomości, mogą być wykorzystywane przez atakujących, którzy mają na celu przekierowanie użytkowników do złośliwych usług. +Dla rozwiązywania nazw hostów lokalnych, gdy zapytania DNS zawodzą, systemy Microsoft polegają na Link-Local Multicast Name Resolution (LLMNR) oraz NetBIOS Name Service (NBT-NS). Podobnie implementacje Apple Bonjour i Linux zero-configuration wykorzystują Multicast DNS (mDNS) do wykrywania systemów w sieci. Ponieważ te protokoły nie oferują uwierzytelnienia i działają przez UDP, wykorzystując transmisje multicast/broadcast, mogą być nadużyte przez atakujących w celu przekierowania użytkowników do złośliwych usług. -Możesz podszywać się pod usługi, które są wyszukiwane przez hosty, używając Respondera do wysyłania fałszywych odpowiedzi.\ -Przeczytaj tutaj więcej informacji o tym, [jak podszywać się pod usługi za pomocą Respondera](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md). +Możesz podszyć się pod usługi wyszukiwane przez hosty, używając Responder do wysyłania fałszywych odpowiedzi.\ +Read here more information about [how to Impersonate services with Responder](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md). ### [Spoofing WPAD](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) -Przeglądarki powszechnie wykorzystują **protokół Web Proxy Auto-Discovery (WPAD) do automatycznego pozyskiwania ustawień proxy**. Obejmuje to pobieranie szczegółów konfiguracyjnych z serwera, konkretnie przez URL taki jak "http://wpad.example.org/wpad.dat". Odkrycie tego serwera przez klientów może odbywać się za pomocą różnych mechanizmów: +Przeglądarki często korzystają z protokołu Web Proxy Auto-Discovery (WPAD), aby automatycznie pobierać ustawienia proxy. Obejmuje to pobieranie konfiguracji z serwera, na przykład z URL-a takiego jak "http://wpad.example.org/wpad.dat". Odkrycie tego serwera przez klienty może odbywać się różnymi mechanizmami: -- Przez **DHCP**, gdzie odkrycie jest ułatwione przez wykorzystanie specjalnego kodu 252. -- Poprzez **DNS**, co polega na wyszukiwaniu nazwy hosta oznaczonej jako _wpad_ w lokalnej domenie. -- Za pomocą **Microsoft LLMNR i NBT-NS**, które są mechanizmami zapasowymi używanymi w przypadkach, gdy zapytania DNS nie powiodą się. +- Przez DHCP, gdzie odkrycie ułatwia wpis o specjalnym kodzie 252. +- Przez DNS, polegające na wyszukiwaniu nazwy hosta oznaczonej jako _wpad_ w domenie lokalnej. +- Przez Microsoft LLMNR i NBT-NS, które są mechanizmami zapasowymi używanymi, gdy zapytania DNS nie powiodą się. -Narzędzie Responder wykorzystuje ten protokół, działając jako **złośliwy serwer WPAD**. Używa DHCP, DNS, LLMNR i NBT-NS, aby wprowadzić klientów w błąd, zmuszając ich do połączenia się z nim. Aby zgłębić, jak usługi mogą być podszywane za pomocą Respondera, [sprawdź to](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md). +Narzędzie Responder wykorzystuje ten protokół, udając złośliwy serwer WPAD. Używa DHCP, DNS, LLMNR i NBT-NS, aby wprowadzić klientów w błąd i skłonić ich do połączenia. Aby dowiedzieć się więcej o tym, jak usługi mogą być podszywane przy użyciu Responder, [check this](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md). -### [Spoofing urządzeń SSDP i UPnP](spoofing-ssdp-and-upnp-devices.md) +### [Spoofing SSDP and UPnP devices](spoofing-ssdp-and-upnp-devices.md) -Możesz oferować różne usługi w sieci, aby spróbować **oszukać użytkownika** do wprowadzenia jakichś **jawnych poświadczeń**. **Więcej informacji o tym ataku w** [**Spoofing SSDP i UPnP Devices**](spoofing-ssdp-and-upnp-devices.md)**.** +Możesz zaoferować różne usługi w sieci, aby spróbować oszukać użytkownika i skłonić go do wpisania poświadczeń w postaci plain-text. **More information about this attack in** [**Spoofing SSDP and UPnP Devices**](spoofing-ssdp-and-upnp-devices.md)**.** -### Spoofing sąsiadów IPv6 +### IPv6 Neighbor Spoofing -Ten atak jest bardzo podobny do ARP Spoofing, ale w świecie IPv6. Możesz sprawić, że ofiara pomyśli, że IPv6 GW ma MAC atakującego. +Ten atak jest bardzo podobny do ARP Spoofing, ale w świecie IPv6. Możesz sprawić, że ofiara uwierzy, iż adres IPv6 bramy (GW) odpowiada adresowi MAC atakującego. ```bash sudo parasite6 -l eth0 # This option will respond to every requests spoofing the address that was requested sudo fake_advertise6 -r -w 2 eth0 #This option will send the Neighbor Advertisement packet every 2 seconds ``` ### IPv6 Router Advertisement Spoofing/Flooding -Niektóre systemy operacyjne domyślnie konfigurują bramę na podstawie pakietów RA wysyłanych w sieci. Aby zadeklarować atakującego jako router IPv6, możesz użyć: +Niektóre OS domyślnie ustawiają gateway na podstawie pakietów RA wysyłanych w sieci. Aby zadeklarować atakującego jako IPv6 router, możesz użyć: ```bash sysctl -w net.ipv6.conf.all.forwarding=1 4 ip route add default via dev wlan0 @@ -673,20 +676,20 @@ fake_router6 wlan0 fe80::01/16 ``` ### IPv6 DHCP spoofing -Domyślnie niektóre systemy operacyjne próbują skonfigurować DNS, odczytując pakiet DHCPv6 w sieci. Wtedy atakujący może wysłać pakiet DHCPv6, aby skonfigurować się jako DNS. DHCP również zapewnia ofierze adres IPv6. +Domyślnie niektóre OS próbują skonfigurować DNS, odczytując pakiet DHCPv6 w sieci. Wtedy atakujący może wysłać pakiet DHCPv6, aby ustawić się jako DNS. DHCP także przydziela ofierze adres IPv6. ```bash dhcp6.spoof on dhcp6.spoof.domains mitm6 ``` -### HTTP (fałszywa strona i wstrzykiwanie kodu JS) +### HTTP (fałszywa strona i wstrzyknięcie kodu JS) ## Ataki internetowe ### sslStrip -W zasadzie to, co robi ten atak, to w przypadku, gdy **użytkownik** próbuje **uzyskać dostęp** do strony **HTTP**, która **przekierowuje** do wersji **HTTPS**. **sslStrip** **utrzymuje** połączenie **HTTP z** **klientem** i połączenie **HTTPS z** **serwerem**, dzięki czemu będzie w stanie **podsłuchiwać** połączenie w **czystym tekście**. +Zasadniczo atak polega na tym, że jeśli **user** próbuje **uzyskać dostęp** do strony **HTTP**, która **przekierowuje** na wersję **HTTPS**, to **sslStrip** utrzyma **połączenie HTTP z** **client i** **połączenie HTTPS z** **server**, dzięki czemu będzie w stanie **sniff** połączenie w **plain text**. ```bash apt-get install sslstrip sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k @@ -695,29 +698,29 @@ sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000 iptables -A INPUT -p tcp --destination-port 10000 -j ACCEPT ``` -Więcej informacji [tutaj](https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf). +More info [here](https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf). -### sslStrip+ i dns2proxy do omijania HSTS +### sslStrip+ and dns2proxy do omijania HSTS -**Różnica** między **sslStrip+ a dns2proxy** a **sslStrip** polega na tym, że będą **przekierowywać** na przykład _**www.facebook.com**_ **na** _**wwww.facebook.com**_ (zauważ **dodatkowe** "**w**") i ustawią **adres tej domeny jako IP atakującego**. W ten sposób **klient** będzie **łączyć się** z _**wwww.facebook.com**_ **(atakujący)**, ale w tle **sslstrip+** będzie **utrzymywać** **prawdziwe połączenie** przez https z **www.facebook.com**. +Różnica między **sslStrip+ and dns2proxy** a **sslStrip** polega na tym, że przekierują na przykład _**www.facebook.com**_ **do** _**wwww.facebook.com**_ (zwróć uwagę na dodatkowe "**w**") i ustawią **adres tej domeny jako attacker IP**. W ten sposób **client** **połączy się** z _**wwww.facebook.com**_ **(attacker)**, ale za kulisami **sslstrip+** utrzyma **rzeczywiste połączenie** przez https z **www.facebook.com**. -**Celem** tej techniki jest **unikanie HSTS**, ponieważ _**wwww**.facebook.com_ **nie będzie** zapisane w **pamięci podręcznej** przeglądarki, więc przeglądarka zostanie oszukana, aby wykonać **autoryzację facebooka w HTTP**.\ -Zauważ, że aby przeprowadzić ten atak, ofiara musi najpierw spróbować uzyskać dostęp do [http://www.faceook.com](http://www.faceook.com), a nie https. Można to zrobić, modyfikując linki wewnątrz strony http. +Celem tej techniki jest **obejście HSTS**, ponieważ _**wwww**.facebook.com_ **nie zostanie** zapisany w **cache** przeglądarki, więc przeglądarka zostanie oszukana, aby wykonać **facebook authentication in HTTP**.\ +Zwróć uwagę, że aby przeprowadzić ten atak, ofiara musi na początku próbować uzyskać dostęp do [http://www.faceook.com](http://www.faceook.com), a nie https. Można to osiągnąć, modyfikując linki na stronie serwowanej przez http. -Więcej informacji [tutaj](https://www.bettercap.org/legacy/#hsts-bypass), [tutaj](https://www.slideshare.net/Fatuo__/offensive-exploiting-dns-servers-changes-blackhat-asia-2014) i [tutaj](https://security.stackexchange.com/questions/91092/how-does-bypassing-hsts-with-sslstrip-work-exactly). +More info [here](https://www.bettercap.org/legacy/#hsts-bypass), [here](https://www.slideshare.net/Fatuo__/offensive-exploiting-dns-servers-changes-blackhat-asia-2014) and [here](https://security.stackexchange.com/questions/91092/how-does-bypassing-hsts-with-sslstrip-work-exactly). -**sslStrip lub sslStrip+ nie działają już. Dzieje się tak, ponieważ w przeglądarkach są zapisane zasady HSTS, więc nawet jeśli to pierwszy raz, gdy użytkownik uzyskuje dostęp do "ważnej" domeny, uzyska do niej dostęp przez HTTPS. Zauważ również, że zapisane zasady i inne generowane zasady mogą używać flagi** [**`includeSubdomains`**](https://hstspreload.appspot.com) **więc przykład** _**wwww.facebook.com**_ **z poprzedniego akapitu nie zadziała już, ponieważ** _**facebook.com**_ **używa HSTS z `includeSubdomains`.** +**sslStrip or sslStrip+ już nie działają. Wynika to z tego, że przeglądarki mają presaved HSTS rules, więc nawet jeśli użytkownik po raz pierwszy odwiedza „ważną” domenę, otworzy ją przez HTTPS. Zauważ także, że presaved rules i inne generowane reguły mogą używać flagi** [**`includeSubdomains`**](https://hstspreload.appspot.com) **więc podany wcześniej przykład z** _**wwww.facebook.com**_ **nie będzie już działać, ponieważ** _**facebook.com**_ **używa HSTS z `includeSubdomains`.** TODO: easy-creds, evilgrade, metasploit, factory -## TCP nasłuch na porcie +## Nasłuchiwanie TCP na porcie ```bash sudo nc -l -p 80 socat TCP4-LISTEN:80,fork,reuseaddr - ``` ## TCP + SSL nasłuch na porcie -#### Generowanie kluczy i certyfikatu samopodpisanego +#### Generowanie kluczy i samopodpisanego certyfikatu ``` FILENAME=server # Generate a public/private key pair: @@ -727,18 +730,18 @@ openssl req -new -key $FILENAME.key -x509 -sha256 -days 3653 -out $FILENAME.crt # Generate the PEM file by just appending the key and certificate files: cat $FILENAME.key $FILENAME.crt >$FILENAME.pem ``` -#### Słuchaj za pomocą certyfikatu +#### Nasłuch przy użyciu certyfikatu ``` sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 - ``` -#### Słuchaj za pomocą certyfikatu i przekieruj do hostów +#### Nasłuchuj przy użyciu certyfikatu i przekieruj na hosty ``` sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 openssl-connect:[SERVER]:[PORT],verify=0 ``` -Czasami, jeśli klient sprawdzi, że CA jest ważne, możesz **serwować certyfikat innej nazwy hosta podpisany przez CA**.\ -Innym interesującym testem jest **serwowanie certyfikatu żądanej nazwy hosta, ale samopodpisanego**. +Czasami, jeśli klient sprawdza, czy CA jest prawidłowa, możesz **dostarczyć certyfikat dla innego hostname podpisany przez CA**.\ +Inny ciekawy test to dostarczyć c**ertyfikat dla żądanego hostname ale self-signed**. -Inne rzeczy do przetestowania to próba podpisania certyfikatu ważnym certyfikatem, który nie jest ważnym CA. Lub użycie ważnego klucza publicznego, wymuszenie użycia algorytmu takiego jak Diffie-Hellman (takiego, który nie wymaga odszyfrowania czegokolwiek za pomocą prawdziwego klucza prywatnego) i gdy klient zażąda próby prawdziwego klucza prywatnego (jak hasz), wysłanie fałszywej próby i oczekiwanie, że klient tego nie sprawdzi. +Inne rzeczy do przetestowania to próba podpisania certyfikatu przy użyciu ważnego certyfikatu, który nie jest prawidłowym CA. Albo użycie prawidłowego klucza publicznego i wymuszenie użycia algorytmu takiego jak diffie hellman (takiego, który nie wymaga odszyfrowywania niczego prawdziwym kluczem prywatnym), a gdy klient zażąda dowodu prawdziwego klucza prywatnego (np. hash), wysłać fałszywy dowód i oczekiwać, że klient tego nie sprawdzi. ## Bettercap ```bash @@ -766,19 +769,19 @@ set wifi.ap.channel 5 set wifi.ap.encryption false #If true, WPA2 wifi.recon on; wifi.ap ``` -### Notatki dotyczące aktywnego odkrywania +### Uwagi dotyczące aktywnego odkrywania -Weź pod uwagę, że gdy pakiet UDP jest wysyłany do urządzenia, które nie ma żądanego portu, wysyłany jest ICMP (Port Unreachable). +Weź pod uwagę, że gdy pakiet UDP jest wysyłany do urządzenia, które nie ma żądanego portu, wysyłany jest komunikat ICMP (Port Unreachable). ### **ARP discover** -Pakiety ARP są używane do odkrywania, które adresy IP są używane w sieci. Komputer musi wysłać zapytanie dla każdego możliwego adresu IP, a tylko te, które są używane, odpowiedzą. +Pakiety ARP są używane do odkrywania, które adresy IP są używane w sieci. Komputer musi wysłać żądanie dla każdego możliwego adresu IP i tylko te, które są w użyciu, odpowiedzą. ### **mDNS (multicast DNS)** -Bettercap wysyła zapytanie MDNS (co X ms) pytając o **\_services\_.dns-sd.\_udp.local**, maszyna, która widzi ten pakiet, zazwyczaj odpowiada na to zapytanie. Następnie, wyszukuje tylko maszyny odpowiadające na "services". +Bettercap wysyła żądanie MDNS (co X ms) pytające o **\_services\_.dns-sd.\_udp.local**; maszyna, która zobaczy ten pakiet, zwykle odpowie na to żądanie. Następnie szuka tylko maszyn odpowiadających na "services". -**Narzędzia** +**Tools** - Avahi-browser (--all) - Bettercap (net.probe.mdns) @@ -786,27 +789,31 @@ Bettercap wysyła zapytanie MDNS (co X ms) pytając o **\_services\_.dns-sd.\_ud ### **NBNS (NetBios Name Server)** -Bettercap rozsyła pakiety do portu 137/UDP pytając o nazwę "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA". +Bettercap rozsyła pakiety broadcast na port 137/UDP pytając o nazwę "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA". ### **SSDP (Simple Service Discovery Protocol)** -Bettercap rozsyła pakiety SSDP w poszukiwaniu wszelkiego rodzaju usług (UDP Port 1900). +Bettercap rozsyła pakiety SSDP wyszukując wszystkie rodzaje usług (UDP Port 1900). ### **WSD (Web Service Discovery)** -Bettercap rozsyła pakiety WSD w poszukiwaniu usług (UDP Port 3702). +Bettercap rozsyła pakiety WSD wyszukując usługi (UDP Port 3702). + + +### Telecom / Mobile-Core (GTP) Exploitation -### Eksploatacja Telecom / Mobile-Core (GTP) {{#ref}} telecom-network-exploitation.md {{#endref}} -## Odniesienia +## Referencje - [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9) -- **Ocena bezpieczeństwa sieci: Poznaj swoją sieć (3. wydanie)** -- **Praktyczne Hacking IoT: Ostateczny przewodnik po atakowaniu Internetu Rzeczy. Autorzy: Fotios Chantzis, Ioannis Stais, Paulino Calderon, Evangelos Deirmentzoglou, Beau Wood** +- **Network Security Assessment: Know Your Network (3rd edition)** +- **Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things. By Fotios Chantzis, Ioannis Stais, Paulino Calderon, Evangelos Deirmentzoglou, Beau Wood** - [https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9) + + {{#include ../../banners/hacktricks-training.md}}