Dzisiejsza lekcja szkoleniowa definitywnie zamyka rozdział ataków brute-force. Teraz jak już wiesz czym są ciasteczka internetowe, przekażemy Tobie wiedzę jak wykonywać test bezpieczeństwa w systemie Kali Linux programem THC-Hydra 8.1 w aplikacjach, które wymagają najpierw zalogowania się.
Nowością w tej lekcji będzie wykorzystanie dodatkowych zaawansowanych parametrów nagłówków HTTP wraz z ciasteczkami (cookies). Zaletą takiego rozwiązania jest możliwość zmiany między innymi User-Agenta przeglądarki i wprowadzenie ciasteczka sesyjnego podtrzymującego autoryzacje użytkownika strony www.
Materiał wideo zaawansowana THC-Hydra w systemie Kali Linux – lekcja #7
W poniższym materiale zaprezentowaliśmy wykorzystanie przekierowania wyników programu Hydra do pliku zewnętrznego, definicje większej ilości testowanych serwerów i wykorzystanie opcjonalnych argumentów nagłówków protokołu HTTP.
Komendy THC-Hydra 8.1 wykorzystane w materiale szkoleniowym (cookies+headers)
Następujące rozbudowane polecenie zostało wykorzystane w powyższym filmie na naszym kanale na YouTube. Znajduje się w nim kilka nowości, jeszcze nie przedstawionych na naszym blogu.
hydra -M serwery.txt -L loginy.txt -P hasla.txt http-get-form "/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:F=password incorrect.:H=Cookie\: PHPSESSID=26hs4k1ps1g72r8a0j2vkam8i2; security=low:H=User-Agent\: JESTEM HAKEREM 2016!" -V -t64 -o rezultaty.txt
Powyższe polecenie, za pomocą metody GET protokołu HTTP podejmuje próbę złamania zabezpieczeń serwerów zdefiniowanych w pliku serwery.txt, kont w pliku loginy.txt i haseł w haseł.txt. Dodatkowo zostały za pomocą parametru H= przekazane dodatkowe informacje takie jak ciastka sesyjne i user-agent. Na końcu polecenia zostały użyte opcjonalne parametry -t (ilość wątków) i -o (plik wynikowy).
Zadanie domowe z podsumowania THC-Hydra
-> Zadanie 1
Wydaj w swoim terminalu systemu operacyjnego Kali Linux polecenie xHydra. Jest to nakładka graficzna na konsolowy interfejs aplikacji.
![Konfiguracja programu xHydra i ciasteczka Hydra, ciasteczka (cookies), nagłówki (headers) do wyklikania w GUI aplikacji...](https://dl.getdropbox.com/s/q3ah876gcholbub/xhydra-headers-cookies-gui.jpg)
Uwaga! To zadanie nie posiada odpowiedzi, jednak chciałbym abyś gruntownie przyjrzał się funkcjonalności GUI Hydry.
-> Zadanie 2
Wykonaj następujące kroki ćwiczenia drugiego:
- Uruchom rejestrowanie pakietów snifferem Wireshark.
- Spróbuj wykorzystując atak słownikowy i dowolny formularz logowania wykonać nieco dłużej trwający atak (użyj większego słownika). Wiele ścieżek do słowników znajdziesz w menu Kali Linuksa Programu -> Password Attacks -> wordlists.
- Podczas próby łamania Hydrą, przyjrzyj się wędrującym pakietom Wireshark wprowadzając następujące filtrowanie:
ip.dst == 192.168.0.14 && http.user_agent matches „Hydra”
W miejsce 192.168.0.14 wprowadź adres IP atakowanej strony www. Przejrzyj zebranie dostępne informacje o pakiecie i wyciągnij jak najwięcej wniosków. Możesz do własnych badań poeksperymentować z filtrami Wireshark (przycisk expression) .
Objaśnienie: Filtr ip.dst to miejsce docelowe (destination) do którego został wysłany pakiet. Wyrażenie http.user_agent matches wyszukuje pakiety tylko te, w których w nazwie przeglądarki występuje (matches) fraza „Hydra”.
Uwaga! To zadanie nie posiada odpowiedzi. Celem ćwiczenia było podsumowanie dotychczasowych informacji i zapoznanie Ciebie z nowo poznanymi możliwościami filtrów sniffera Wireshark. Dzięki niemu powinieneś w jeszcze skuteczniejszy sposób poruszać się w gąszczu pakietów.
Podsumowanie o brute-force w poradniku Hydry
To już ostateczny koniec brutalnych ataków w tym szkoleniu. Musisz wiedzieć, ze wiele pentesterów nie robią audytów bezpieczeństwa dla zabicia czasu tylko zawodowo. Wiele razy się zdarzy w Twojej przygodzie z webhackingiem, ze będziesz chciał zbadać jakiś element strony wymagający najpierw zalogowania zalogowania się.
Większość zaawansowanych aplikacji pentesteskich. umożliwia wprowadzenie w tym celu właśnie ciasteczek sesyjnych w podobny sposób jak zaprezentowany na filmie. Ma to na celu skorzystanie z sesji zalogowanego użytkownika w celach badawczych aplikacji. Oczywiście nie w każdym scenariuszu symulowanego ataku zakłada się, że napastnik ma możliwość zalogowania się w celu dogłębnej analizy… ale tą kwestie zostawmy sobie na przyszłe lekcje naszego darmowego szkolenia szkoły hakerów Web Application Pentesting. Mam nadzieje, że gruntownie przyswoiłeś do tej pory materiał również w swoim zakresie i jesteś gotowy do następnych lekcji. Chcesz być na bieżąco to zlajkuj nas na #HakeEduPL! PS: Zachęcam Ciebie do ciągłego zdobywania wiedzy we własnym zakresie na temat programowania w języku PHP. Powodzenia w pracy domowej! 🙂
Jak to jest możliwe, że hydra zatwierdza mi 4 poprawne loginy/hasła zamiast dwóch (admin/password, admin/ab123, gordonb/password i gordonb/abc123)? Wprowadzałem polecenia dokładnie tak jak jest na filmiku nie mam pojęcia czemu wyrzuca wszystkie kombinacje jako poprawne. Przy okazji gratuluję świetnego kursu. Trafiłem tu przypadkowo i muszę przyznać, że rewelacyjnie się Ciebie słucha i ogląda filmiki. Kawał świetnej roboty.
Oprogramowanie się zmienia, może w którymś miejscu już pakiet został zaktualizowany. Teoretycznie powinno działać dobrze. Jednak pamiętaj że podczas testu penetracyjnego przy sprawdzaniu z automatu kilkuset tysięcy kombinacji to i tak sukces jeśli wykryje kilka, a chociaż jedna z nich będzie poprawna. W Hydrze trzeba czasami się nieźle nagimnastykować z wykorzystaniem Burp Suite by dobrać odpowiednie argumenty. Odsyłam do filmu: https://www.youtube.com/watch?v=h-93Ybv3dow
Ale oprócz xhydry jest jeszcze hydra gtk. Wiem że to to samo, ale no.
Rozwiązanie zadania 2:
Wtedy bedziemy przechwytywać pakiety wysyłane przez hydrę.