UWAGA! Poniższy artykuł dotyczy testów bezpieczeństwa – pamiętaj, że wykonywanie niezamówionych testów bezpieczeństwa może grozić poważnymi konsekwencjami prawnymi. Artykuł ma charakter edukacyjny, a redakcja nie odpowiada za używanie zdobytej tutaj wiedzy do celów niezgodnych z prawem.
WordPress jest jedną z najbardziej popularnych platform blogowych na świecie – żeby to udowodnić poniżej podajemy garść statystyk:
Około 80 milionów stron powered by wordpress
17 postów dodawanych przez Społeczność w ciągu każdej sekundy
34 tysiące pluginów (liczba rośnie z każdym dniem)
115 wersji wypuszczonych do tej pory
Patrząc na te wyniki nikt nie powinien mieć wątpliwości, że mówimy o technologii, która zrewolucjonizowała nie tylko platformy blogowe. WordPress znalazł swoje zastosowanie również w popularnych serwisach takich jak www.bbcamerica.com, www.nytco.com czy www.snoopdogg.com.
Jednak WordPress poza zainteresowaniem wśród znanych firm, budzi je również wśród społeczności hakerskiej. Imponujące dotychczas statystyki mogą być przerażające, jeżeli tylko odpowiednio je zinterpretujemy:
Około 80 milionów stron oznacza 80 milionów prawdopodobnych celów ataków
17 postów na sekundę tylko utwierdza atakujących w przekonaniu, że mogą uzyskać dostęp do interesujących ich danych
34 tysiące pluginów to ciągle rosnąca ilość potencjalnie otwartych furtek dostępu do aplikacji
115 wersji wypuszczonych do tej pory – z czego według statystyk tylko 20% stron posiada najnowszą!!!
Z mojego doświadczenia wynika, że nic nie jest w stanie zabezpieczyć waszych serwisów w 100% (weźmy pod uwagę chociażby tzw. 0 day), ale trzeba w maksymalnym stopniu starać się utrudnić zadanie ewentualnemu atakującemu. Z pomocą przychodzi nam WPScan – jeżeli jesteś administratorem/programistą/testerem/entuzjastą WordPress’a – jest to dla Ciebie absolutny must have! Program jest całkowicie darmowy (wyjątkiem jest użycie go jako części swojego rozwiązania). Jest też względnie bezpieczny – opiera się na technikach blackbox nie ingerując w kod programu, więc spokojnie możecie nim „przejechać” swoją appkę (przypominam tylko, że w ramach dobrych praktyk, testy penetracyjne powinny być przeprowadzane na wersjach deweloperskich – nie produkcyjnych!).
W tym artykule pokażę, w jaki sposób wykonać skan naszej aplikacji za pomocą WPScan – w tym celu skorzystam z systemu operacyjnego Kali Linux. Po uruchomieniu w konsoli WPScan’a, naszym oczom ukaże się następujący widok:
Poza przedstawieniem się programu, otrzymujemy krótki manual (wraz z konkretnymi przykładami). Jeżeli komuś nie chce się poświęcać czasu na konfigurację i dobór tylko takich opcji, które go interesują – WPScan przewidział przeprowadzenie podstawowego skanowania. W tym celu wystarczy użyć komendy:
wpscan − −url www.mojwordpress.pl
Na tym kończą się wszelkie wymagania odnośnie „umiejętności hakerskich” niezbędnych do przeprowadzenia skanu – pozostaje interpretacja raportu. Udało mi się znaleźć WordPress’a w wersji 3.8 (co przy wspomnianych 20% uaktualnionych wersji nie jest wyczynem) – poniżej możecie znaleźć co zawiera przykładowy raport:
Robots.txt – to uwielbiany przez atakujących plik tekstowy. Pierwotnie przeznaczony do informowania różnego rodzaju botów o tym, aby nie indeksowały (np. w wynikach wyszukiwarki google) konkretnych podstron. Skoro nie chcemy aby coś było dostępne do wiadomości publicznej, to najczęściej bardzo może się przydać z punktu widzenia atakującego. Co ciekawego można tam znaleźć?
Między innymi adresy do panelu logowania, czy też ukryte podstrony – mogące zawierać podatności (bo „przecież nikt tego nie zobaczy”). Plik Robots.txt „działa” nie tylko dla WordPress’a – sprawdź koniecznie, co możesz znaleźć w swojej aplikacji!
WPScan poinformuje Cię również o wszystkich ciekawych informacjach, zawartych w nagłówkach: np. nazwie serwera.
Idąc dalej – jedna z najciekawszych informacji – numer wersji WordPress’a. Dodatkowo, jeżeli w podanej wersji występują znane podatności, otrzymujemy w gratisie krótki opis wraz z przydatnymi linkami, z których dowiemy się na czym polega problem i zobaczymy konkretne przykłady.
Pojawia się również lista pluginów (zarówno posiadających znane podatności jak i bez nich – w razie gdyby ktoś chciał poszukać):
Również w tym wypadku, mamy podane wszystkie niezbędne referencje z samouczkami do samodzielnego rozpracowania strony – na powyższym przykładzie widzimy podatność CSRF.
Kolejnym krokiem jest enumeracja użytkowników – w tym celu należy do komendy głównej dopisać –enumerate u, przez co całość prezentuje się nastepująco:
wpscan − −url www.mojwordpress.pl − −enumerate u
W praktyce powoduje to wypisanie w postaci czytelnej tabelki nazwy użytkownika w systemie + jego login. Teraz wystarczy sobie wyobrazić, że znajomość loginu to połowa sukcesu do włamania się na czyjeś konto. Co więcej, z dużym prawdopodobieństwem dane używane w konkretnym WordPress’ie będą pokrywać się z danymi w innych serwisach typu Gmail czy Facebook. Przechodząc więc do rzeczy – po krótkiej chwili Twoim oczom może ukazać się taki widok (część danych zamazałem z uwagi na zawarte dane osobowe typu imię i nazwisko):
W niedługim czasie oraz przy odrobinie szczęścia będziesz miał okazje poznać takie sławy jak m.in. admin czy maszyna.
Wszystko co należałoby w tej chwili zrobić (zakładając, że patrzymy na sytuację z punktu widzenia osoby po złej stronie mocy) to odgadnąć hasło. Również w tym wypadku z pomocą przychodzi nam WPScan, który posiada wbudowany moduł do przeprowadzania ataku typu bruteforce. Jedyne co będzie potrzebne to słownik haseł (plik .txt zawierający przykładowe hasła jedno pod drugim – w internecie jest tego masa!) + odpowiednia komenda.
WPScan jest niezwykle istotnym narzędziem dla każdej osoby zajmującej się WordPress’em. Polecam każdemu sprawdzenie swojej aplikacji zanim stanie się potencjalnym obiektem ataku. Należy mieć na uwadze fakt, że WPScan może być (i jest) używany nie tylko do celów testowania oprogramowania, ale również do ich rozpracowywania – w najgorszym tego słowa znaczeniu.
Powyższy wpis ma charakter edukacyjny, a jego celem jest uświadomienie administratorów i użytkowników WordPress’a co do zagrożeń płynących z wykorzystywania podanego CMS’a. Pamiętaj, żeby przed rozpoczęciem testów za pomocą WPScan’a, uzyskać niezbędne zezwolenia od właściciela serwisu!