<summary><strong>Zacznij od zera i stań się ekspertem od hakowania AWS dzięki</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na GitHubie.
**IPsec** jest powszechnie uznawany za główną technologię zabezpieczającą komunikację między sieciami (LAN-to-LAN) oraz od użytkowników zdalnych do bramy sieciowej (dostęp zdalny), stanowiąc podstawę dla rozwiązań VPN dla przedsiębiorstw.
Ustanowienie **stowarzyszenia bezpieczeństwa (SA)** między dwoma punktami jest zarządzane przez **IKE**, który działa w ramach ISAKMP, protokołu zaprojektowanego do uwierzytelniania i wymiany kluczy. Ten proces przebiega w kilku fazach:
* **Faza 1:** Tworzony jest bezpieczny kanał między dwoma punktami. Osiąga się to za pomocą klucza wstępnego (PSK) lub certyfikatów, przy użyciu trybu głównego, który obejmuje trzy pary komunikatów, lub **trybu agresywnego**.
* **Faza 1.5:** Choć nie jest obowiązkowa, ta faza, znana jako Faza Rozszerzonej Autoryzacji, weryfikuje tożsamość użytkownika próbującego się połączyć, wymagając nazwy użytkownika i hasła.
* **Faza 2:** Ta faza jest poświęcona negocjacji parametrów zabezpieczających dane za pomocą **ESP** i **AH**. Pozwala na użycie algorytmów różnych od tych w Fazie 1, aby zapewnić **Doskonałe Przekazywanie Tajemnic (PFS)**, zwiększając bezpieczeństwo.
Konfiguracja IPSec może być przygotowana tylko do akceptacji jednej lub kilku transformacji. Transformacja to kombinacja wartości. **Każda transformacja** zawiera szereg atrybutów, takich jak DES lub 3DES jako **algorytm szyfrowania**, SHA lub MD5 jako **algorytm integralności**, klucz wstępnie uzgodniony jako **typ uwierzytelnienia**, Diffie-Hellman 1 lub 2 jako algorytm **dystrybucji klucza** oraz 28800 sekund jako **czas życia**.
Następnie pierwszą rzeczą, którą musisz zrobić, to **znaleźć prawidłową transformację**, aby serwer zechciał z tobą rozmawiać. Aby to zrobić, możesz skorzystać z narzędzia **ike-scan**. Domyślnie Ike-scan działa w trybie głównym i wysyła pakiet do bramy z nagłówkiem ISAKMP i pojedynczą propozycją z **osiemnastoma transformacjami wewnątrz**.
Jak widać w poprzedniej odpowiedzi, istnieje pole o nazwie **AUTH** z wartością **PSK**. Oznacza to, że vpn jest skonfigurowany przy użyciu klucza wstępnego (co jest naprawdę dobre dla pentestera).\
* _0 zwrócony handshake; 0 zwrócony notify:_ Oznacza to, że cel **nie jest bramą IPsec**.
* _**1 zwrócony handshake; 0 zwrócony notify:**_ Oznacza to, że **cel jest skonfigurowany do IPsec i jest gotowy do przeprowadzenia negocjacji IKE, a jedna lub więcej proponowanych transformacji jest akceptowalna** (poprawna transformacja zostanie pokazana w wyniku).
* _0 zwrócony handshake; 1 zwrócony notify:_ Bramy VPN odpowiadają wiadomością notify, gdy **żadna z transformacji nie jest akceptowalna** (choć niektóre bramy tego nie robią, w takim przypadku należy przeprowadzić dalszą analizę i spróbować zrewidować propozycję).
W tym przypadku mamy już poprawną transformację, ale jeśli znajdziesz się w 3. przypadku, będziesz musiał **nieco przeprowadzić atak siłowy, aby znaleźć poprawną transformację:**
Jeśli atak brute-force nie zadziałał, być może serwer odpowiada bez użycia negocjacji nawet na poprawne transformacje. W takim przypadku można spróbować tego samego ataku brute-force, ale w trybie agresywnym:
Cisco zaleca unikanie korzystania z grup DH 1 i 2, ponieważ nie są wystarczająco silne. Eksperci uważają, że **kraje posiadające duże zasoby mogą łatwo złamać** szyfrowanie danych korzystających z tych słabych grup. Dokonuje się tego za pomocą specjalnej metody, która przygotowuje je do szybkiego łamania kodów. Pomimo kosztów związanych z ustawieniem tej metody, pozwala to tym potężnym krajom na odczytywanie zaszyfrowanych danych w czasie rzeczywistym, jeśli korzystają z grupy, która nie jest wystarczająco silna (np. 1,024-bitowa lub mniejsza).
Następnie można użyć ike-scan, aby spróbować **odkryć producenta** urządzenia. Narzędzie wysyła początkową propozycję i przestaje odtwarzać. Następnie **analizuje** różnicę **czasu** między otrzymanymi **wiadomościami** od serwera a pasującym wzorcem odpowiedzi, co pozwala pentesterowi pomyślnie zidentyfikować producenta bramy VPN. Ponadto niektóre serwery VPN będą korzystać z opcjonalnego **ładunku ID producenta (VID)** z IKE.
Aby móc przechwycić skrót, potrzebujesz prawidłowej transformacji obsługującej tryb Aggressive oraz poprawne ID (nazwa grupy). Prawdopodobnie nie będziesz znać poprawnej nazwy grupy, dlatego będziesz musiał ją przełamać.
Jeśli **nie zostanie zwrócony żaden skrót**, to prawdopodobnie ta metoda ataku brutalnej siły zadziała. **Jeśli zostanie zwrócony jakiś skrót, oznacza to, że fałszywy skrót zostanie odesłany dla fałszywego ID, więc ta metoda nie będzie niezawodna** do ataku brutalnej siły na ID. Na przykład, może zostać zwrócony fałszywy skrót (co się zdarza w nowoczesnych wersjach):
Ten skrypt **spróbuje ataku brutalnej siły na możliwe ID** i zwróci ID, dla których zostanie zwrócony poprawny handshake (będzie to poprawna nazwa grupy).
Jeśli odkryłeś określoną transformację, dodaj ją w poleceniu ike-scan. A jeśli odkryłeś kilka transformacji, śmiało dodaj nową pętlę, aby spróbować ich wszystkich (powinieneś je wszystkie wypróbować, aż jedna z nich będzie działać poprawnie).
Możesz użyć [słownika ikeforce](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) lub [tego w seclists](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) z powszechnymi nazwami grup do ataku brutalnej siły na nie:
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) używa również **ike-scan** do przeprowadzenia ataku brutalnej siły na możliwe nazwy grup. Podąża za własną metodą, aby **znaleźć poprawne ID na podstawie wyniku ike-scan**.
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) to narzędzie, które może być użyte do **brutalnego ataku na ID**. To narzędzie będzie **próbować wykorzystać różne podatności**, które mogą być użyte do **rozróżnienia między poprawnym a niepoprawnym ID** (może wystąpić fałszywe pozytywy i fałszywe negatywy, dlatego wolę używać metody ike-scan, jeśli to możliwe).
* **Pierwsza metoda** polega na brutalnym ataku na nazwy grup poprzez **wyszukiwanie** informacji **Dead Peer Detection DPD** systemów Cisco (te informacje są odtwarzane tylko przez serwer, jeśli nazwa grupy jest poprawna).
* **Druga dostępna metoda** polega na **sprawdzeniu liczby odpowiedzi wysłanych do każdej próby**, ponieważ czasami wysyłane jest więcej pakietów, gdy użyte jest poprawne id.
* Wreszcie, jeśli serwer nie odpowiada na żadne sprawdzenia, **ikeforce** spróbuje przeprowadzić brutalny atak na serwer i sprawdzić, czy gdy wysłane jest poprawne id, serwer odpowiada jakimś pakietem.\
Oczywiście celem brutalnego ataku na id jest uzyskanie **PSK** po uzyskaniu poprawnego id. Następnie, z **id** i **PSK** będziesz musiał przeprowadzić brutalny atak na XAUTH (jeśli jest włączony).
Jeśli odkryłeś/aś konkretną transformację, dodaj ją w poleceniu ikeforce. A jeśli odkryłeś/aś kilka transformacji, śmiało dodaj nową pętlę, aby je wszystkie wypróbować (powinieneś/aś je wypróbować wszystkie, aż jedna z nich będzie działać poprawnie).
(Z książki **Network Security Assessment: Know Your Network**): Możliwe jest również uzyskanie prawidłowych nazw użytkowników poprzez podsłuchiwanie połączenia między klientem VPN a serwerem, ponieważ pierwszy pakiet trybu agresywnego zawierający identyfikator klienta jest wysyłany w formie niezaszyfrowanej
Wreszcie, jeśli znalazłeś **prawidłową transformację** i **nazwę grupy** oraz jeśli **tryb agresywny jest dozwolony**, wtedy bardzo łatwo możesz przechwycić hasz do złamania:
Możesz użyć **psk-crack**, **john** (korzystając z [**ikescan2john.py**](https://github.com/truongkma/ctf-tools/blob/master/John/run/ikescan2john.py)) oraz **hashcat** do **łamania** hasha:
**Tryb Agresywny IKE** w połączeniu z **kluczem wstępnym (PSK)** jest powszechnie stosowany do celów **uwierzytelniania grupowego**. Ta metoda jest uzupełniana przez **XAuth (Rozszerzona Autentykacja)**, która wprowadza dodatkową warstwę **uwierzytelniania użytkownika**. Takie uwierzytelnianie zazwyczaj korzysta z usług takich jak **Microsoft Active Directory**, **RADIUS** lub podobne systemy.
Przechodząc do **IKEv2**, zauważa się istotną zmianę, gdzie **EAP (Protokół Autentykacji Rozszerzalnej)** jest wykorzystywany zamiast **XAuth** w celu uwierzytelniania użytkowników. Ta zmiana podkreśla ewolucję praktyk uwierzytelniania w ramach protokołów bezpiecznej komunikacji.
Możesz przechwycić dane logowania za pomocą _fiked_ i sprawdzić, czy istnieje jakieś domyślne nazwa użytkownika (Musisz przekierować ruch IKE do `fiked` w celu podsłuchiwania, co można zrobić za pomocą podszywania ARP, [więcej informacji](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked będzie działać jako punkt końcowy VPN i przechwyci poświadczenia XAuth:
Aby siłowo przełamać **XAUTH** (gdy znasz poprawną nazwę grupy **id** i **psk**), możesz użyć nazwy użytkownika lub listy nazw użytkowników oraz listy haseł:
W Kali, **VPNC** jest wykorzystywany do nawiązywania tuneli IPsec. **Profile** muszą być umieszczone w katalogu `/etc/vpnc/`. Możesz uruchomić te profile, używając polecenia _**vpnc**_.
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**Grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.