Testuj logowania WordPress z Hydra na Kali Linux
- 719
- 113
- Ignacy Modzelewski
Wstęp
W całym Internecie istnieją formularze internetowe. Nawet witryny, które zwykle nie pozwalają zwykłym użytkownikom logować się, prawdopodobnie mają obszar administratora. Ważne jest, aby uruchomić i wdrażać witrynę, aby upewnić się, że hasła prowadzą dostęp do wrażliwych elementów sterujących i paneli administracyjnych, są tak bezpieczne, jak to możliwe.
Istnieją różne sposoby ataku na aplikację internetową, ale ten przewodnik obejmuje za pomocą Hydra do wykonania ataku brutalnej siły na dzienniku. Docelową platformą z wyboru jest WordPress. Jest to z pewnością najpopularniejsza platforma CMS na świecie, a także jest znana z tego, że jest źle zarządzana.
Pamiętać, Ten przewodnik ma pomóc Ci chronić swoją WordPress lub inną stronę internetową. Używać w witrynie, której nie posiadasz lub masz pisemną zgodę na test nielegalny.
Przygotowanie się
Zanim cokolwiek zrobisz, będziesz potrzebować witryny WordPress do celu. Ten przewodnik zakłada również, że hostujesz witrynę WordPress na własnym komputerze. Jeśli potrzebujesz pomocy w ustawieniu lampy na maszynie, sprawdź nasze przewodniki Lampy Debian i Ubuntu.
Możesz to zrobić w zwykłej instalacji Linux lub instalacji Kali Linux. Jeśli używasz Kali, podążaj za lampą Debian z Guide Source. Upewnij się tylko, że masz zainstalowane Hydra i Curl w dowolnym wybranym systemie. Są dostępne w większości repozytoriów.
Jeśli tak naprawdę nie chcesz używać zwykłej instalacji, zdecydowanie możesz użyć innego komputera, po prostu sub w IP celu dla LocalHost i upewnij się, że komputer docelowy jest dostępny z atakującego.
Zbieranie informacji
Po uruchomieniu WordPress nadszedł czas, aby znaleźć jak najwięcej informacji na temat instalacji, na którą będziesz celować. Oznacza to ustalenie, w jaki sposób formularz logowania jest budowany, co się stanie po przesłaniu, i być może tam, gdzie pójdzie, jeśli login się powiedzie.
Źródło HTML
Zacznij od nawigacji na stronę logowania. Możesz to znaleźć o godz LocalHost/WP-Login.php
. Użyj zdolności przeglądarki do sprawdzania kodu źródłowego. Możesz po prostu kliknąć prawym przyciskiem myszy gdzieś na stronie i wybrać „Wyświetl źródło” lub „Sprawdź element.„Tak czy inaczej, możesz wyświetlić źródło, będzie ono wyświetlane na różne sposoby.
Szukaj w środku kodu. Szukasz tagów. To jest faktyczny formularz logowania. Wewnątrz tej formy znajduje się kilka potrzebnych informacji.
Przed zebraniem informacji sprawdź, czy formularz wysyła żądanie GET lub POST. W pierwszym wierszu formularza powinna istnieć opcja metody, która wygląda tak: Method = "Post"
. W przypadku WordPress jest to post.
Najpierw znajdź wprowadzenie nazwy użytkownika. Powinien wyglądać jak linia poniżej.
Część, której potrzebujesz, to nazwa
. W tym przypadku jest to dziennik
.
Następnie znajdź wprowadzanie hasła. Powinno wyglądać podobnie.
Znowu znajdź nazwa
który jest PWD
.
Musisz także zidentyfikować przycisk Prześlij, aby Hydra mogła przesłać formularz.
Ważne jest, aby zarejestrować oba nazwa
i wartość
.
Jest ostatni kawałek. Jeśli nie zauważyłeś, na dole formularza znajdują się dwa ukryte pola. Jeden mówi WordPress, aby przekierował po przesłaniu formularza, a drugi to plik cookie, którego WordPress będzie szukał po przesłaniu formularza. Potrzebujesz ciasteczka.
Ponownie zanotuj nazwa
I wartość
.
kędzior
Mimo że można było uzyskać wiele informacji, patrząc na źródło HTML, jest jeszcze kilka rzeczy, które musisz wiedzieć przed uwolnieniem Hydry. W większości przypadków możesz być w stanie wykonać test za pomocą zebranych informacji. Po prostu spróbujesz zalogować się za pomocą nieprawidłowych poświadczeń, rejestrować komunikat o błędzie i użyć tego komunikatu jako warunku testowego w Hydra.
Jednak WordPress jest zaprojektowany inaczej i nie ma tak naprawdę dobrego sposobu na przetestowanie z nieudanymi próbami zalogowania się. Z tego powodu musisz przetestować udane logowanie. Ponieważ możesz utrzymać własną instalację WordPress i zalogować się, nie miałoby to znaczenia, gdybyś testował system dla klienta. Warunek, który znajdziesz lokalnie, powinien być uniwersalny dla WordPress.
Jest tu też kolejna zmarszczka. Czy pamiętasz ukryte pole przekierowania w formie? Cóż, ten przekierowanie uniemożliwia użycie stanu takiego jak obecność słowa „pulpit nawigacyjny”, aby przetestować sukces. Będziesz musiał spojrzeć na samą prośbę i za to jest curl.
Aby porównać, musisz najpierw zobaczyć oryginalną stronę logowania z Curl.
$ curl -v http: // localhost/wp -login.php
Większość informacji jest taka sama jak kod źródłowy, na który spojrzałeś w przeglądarce. Na górze są jednak informacje o żądaniu HTTP. Zanotuj te informacje. Będziesz musiał porównać to z udanym loginem.
Następną rzeczą, którą musisz zrobić, jest z powodzeniem zalogowanie się z curl. Aby to zrobić, będziesz potrzebować tego pliku cookie z poprzedniego żądania. Spójrz na dane HTTP i zlokalizuj linię, która wygląda jak ta poniżej.
< Set-Cookie: wordpress_test_cookie=WP+Cookie+check; path=/
Będziesz potrzebować WordPress_Test_Cookie = WP+Cookie+Check
część.
W porządku, teraz będziesz potrzebować informacji, które zebrałeś z HTML wraz z tym ciasteczkiem, aby złożyć wniosek. Tak to powinno wyglądać.
curl -v--data 'log = nazwa użytkownika i pwd = realPassword & wp-submit = log+in & testCookie = 1'--Cookie 'WordPress_Test_Cookie = WP+Cookie+Check' http: // localhost/wp-login.php
Masz więc tak samo podstawowe żądanie jak poprzednio, ale tym razem używasz --dane
flaga i --ciastko
flaga, aby przekazać curl, z których danych formularzy chcesz wchodzić w interakcje i to plik cookie, więc formularz faktycznie złoży.
Ten ciąg danych, log = nazwa użytkownika i pwd = realPassword & WP-submit = log+in & testCookie = 1
odpowiada bezpośrednio informacji, które zebrałeś z HTML. Mówi, aby podłączyć wartość „nazwa użytkownika” do nazywanego wejścia dziennik
oraz wartość „realPassword” do nazywanego wejścia PWD
. Pamiętaj, aby użyć rzeczywistej nazwy użytkownika i hasła do zalogowania się. Następnie użyj przesyłania o nazwie WP-submit
i wartość Zaloguj sie
Aby przesłać dane. Na końcu TestCookie
o wartości 1
. To po prostu informuje Curl, aby to przesłał wraz z resztą danych formularza.
Kiedy Curl wypełni żądanie, naprawdę nie zobaczysz żadnego HTML, tylko dużo informacji o żądaniu. Pamiętaj, że przekierowanie, które sprawiło, że testowanie za pomocą „pulpitu nawigacyjnego” nie działało jako warunek testowy? Cóż, teraz sam przekierowanie będzie warunkiem testowym. Spójrz na linię poniżej.
< Location: http://localhost/wp-admin/
Tej linii nie było w poprzedniej prośbie. Nie zawiera również żadnych szczegółowych informacji związanych z tym użytkownikiem lub loginem. To oznacza, że tak będzie zawsze być obecnym podczas udanego logowania WordPress, dzięki czemu jest to idealny warunek sukcesu.
Testowanie za pomocą Hydra
Na koniec masz wszystko, czego potrzebujesz, aby przetestować hasła za pomocą Hydra. Punktem tego przewodnika nie jest tyle, aby pokryć składnię Hydra, ale rozkłada użyte polecenie. Jeśli chcesz dowiedzieć się więcej o HYDRA, sprawdź przewodnik SSH, który ma znacznie więcej szczegółów.
Naprawdę jest tylko jedno polecenie, które potrzebujesz, aby Hydra mogła przechodzić przez możliwe nazwy użytkowników i hasła, aby przetestować bezpieczeństwo witryny WordPress. Najłatwiejszą rzeczą jest spojrzenie na polecenie i rozbij.
$ hydra -l listy/usrName.TXT -p listy/przepustka.txt localhost -v http-formy-post '/WP-login.php: log =^Użytkownik^i Pwd =^Pass^& WP-submit = Zaloguj się i testCookie = 1: S = Lokalizacja '
Okej, więc jest to oczywiście wiele do zrobienia od razu. -L
Flaga każe Hydrę, aby użyła listy słów o nazwach użytkowników pod adresem Listy/UsrName.tekst
. Podobnie -P
Flaga każe Hydrę, aby użyła listy słów haseł pod adresem listy/przepustki.tekst
. Lokalny Gospodarz
każe Hydrze, aby skierować się do LocalHost, i -V
mówi mu, aby zarejestrował każdy test na wyjściu konsoli.
Reszta polecenia dotyczy samego żądania HTTP. HTTP-Form-post
Aktywuje moduł Hydra do obsługi formularzy HTTP za pomocą metody post. Pamiętaj z wcześniejszego formularza logowania WordPress jest w obliczu postu od. Poniższy ciąg zawiera wszystkie parametry, których użyje Hydra. Powinieneś zauważyć, że jest bardzo podobny do tego, który używany do logowania się przez curl.
String składa się z różnych sekcji oddzielonych przez :
. Pierwsza część to dokładny adres, który jest testowany, /WP-Login.php
. Następna część jest prawie dokładnie taka jak ta używana przez curl. Przekazuje wartości do formularza i przesyła je, w tym plik cookie. Zamiast przekazywać wartości dosłowne, Hydra w rzeczywistości używa zmiennych. Zauważ w log =^Użytkownik^
I pwd =^pass^
. Są to zmienne oddzielone z marchewką, które pobierają wartości od list słów i przekazują je w żądaniu każdego testu, który uruchamia Hydra.
Ostatnim elementem łańcucha jest warunkiem testu. S
oznacza, że jest to testowanie sukcesu. Jeśli chcesz przetestować porażkę, użyłbyś F
. Ustawiasz to równe słowowi lub wyrażeniu, dla którego testuje. Pomyśl, czy to prawie jak Grep
.
Po uruchomieniu powinieneś uzyskać pozytywny wynik, pod warunkiem, że poprawna nazwa użytkownika i hasło znajdują się w listach słów, które dostarczyłeś hydra.
Zamykanie myśli
Po pierwsze, gratulacje z tego powodu przez to wszystko. Jeśli to się udało, masz teraz solidną metodę testowania siły hasła swoich kont użytkowników WordPress.
Ten przewodnik został dostosowany do WordPress, ale możesz łatwo wykonać te same kroki, aby przetestować inne formularze internetowe. Jeśli uruchomisz aplikację internetową z wieloma użytkownikami, zdecydowanie dobrym pomysłem jest zrobić
pewnie, że używają mocnych haseł. Może to pomóc w poinformowaniu twoich zasad haseł. Ponownie upewnij się, że zawsze testujesz tylko za zgodą.
Powiązane samouczki Linux:
- Lista najlepszych narzędzi Kali Linux do testowania penetracji i…
- Jak podwójnie rozruch Kali Linux i Windows 10
- Ubuntu 20.04 WordPress z instalacją Apache
- Ubuntu 20.04: WordPress z instalacją Nginx
- Instalacja OpenLitespeed WordPress
- Jak zainstalować Kali Linux w VMware
- Użyj WPSCAN, aby skanować WordPress w poszukiwaniu luk w kali
- Konfiguracja serwera Kali HTTP
- Jak złamać hasło zip na Kali Linux
- Hartowanie Kali Linux
- « Debian apt-get Bullseye źródła.lista
- Łatwy sposób szyfrowania i odszyfrowania dużych plików za pomocą OpenSSL i Linux »