WEP lekcja #11 – Atak LFI (Local File Include) i narzędzie fimap w Kali Linux

Dzisiaj pokażemy czym jest atak LFI, czyli rozwijając ten skrót local file lnclusion. Zaprezentujemy również świetny darmowy skaner fimap dostępny w systemie Kali Linux umożliwiający automatyczne wyszukiwanie podatności typu local file includeremote file inclusion.

Na wstępie powinieneś wiedzieć, że tego typu luka pozwala na dołączenie, wyświetlanie i wykonywanie lokalnych plików znajdujących się na serwerze www. Dzięki tej hakerskiej sztuczce cyberprzestępca może poznać zawartość plików konfiguracyjnych serwera a nawet systemu operacyjnego. Jak pewnie już wiesz z poprzednich lekcji, często w takich plikach występują hasła. Najczęściej występującym przykładem w literaturze jest plik z użytkownikami i hasłami w systemie Linux o nazwie /etc/passwd i /etc/shadow.

Materiał filmowy o ataku LFI i programie fimap w Kali Linux

Poniżej znajduje się bardzo rozbudowany aż, ponad 32 minutowy materiał na temat ataków dołączania lokalnych plików serwera (LFI). W filmie została zaprezentowana również świetna funkcja programu Burp Suite, umożliwiająca zautomatyzowane wyszukiwanie wszystkich adresów URL znajdujących się na stronie internetowej. Dzięki połączeniu tego pajączka sieciowego (ang. spider, web crawler) z programem fimap w bardzo prosty sposób możesz wyszukać wszystkie tego typu podatności na testowanej witrynie internetowej. Pokazaliśmy również ciekawą wtyczkę FoxyProxy standard do Firefoxa.

Fimap – kilka przykładowych poleceń i ciekawych parametrów

Uważam, że najlepiej człowiek uczy się na przykładach dlatego poniżej prezentuje kilka przykładowych komend programu fmap z krótkim objaśnieniem. Uwaga! Pamiętaj, że nie zawsze pentester ma dostęp do zalogowanej części witryny internetowej. W zależności od wykonywanego testu bezpieczeństwa sam musisz podjąć decyzje kiedy skanujesz z wykorzystaniem ciastek sesyjnych (cookies), a kiedy bez nich.

Wyświetlenie dostępnych parametrów fimap (pomoc/help)

fimap -h

Sprawdzanie podatności pojedyńczego adresu URL na LFI/RFI

fimap -s -u 'http://192.168.0.10/vulnerabilities/fi/?page=file1.php'

Parametr -s czyli single url. Możesz go używać do skanowania pojedynczych adresów URL, lecz nie zawsze jest to wygodne.

Skanowanie wszystkich linków listy na podatność LFI/RFI

fimap -m -l 'slownikUrl.txt' --cookie='PHPSESSID=testowe; security=low;' -C

Parametr -m (mass) wybiera tryb skanowania większej ilości linków z słownika. Wymagany tutaj jest parametr -l, czyli właśnie ta lista z linkami. Dodatkowo w powyższym poleceniu zostało zaprezentowane użycie ciasteczek (–cookie). Warto używać również parametru -C który ładnie koloruje informacje w terminalu Linux.

Wyszukiwanie linków na podanej stronie www

fimap -H -u 'http://192.168.0.10/vulnerabilities/' -d 5 --cookie='PHPSESSID=blablabla; security=low' -w 'linkiWyniku.txt'

cat linkiWyniku.txt

Powyższe polecenie jest pajączkiem sieciowym (crawler) pobierający w analogiczny sposób do zaprezentowanej metody w filmie w Burp Suite adresu URL na stronie www. Parametr -H (harvest) uruchamia ten tryb, wymaga oczywiście parametru z adresem poszukiwań linków -u. Parametr -d (depth) to głębokość poszukiwań. Właśnie ten parametr budzi moje zastrzeżenia co do działania, ponieważ teoretycznie program powinien wchodząc dalej w każdy link. W naszym powyższym przypadku powinien robić to o 5 poziomów niżej (czyli dalej w wyszukanym linku szukać kolejnych rekursywnie).

Program fimap w Linuksie harvesting czyli zbieranie linków URL
Wynik działania crawlera fimap (parametr -H). Zebrał on kilkanaście linków URL z naszej testowanej strony.

Ciasteczka zostały użyte w standardowy sposób. Parametr -w umożliwa zapis wyników do pliku linkiWyniku.txt. Następne polecenie cat po prostu czyta ten plik z rezultatami programu fimap. Z mojego doświadczenia jednak komenda w stosunku do Burp Suite działa mizernie (w stosunku do skryptu naszego DVWA).

Inne parametry

Warto w własnym zakresie skorzystać z pomocy fimap -h i przejrzeć parametry opcjonalne. Narzędzie umożliwia również wyszukiwanie pewnych fraz i potencjalnie podatnych stron internetowych w wyszukiwarce Google/Bing. Jednak pamiętaj, chcesz być specjalistą od bezpieczeństwa czy przestępcą? 😉 Ciekawym parametrem jest również -V, czyli poziom gadatliwości programu (ilość zwracanych informacji użytkownikowi) i tajemnicze -X

Wykryta luka LFI (local file inclusion) programem fimap w systemie operacyjnym dla hakerów Kali Linux.
Na zrzucie ekranu widać działanie programu fimap w Kali Linux, który właśnie znalazł podatność typu LFI. Dodatkowo narzędzie w wielu przypadkach wyświetla ścieżkę skryptu na serwerze i kilka interesujących plików serwera. Narzędzie wyszukuje również podatności typu RFI.

Zadanie domowe z ataków Local File Inclusion (dirb)

-> Zadanie 1

Twoje dzisiejsze zadanie ma otwarte rozwiązanie, więc przyłóż się do niego. W menu Kali Linuxa być może zauważyłeś istnieje podobne narzędzie do opisywanego nie tak dawno narzędzia DirBuster.

To narzędzie nazywa się dirb i działa w konsoli. Przestudiuj we własnym zakresie dostępne jego parametry. Wystarczy, że wpiszesz w swojej konsoli dirb i man dirb a uzyskasz wszystko czego potrzebujesz.

Podpowiedź do zadania nr 1 - jeśli nie dajesz rady to spójrz!

Spróbuj przetestować różne ustawienia programu. Jeżeli nie do końca rozumiesz pewne parametry z pomocy to użyj Google Translatora. Wartymi uwagi parametrami są:

  • -c ustawia ciasteczka,
  • -o wyniki możesz przekierować do pliku,
  • -X/-x zwracanie uwagi przez program na konkretne rozszerzenia plików (istnieje również możliwość zdefiniowania ich w pliku),
  • -z przerwy czasowe w zapytaniach maskujące skanowanie.

Radzę Tobie testować ten program z i bez ciasteczek. Użyj również innych parametrów ograniczających wyświetlane wyniki.

Przeanalizuj zebrane rezultaty i zastanów się czy do czegoś może Ci się przydać program dirb.

Uwaga! To zadanie nie posiada konkretnego rozwiązania. Ma na celu wykształcenie w Tobie umiejętności korzystania z programów systemu Linux.

Podsumowanie o o dołączaniu lokalnych plików czyli LFI

Chcę abyś zapamiętał z tej lekcji, że w przypadku wykorzystania tej luki zwykłe pliki typu tekstowego są po prostu wyświetlane na ekranie. W przypadku dołączenia plików interpretowanych przez serwer PHP są one wykonywane. Dlaczego tak się dzieje? Ponieważ funkcja PHP która dołącza pliki (najczęściej include()) działa w ten sposób, że otwiera dany plik i go włącza do siebie w miejscu wywołania include. Napotykając na znaczniki takie jak <?php wykonuje tą sekcje niczym skrypt php. Morał jest zaprezentowany na filmie. Jeśli w jakiś sposób cyberprzestępca dostarczy plik z kodem PHP na serwer w dowolne dostępne miejsce (nawet tekstowy z rozszerzeniem .txt) to może ten kod wykonać za pomocą luki LFI.

Łatwo można sobie wyobrazić sytuacje, w której na stronie internetowej istnieje dobrze zabezpieczony uploader plików i luka LFI. Wystarczy w takim przypadku wgrać dozwolony plik z kawałkiem kodu PHP w sobie i wykonać go za pomocą opisywanej dzisiaj luki local file lnclusion. Bardzo ciekawy atak LFI umożliwiający wgranie shella, bez użycia uploadera będzie zaprezentowany również w kolejnej powiązanej lekcji. Bądź na bieżąco i lajkuj nas na fejsie! Powodzenia w zadaniu domywam! 🙂

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *