Bezpieczeństwo IT

Atak  Bezpieczeństwo Linux  PHPMyAdmin  Ubuntu
Artykuł objęty jest prawami autorskimi a treść jest oparta na własnych badaniach i doświadczeniach.


Niniejszy artykuł jest jedynie opisem programistycznych działań testowych metodą opisaną poniżej w artykule. Użycie artykułu do jakiejkolwiek publikacji lub użycia wymaga mojej pisemnej zgody oraz wymaga uzupełnienia kodowego, których to kodów z wiadomych powodów nie zamieściłem.
Jednocześnie pragnę zachęcić wszystkich zainteresowanych do współpracy w zakresie bezpieczeństwa sieci!

Sondowanie
Przeprowadziłem atak na formularz logowania do jednej ze stron www. Wyszedłem z założenia, że systemem CMS do zarządzania jest Joomla bo panel może być czymś w rodzaju „Honey POT’a”. Bazując na ogólnodostępnych informacjach w internecie przyjmujemy założenie, domyślną nazwą usera – administratora to „admin”. Jednocześnie wykorzystując lenistwo, brak wiedzy o bezpieczeństwie w sieci oraz kretyńską akceptację systemu prawdopodobnym założeniem jest to, iż mamy już prawdopodobną nazwę usera ale nie mamy żadnej pewności czy nasza hipoteza a zarazem strategia ataku jest słuszna.
Metoda „brute – force” sprawdzająca pełnego katalogu kombinacji typu: „character by character”. Pozwoli nam to na generowanie gigantycznego słownika przy krótkoznakowym haśle. Zaimplementowane narzędzie użytkowe do tej metody to Hydra najlepiej pracujące w Systemie Linux – Ubuntu. Przy konfiguracji urządzenia musimy poznać metodologię uwierzytelniania oraz nazewnictwo. Zaglądamy do źródła dokumentu HTML. Z oczywistych względów nie ujawnię treści kodu HTML.
Z treści kodu zczytujemy wartości pól: „login” & „password”, które są przekazywane w zmiennych $_POST[username] i $_POST[pass] dodatkowo za pomocą odpowiedniego pluginu możemy się upewnić czy nic dodatkowo nie jest wsyłane do naszej przeglądarki i jednocześnie pozwoli nam obejrzeć informacje POST.
Implementacja metody ataku
Mając w posiadaniu informacje o uwierzytelnieniu oraz sposobach przesyłania poświadczeń do serwera HTTP, zaaranżowałem działanie Hydry. Wykorzystywane przeze mnie parametry programu; instrukcja parametru -h.
Używając parametru -| przesyłamy wcześniejsze założenie nazwy usera
-P to jest nasz wygenerowany słownik 
-f w przypadku prawidłowego określenia pasującego klucza i przedstawia nam szukane dane
-v ten parametr wymusza wyświetlenie użytych par „log&pass” w trakcie pracy.
-V wyświetla nam nagłówek HTTP kod wysyłany przez serwer WWW
Http-post-form – w tagu <form> zdefiniowano atrybut metod=„post” wykazujący sposób przekazu danych. Zachowując logi z przeprowadzonego ataku zostało przekierowane standardowe wyjście do odpowiednich plików w których użyto atrybutów -v i -V.

Sondowanie PHPMyAdmin
Za pomocą wspomnianego narzędzia zaatakowałem również formularz do logowania bazy danych MySQL – PHPMyAdmin na atakowanej stronie. Do podglądu pakietów wysyłanych i otrzymywanych z serwera został wykorzystany odpowiedni plugin. Okazuje się, że formularz do logowania jest renderowany przez przeglądarkę internetową i nie wygląda jak znany nam formularz HTML. Analizując nagłówek HTTP wnioskujemy, że dane do logowania zamieszczone w parametrze „Authorization” wysyłane są metodą Basic HTTP. Wróćmy jednak do naszego narzędzia które nie wspiera możliwości jednoczesnego wykorzystania metody „http – head” i „http – post – form”. To wsparcie jest dla nas niezbędne do uruchomienia logu „basic – http – auth” a wymagana metoda do przesyłania danych POST numeru serwera do którego chciałem się zalogować i wywołać http-head dla typu logowania „Basic Authorization”. Nieudany atak na wspomniany serwer.

Konkluzja
Przeprowadzony atak opisaną metodą miał charakter testu nie mający na celu złamania zabezpieczeń administracyjnych właściciela strony. Właściciel strony nie ucierpiał i nie poniósł żadnych strat związanych z moim atakiem. Szanse na uzyskanie właściwej pary „log&pass” były niewielkie ze względu na brak pewności co do nazwy użytkownika a zastosowanie innego słownika jedynie wydłużyło by czas całości procesu ataku. Należy również wziąć pod uwagę algorytm antyflood’owy formularza.