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.
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ę.