<summary><strong>Nauka hakowania 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 hakowania, 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 protokołu ISAKMP, 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 połączyć się, wymagając nazwy użytkownika i hasła.
- **Faza 2:** Ta faza poświęcona jest negocjacji parametrów zabezpieczających dane za pomocą **ESP** i **AH**. Pozwala to 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 za pomocą klucza wstępnego (co jest naprawdę dobre dla pentestera).\
* _0 zwrócony handshake; 0 zwrócone powiadomienie:_ Oznacza to, że cel **nie jest bramą IPsec**.
* _**1 zwrócony handshake; 0 zwrócone powiadomienie:**_ 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ócone powiadomienie:_ Bramy VPN odpowiadają powiadomieniem, 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 znajdujesz się w 3. przypadku, musisz **nieco przeprowadzić atak brute-force, aby znaleźć poprawną transformację:**
Jeśli atak brutalnej siły nie zadziałał, być może serwer odpowiada bez ustanawiania połączenia nawet dla poprawnych transformacji. W takim przypadku można spróbować tego samego ataku brutalnej siły, ale w trybie agresywnym:
Cisco zaleca unikanie używania grup DH 1 i 2, ponieważ nie są wystarczająco silne. Specjaliści 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 złamania kodów. Pomimo kosztów związanych z ustanowieniem tej metody, pozwala to tym potężnym krajom na odczytywanie zaszyfrowanych danych w czasie rzeczywistym, jeśli używana jest grupa, która nie jest wystarczająco silna (np. 1,024-bitowa lub mniejsza).
Następnie można użyć ike-scan do próby **odkrycia 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 z powodzeniem zidentyfikować producenta bramy VPN. Ponadto niektóre serwery VPN będą używać opcjonalnego **ładunku ID producenta (VID)** z IKE.
Aby móc przechwycić skrót, potrzebujesz poprawnej transformacji obsługującej tryb Aggressive oraz poprawne ID (nazwa grupy). Prawdopodobnie nie będziesz znać poprawnej nazwy grupy, dlatego będziesz musiał ją przeprowadzić metodą brute-force.\
Jeśli **nie zostanie zwrócony żaden skrót**, to prawdopodobnie ta metoda ataku brute force zadziała. **Jeśli zostanie zwrócony jakiś skrót, oznacza to, że fałszywy skrót zostanie wysłany z powrotem dla fałszywego ID, więc ta metoda nie będzie niezawodna** do ataku brute-force 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 brute-force 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 brute-force 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źć prawidłowe ID na podstawie wyników ike-scan**.
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) to narzędzie, które można użyć 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 prawidłowym a nieprawidłowym 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 (ta informacja jest odtwarzana tylko przez serwer, jeśli nazwa grupy jest poprawna).
* **Druga dostępna metoda** polega na **sprawdzaniu liczby odpowiedzi wysłanych do każdej próby**, ponieważ czasami wysyłane jest więcej pakietów, gdy użyte jest poprawne id.
* **Trzecia metoda** polega na **wyszukiwaniu "INVALID-ID-INFORMATION" w odpowiedzi na nieprawidłowe ID**.
* Wreszcie, jeśli serwer nie odpowiada na żadne sprawdzenia, **ikeforce** spróbuje przeprowadzić brutalny atak na serwer i sprawdzić, czy po wysłaniu poprawnego id serwer odpowiada jakimś pakietem.\
Oczywiście celem brutalnego ataku na id jest uzyskanie **PSK** po uzyskaniu prawidłowego id. Następnie, z **id** i **PSK** będziesz musiał przeprowadzić brutalny atak na XAUTH (jeśli jest włączony).
Jeśli odkryłeś określoną transformację, dodaj ją w poleceniu ikeforce. 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).
(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 możesz bardzo łatwo przechwycić hasha, który można złamać:
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**. Metodę tę uzupełnia **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.
Przejście do **IKEv2** wiąże się z zauważalną zmianą, gdzie zamiast **XAuth** wykorzystywany jest **EAP (Protokół Rozszerzonej Autentykacji)** do uwierzytelniania użytkowników. Ta zmiana podkreśla ewolucję praktyk uwierzytelniania w ramach bezpiecznych protokołów komunikacyjnych.
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 za pomocą 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)!
* Kup [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* **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.