Google hacking
Wiele osób pewnie słyszało i/lub używało. Taka prosta, wykonalna dla każdego z iq>60 technika która umożliwi nam łatwe znalezienie informacji o serwerze. W tym krótkim tekście zademonstruję jak łatwo i przyjemnie można zyskać dodatkową moc obliczeniową, skąd wziąć darmowe serwery torrent itp.
1. Serwer MySQL
myadmin intitle:"Index of"
Takie prościutkie, wręcz podręcznikowe zapytanie spowoduje wyświetlenie listy serwerów gdzie z jakiegoś powodu nie została załadowana domyślna strona w phpmyadmin (najczęściej). Powodów mogło być kilka - w serwerze www nie ma dyrektywy dotyczącej plików php; serwer nagle stracił obsługę php (o_O); w chwili indeksowania strony nie było tam domyślnego pliku i wyświetlono zawartość katalogu.
Co nam daje taka informacja? Być może admin, dla własnego użytku, przekopiował config.php na config.old, być może pozostał plik którym przeprowadzono instalację; być może znajduje się tam jakiś backup.sql; przykłady można mnożyć.
Tego typu zapytanie do google może nam również wyświetlić zawartość katalogu w którym znajduję się katalog PMA. Stąd już krótka droga do następnego kroku...
Gdy natrafimy na działający serwer PHPMyAdmin jakiejś prywatnej strony, naszym oczom może się ukazać... lista baz danych, tabel i inne informacje. Tak tak - niektórzy mają tak ustawiony PMA, że zaraz po jego otwarciu wczytywany jest domyślny user. Często jest to user root, lub user na którym działa główna strona.
Gdy dla odmiany serwer zapyta o hasło, możemy się nieco zdziwić gdy zobaczymy efekt wpisania usera root bez hasła. Tak, znów może nam się wyświetlić listing baz danych i innych cukierków. Warto też wziąć pod uwagę hasła proponowane w tutorialach czy też gotowych paczkach instalacyjnych - patrząc na wyniki dzisiejszego rekonesansu, 5% userów robi jakieś kroki w stronę bezpieczeństwa serwera.
Gdy już mamy załadowany interfejs PMA możemy się dowiedzieć wielu ciekawych rzeczy, dzięki naturze i funkcjach samego MySQL.
Po pierwsze, zakładka zmienne w PMA, gdzie można się dowiedzieć m.in. jaka jest wersja MySQL, jaki system działa na serwerze. Po drugie, dzięki
LOAD DATA INFILE ...
SELECT ... INTO OUTFILE
Możemy zarówno odczytać dowolny plik na serwerze (do którego znamy dokładną ścieżkę), jak również zapisać plik na serwerze (select "<?php exec($_GET['x']); ?>" ... for the win). Niestety często działa to tylko w teorii, dobrze jednak wiedzieć.
2. Poszukiwanie plików konfiguracyjnych
inurl:config intitle:"index of" -pub -gnu -cvs
W tym zapytaniu użyłem trzech rzeczy: po pierwsze, inurl: dzięki któremu szukamy stron w których adresie występuje dane słowo kluczowe; po drugie, intitle: - jak wyżej, ale działa dla tytułu strony. Apache generuje listingi katalogów z takim właśnie tytułem. Pozostałe słowa kluczowe: pub, gnu, cvs zostały wyłączone (znak minus) bo było ich bardzo wiele w wynikach, a nie przedstawiały żadnej wartości.
W ten sposób można znaleźć wiele plików konfiguracyjnych - niektórych niestety nie uda się odczytać (bo będą po prostu wykonane po stronie serwera), jednak zapobiegliwi administratorzy często umieszczają pozornie bezwartościowe rzeczy, takie jak skrypty shell do automatycznego backupu (własnie takie coś znalazłem - w katalogu config) który zawiera informacje dot. bazy danych; pliki konfiguracyjne w formacie xml, yaml, txt, ini czy dowolnym innym; wreszcie pliki zawierające SQL, dzięki którym można poznać strukturę bazy danych, przydatną gdy chcemy przeprowadzić atak sql injection.
3. Poszukiwanie dziurawego oprogramowania - paczki serwerowe
inurl:xampp/status.php
Tak dokładnie. W ten sposób zyskamy listę (dłuuuuuuuugą) serwerów działających na oprogramowaniu XAMPP (czy też WAMP, LAMP). Czemu to akurat nas interesuje? Ponieważ oni wspaniałomyślnie pokazują bardzo wiele informacji o serwerze (jakie usługi są uruchomione, phpinfo a nawet - uwaga - czy domyślne hasła zostały zmienione/ustawione). Dokładnie tak - xampp sam nam powie czy dany user ustawił hasło roota w MySQL, czy user zmienił domyślne hasło do ftp (w zależności od systemu, są to newuser/wampp, nobody/nobody, nobody/lampp, xampp/lampp i podobnie). Najciekawszym zastosowaniem może być np. umieszczenie takiego serwera we własnym botnecie - jak już mamy dostęp do ftp, co nas powstrzymuje... odradzam natomiast wszelkie zmiany na samej stronie - po co się ujawniać?
No tak, to były trzy najłatwiejsze, a przy tym najbardziej efektowne zastosowania Google do Niecnych Celów (tm). Bardziej produktywne może być poszukiwanie zbiorów muzycznych, prywatnych serwerów ftp, ebooków czy też po prostu doskonalenie znajomości Googla. Niżej zostawiam linkę do strony wyjaśniającej działanie użytych tu dwóch prostych operatorów.
Moim ulubionym zastosowaniem jest wyszukiwanie serwerów z TorrentFlux'em i jakąś dziurą. Nie ma to jak osobny serwer do torrentów, z którego później ściągasz plik wygodnie i szybko - przez ftp bądź http. Na razie to teoria, serwera ciągle szukam ;-)
Dzięki Google można wiele zyskać, nie warto natomiast tego używać aby po prostu zniszczyć czyjąś stronę. Wszystko szybko wyjdzie na jaw, a oprócz tego że ktoś stracił efekt swojej pracy, serwer zostanie zabezpieczony. Najlepiej w ogóle nie ruszać obcych plików - szkoda czasu i czyjejś pracy.
Oczywiście wpis ten został umieszczony, aby uświadomić adminom jakich rzeczy nie robić, aby nikt nie dostał się na ich serwer? :>
hmm, ale taki ogólnoświatowy botnet z zainstalowanym distcc to by się przydał :)
@Jony: Tak szczerze mówiąc to nie lubię hipokryzji tego typu ;-) piszę w konkretnym celu, a jak admin to przeczyta to również troszkę pomyśli.
@aw: No baa. Albo z jakimś crackerem :)
Najgorsze jest to, że przez tych wszystkich którzy botnet używają do DDoSowania, policja jest dosyć uprzedzona co do tego typu rozrywek.
A ja "grzecznie hakuą gógla" najczęściej w poszukiwaniu mp3 :)