Pentesting Network
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Tip dotyczący bug bounty: zarejestruj się w Intigriti, premium platformie bug bounty stworzonej przez hackerów, dla hackerów! Dołącz do nas na https://go.intigriti.com/hacktricks już dziś i zacznij zarabiać nagrody do 100 000 USD!
Odkrywanie hostów z zewnątrz
To będzie krótką sekcją 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ą.
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).
Odkrywanie portów TCP
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. Wtedy potrzebujesz szybkiego skanera portów (masscan) i listy najczęściej używanych portów:
Możesz również wykonać ten krok za pomocą nmap
, ale jest to wolniejsze i nmap
ma problemy z identyfikowaniem aktywnych hostów.
Odkrywanie portu HTTP
To jest po prostu odkrywanie portów TCP, przydatne, gdy chcesz skupić się na odkrywaniu usług HTTP:
Odkrywanie portów UDP
Możesz również spróbować sprawdzić, czy jakiś port UDP jest otwarty, 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:
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: ./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
Pentesting Wifi
Tutaj znajdziesz ładny przewodnik po wszystkich znanych atakach Wifi w momencie pisania:
Pentesting WifiOdkrywanie hostów od wewnątrz
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
Możesz użyć tych narzędzi do pasywnego odkrywania hostów w podłączonej sieci:
Aktywne
Zauważ, że techniki omówione w Odkrywaniu hostów z zewnątrz (Odkrywanie portów TCP/HTTP/UDP/SCTP) mogą być również zastosowane tutaj. Jednak, ponieważ jesteś w tej samej sieci co inne hosty, możesz zrobić więcej rzeczy:
Active ICMP
Zauważ, że techniki omówione w Odkrywaniu hostów z zewnątrz (ICMP) mogą być również zastosowane tutaj. Jednak, ponieważ jesteś w tej samej sieci co inne hosty, możesz zrobić więcej rzeczy:
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
wnmap
, 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
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).
Skanning hostów
Gdy odkryjesz wszystkie IP (zewnętrzne lub wewnętrzne), które chcesz dokładnie zeskanować, można wykonać różne działania.
TCP
Otwarty port: SYN --> SYN/ACK --> RST
Zamknięty port: SYN --> RST/ACK
Filtrowany port: SYN --> [BRAK ODPOWIEDZI]
Filtrowany port: SYN --> komunikat ICMP
UDP
Istnieją 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.
Nmap będzie mieszał obie opcje, używając "-sV" (skanowanie UDP jest bardzo wolne), ale zauważ, że skanowanie UDP jest wolniejsze niż skanowanie TCP:
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 elementem 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.
Dwa różne skany dla SCTP są oferowane przez nmap: -sY i -sZ
IDS i IPS omijanie
IDS and IPS EvasionWięcej opcji nmap
Nmap Summary (ESP)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.
Sniffing
Sniffing możesz poznać szczegóły 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 sieć Ethernet z przełącznikami jest poprawnie skonfigurowana, zobaczysz tylko ramki rozgłoszeniowe i materiały przeznaczone dla twojego adresu MAC.
TCPDump
Można również przechwytywać pakiety z zdalnej maszyny przez sesję SSH z Wireshark jako interfejsem graficznym w czasie rzeczywistym.
Bettercap
Wireshark
Oczywiście.
Capturing credentials
Możesz użyć narzędzi takich jak https://github.com/lgandx/PCredz, aby analizować dane uwierzytelniające z pliku pcap lub z aktywnego interfejsu.
LAN attacks
ARP spoofing
ARP Spoofing 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.
Bettercap
Arpspoof
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).
W nowoczesnych przełącznikach ta podatność została naprawiona.
Ataki 802.1Q VLAN / DTP
Dynamiczne trunkowanie
Dynamic Trunking Protocol (DTP) jest zaprojektowany jako protokół warstwy łącza, aby ułatwić automatyczny system trunkowania, pozwalając przełącznikom na automatyczny wybór portów do trybu trunk (Trunk) lub trybu 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.
Domyślnie porty przełącznika są ustawione na tryb Dynamic Auto, co oznacza, że są gotowe do inicjowania trunkowania, 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.
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 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.
Jeśli zostanie zidentyfikowana podatność sieci, narzędzie Yersinia może być użyte do "włączenia trunkowania" za pomocą protokołu DTP, co pozwala na obserwację pakietów ze wszystkich VLAN-ów.
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F600722126-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FJtticLwENZ4i7WwgHiQe%252Fuploads%252Fgit-blob-82b357385a723f9e1b186b95df5f5871e2c43cd4%252Fimage%2520%28269%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=2f7a217a&sv=1)
Aby enumerować VLAN-y, można również wygenerować ramkę DTP Desirable za pomocą skryptu DTPHijacking.py. Nie przerywaj skryptu pod żadnym pozorem. 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.
Chciałbym zwrócić uwagę, że Access/Desirable (0x03) wskazuje, że ramka DTP jest typu Desirable, co nakazuje portowi przełączenie się w tryb Trunk. A 802.1Q/802.1Q (0xa5) wskazuje typ enkapsulacji 802.1Q.
Analizując ramki STP, dowiadujemy się o istnieniu VLAN 30 i VLAN 60.
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F600722126-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FJtticLwENZ4i7WwgHiQe%252Fuploads%252Fgit-blob-69f6170c531251922aae02b68bd1377d5e05122f%252Fimage%2520%28124%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=501d11f7&sv=1)
Atakowanie konkretnych VLAN-ów
Gdy znasz identyfikatory VLAN i wartości IP, możesz skonfigurować interfejs wirtualny, aby zaatakować konkretny VLAN. Jeśli DHCP nie jest dostępne, użyj ifconfig, aby ustawić statyczny adres IP.
Automatic VLAN Hopper
Atak omówiony w Dynamic Trunking i tworzeniu wirtualnych interfejsów oraz odkrywaniu hostów wewnątrz innych VLANów jest automatycznie wykonywany przez narzędzie: https://github.com/nccgroup/vlan-hopping---frogger
Double Tagging
Jeśli atakujący zna wartość MAC, IP i VLAN ID ofiary, 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).
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 sniffować na drugim hoście, który mu należy, jeśli otrzyma jakieś pakiety od ofiary.
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F600722126-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FJtticLwENZ4i7WwgHiQe%252Fuploads%252Fgit-blob-3f2bb9379f89f428fc8281dcb0fe828428d4fa49%252Fimage%2520%28190%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=bb96a9f&sv=1)
Aby przeprowadzić ten atak, możesz użyć scapy: pip install scapy
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.
Lateral VLAN Segmentation BypassLayer 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 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.
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.
Kluczowe kroki ataku:
Tworzenie pakietu: Pakiet jest specjalnie tworzony, aby zawierał adres IP docelowego klienta, ale z adresem MAC routera.
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
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
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 Advertisement Types
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.
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ć.
Uwaga: Ta dyskusja dotyczy wersji VTP 1 (VTPv1).
W trybie graficznym Yersinii wybierz opcję usunięcia wszystkich VLAN-ów VTP, aby oczyścić bazę danych VLAN.
Ataki STP
Jeśli nie możesz przechwycić ramek BPDU na swoich interfejsach, jest mało prawdopodobne, że odniesiesz sukces w ataku STP.
STP BPDU DoS
Wysyłając dużą liczbę 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.
Atak STP TCP
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.
Atak na Root STP
Napastnik symuluje zachowanie przełącznika, aby stać się rootem 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ę, wysyłając pakiety BPDUs CONF, mówiące, że wartość priorytetu jest mniejsza niż rzeczywisty priorytet rzeczywistego przełącznika root.
Jeśli atakujący jest podłączony do 2 przełączników, może być korzeniem nowego drzewa, a cały ruch między tymi przełącznikami będzie przechodził przez niego (zostanie przeprowadzony atak MITM).
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.
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, na której działa. Atakujący może następnie celować w konkretne luki w zidentyfikowanej wersji Cisco IOS.
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:
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.
Atak na podszywanie się pod CDP
Możesz również użyć scapy. Upewnij się, że zainstalujesz go z pakietem scapy/contrib
.
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.
Narzędzie voiphopper jest 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):
Tryb Sniff (
-c 0
): Analizuje pakiety sieciowe, aby zidentyfikować identyfikator VLAN.Tryb Spoof (
-c 1
): Generuje niestandardowe pakiety naśladujące te z rzeczywistego urządzenia VoIP.Tryb Spoof z gotowym pakietem (
-c 2
): Wysyła pakiety identyczne do tych z konkretnego modelu telefonu IP Cisco.
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 ś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.
Podłączyć urządzenie VoIP do laptopa i obserwować żądania CDP za pomocą Wireshark.
Przykładowe polecenie do uruchomienia narzędzia w trzecim trybie to:
Ataki DHCP
Enumeracja
DoS
Dwa typy DoS mogą być przeprowadzone przeciwko serwerom DHCP. Pierwszy 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.
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.
Bardziej automatyczny sposób na to to użycie narzędzia DHCPing
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ę nieodpowiadające. Gdy legalne serwery próbują ponownie połączyć się, możesz serwować złośliwe wartości wspomniane w następnym ataku.
Ustaw złośliwe wartości
Złośliwy 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 złośliwej 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 złośliwego serwera DNS lub WPAD dla bardziej skutecznego ataku.
Poniżej znajdują się opcje poleceń do konfigurowania 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 złośliwego 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 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, 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 to jest głośne i może być wykryte.
Poprawne użycie tych opcji pozwala na skuteczne ustanowienie złośliwego serwera DHCP do przechwytywania ruchu sieciowego.
Ataki EAP
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)
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
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ć metodą brute-force za pomocą:
FHRP (GLBP & HSRP) Attacks
FHRP (First Hop Redundancy Protocol) to klasa protokołów sieciowych zaprojektowanych w celu utworzenia gorącego systemu redundancji 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.
Inżynierowie Cisco Systems opracowali dwa protokoły FHRP, GLBP i HSRP.
GLBP & HSRP AttacksRIP
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.
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.
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.
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 pasywnych interfejsów, intruz może zakłócić routowanie 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.
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.
FRRouting 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.
EIGRP AttacksColy ma możliwości przechwytywania rozgłoszeń EIGRP (Enhanced Interior Gateway Routing Protocol). Umożliwia również wstrzykiwanie pakietów, które mogą być wykorzystane 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, wykorzystuje się 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.
Ustawianie skompromitowanego klucza: Klucz jest konfigurowany w zakładce Connection.
Other Generic Tools & Sources
Above: Narzędzie do skanowania ruchu sieciowego i znajdowania luk
Możesz znaleźć więcej informacji o atakach sieciowych tutaj.
Spoofing
Atakujący konfiguruje wszystkie parametry sieciowe (GW, IP, DNS) nowego członka sieci, wysyłając fałszywe odpowiedzi DHCP.
ARP Spoofing
Sprawdź poprzednią sekcję.
ICMPRedirect
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.
DNS Spoofing
Atakujący rozwiąże niektóre (lub wszystkie) domeny, o które pyta ofiara.
Skonfiguruj własny DNS za pomocą dnsmasq
Local Gateways
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.
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.
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.
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:
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.
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.
Możesz oferować różne usługi w sieci, aby spróbować oszukać użytkownika, aby wprowadził jakieś jawne dane logowania. Więcej informacji o tym ataku w Spoofing SSDP and UPnP Devices.
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.
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ć:
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 zapewnia również ofierze adres IPv6.
HTTP (fałszywa strona i wstrzykiwanie kodu JS)
Ataki w Internecie
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 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.
Więcej informacji tutaj.
sslStrip+ i 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.
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. Zauważ, że aby przeprowadzić ten atak, ofiara musi najpierw spróbować uzyskać dostęp do http://www.faceook.com, a nie https. Można to zrobić, modyfikując linki wewnątrz strony http.
Więcej informacji tutaj, tutaj i tutaj.
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
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 + SSL nasłuch na porcie
Wygeneruj klucze i certyfikat samopodpisany
Słuchaj za pomocą certyfikatu
Słuchaj używając certyfikatu i przekieruj do hostów
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.
Bettercap
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 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ą.
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".
Narzędzia
Avahi-browser (--all)
Bettercap (net.probe.mdns)
Responder
NBNS (NetBios Name Server)
Bettercap rozsyła pakiety do portu 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).
WSD (Web Service Discovery)
Bettercap rozsyła pakiety WSD w poszukiwaniu usług (UDP Port 3702).
Referencje
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
Wskazówka dotycząca bug bounty: zarejestruj się w Intigriti, premium platformie bug bounty stworzonej przez hackerów, dla hackerów! Dołącz do nas na https://go.intigriti.com/hacktricks już dziś i zacznij zarabiać nagrody do 100 000 USD!
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated