Masz wirusa na stronie! Usuwamy WebShelle…

A może i Ty masz wirusa na stronie internetowej? W jednym z ostatnich wpisów pisaliśmy o tylnej furtce PHP w stronach internetowych czyli WebShellach. Dzisiaj wracamy do tego teamtu i powiemy w jaki sposób łatwo i szybko możemy przeskanować swoją stronę pod kątem takich tylnych php futek. Do tego celu użyjemy darmowego narzędzia Web Shell Detector dostępnego w wersji PHP i Pythonowej. Zakładam, że jeżeli interesuje Cię ten sposób na sprawdzenie bezpieczeństwa swojej strony internetowej za pomocą tego narzędzia to posiadasz elementarną wiedzę na temat używania skryptów PHP, klienta FTP i podstawowej obsługi hostingu.

Wykrywanie i usuwanie WebShelli

Cały problem polega na tym, że walka z crackerami jest walką z wiatrakami. Ciągle pojawiają się nowe metody ataków i luki w oprogramowaniu. Być może już dawno ktoś i Tobie wgrał shella i cieszy się z danych użytkowników na Twojej stronie internetowej. Więc dowiedzmy się jak wykryć i usunąć typowy PHP shell.

wirus na stronie internetowej
Być może i Twoja strona jest zarażona webshellem…
  1. W pierwszym kroku pobierz skrypt Web Shell Detector z oficjalnej strony projektu.
  2. Wypakuj archiwum za pomocą WinRara i wgraj za pomocą klienta FTP plik shelldetect.phpshelldetect.db do głównego folderu swojego serwera ze stroną WWW.
  3. Wywołaj w pasku przeglądarki adres skryptu. Jeżeli testujesz lokalnie skrypt za pomocą XAMPP jest to http://localhost/shelldetect.php.
  4. Skrypt poprosi Cię o login i hasło. Domyślne dane logowania to admin/protect.
  5. Skrypt rozpocznie automatycznie skanowanie przeszukując rekurencyjnie wszystkie pliki wykonywalne PHP znajdujące się w folderze ze skryptem i jego podkatalogach.
  6. Po zakończeniu skanowania wystarczy przeanalizować zebrany raport.

Raport zawiera takie informacje jak:

  • Full path – pełna ścieżka przeskanowanego pliku,
  • Owner – użytkownik,
  • Permission – uprawnienia pliku,
  • Last accessed – data ostatniego dostępu do pliku,
  • Last modified – data ostatniej modyfikacji,
  • MD5 hash – unikalną sumę kontrolną md5sum,
  • Filesize – rozmiar pliku,
  • suspicious functions used – spis podejrzanych funkcji,
  • Fingerprint – werdykt.


Najbardziej wartościowymi dla nas informacjami jest oczywiście fingerprint, suspicious functions used i full path. Na samym końcu zostajemy poczęstowani podsumowaniem o przeskanowanych plikach. Może on mieć postać podobnej do poniższej:

Status: 296 suspicious files found and 1 shells found.

Z tego komunikatu możemy wywnioskować, że jeden z 296 podejrzanych plików jest prawdopodobnie niechcianą tylną furtką. Warto zaznaczyć o informacji z początku skryptu o ilości przeskanowanych plików:

File scan done, we have: 4077 files to analize
Skrypt przeanalizował aż 4077 z czego 296 uznał za szkodliwe w tym jeden za potencjalny backdoor na naszej stronie internetowej. Wszystkie pliki podejrzane są skryptami wykorzystującymi funkcje PHP o nikłej reputacji często wykorzystywane w WebShellach. Przykładem są funkcje takie jak system()curl_exec()passthru, base64_decode(), exec() bądź eval().

Pozytywne wyniki Web Shell Detector

Za pomocą wyszukiwarki wbudowanej w przeglądarkę internetową możemy odnaleźć wszystkie frazy Positive na stronie i przeanalizować dany plik. Pozytywne wyniki zaznaczone są właśnie na czerwono. Te pliki są prawdopodobnie szkodliwe i wymagają naszej interwencji (usunięcia z serwera).
Web Shell Detector wykrył C99 Shell
W naszym teście wykorzystaliśmy opisany już kiedyś leciwy C99 Shell. Web Shell Detector poradził sobie z nim mimo zmiany nazwy skryptu. Teraz wystarczy usunąć go z folderu implementacja/zlosliwy-skrypt.php.
Warto w takim przypadku prześledzić datę ostatniej modyfikacji dostępu do pliku w celu dowiedzenia się czy i od kiedy jesteśmy inwigilowani, przejrzeć podejrzane funkcje i odczytać ścieżkę do pliku w celu ręcznego usunięcia go z serwera. Zrób to rozważnie.

Wyniki negatywne

Oczywiście nie powiedziane, że inne skrypty które przeszły test negatywnie są nieszkodliwe. Jeżeli na serwerze mamy małą ilość plików warto również ręcznie prześledzić autentyczność tych plików.
Ktoś mógłby powiedzieć, że wywołania funkcji często są ukrywane tak jak kiedyś opisywaliśmy na naszym blogu w wpisie jak ukryć skrypt php. Na szczęście Web Shell Detector radzi sobie i z takimi problemami.
Wykrywanie wywołań base64_decode - web shell detector
Web Shell Detector wykrywa również podejrzane wywołania funkcji takie jak base64_decode(). Klikając na line:57 uzyskamy podgląd użycia tej funkcji w pliku CAPICOM.php w linii 57. Mamy również możliwość wysłania plików do analizy jeśli mamy wątpliwości.
Jeśli mamy nadal wątpliwości co do pliku to przeanalizować możemy go ręcznie w notatniku lub wysłać do skanera antywirusowego online takiego jak virustotal.com. Nie każdy zdaje sobie sprawę z tego, że i takie zagrożenia wykrywają programy antywirusowe.

Inne narzędzia do wykrywania WebShelli

Istnieje wiele innych narzędzi do wykrywania tego typu zagrożeń wirusowych na naszej stronie internetowej. Możemy tutaj wymienić takie narzędzia jak:

  • maldet,
  • rkhunter,
  • ClamAV (skonfigurowany na serwerze antywirus),
  • NeoPI (Python).

Ciekawym narzędziem jest właśnie to ostatnie. Można wykorzystywać jego możliwości za pomocą konsoli np: z wykorzystaniem zdalnego dostępu SSH.

Podsumowanie o Web Shell Detector

Web Shell Detector jest bardzo ciekawym narzędziem nie bazującym tylko na swojej wbudowanej bazie danych i sumie kontrolnej pliku (md5sum). Bardzo podoba nam się, że to narzędzie wykorzystuje niejako sztuczną inteligencje do analizy heurystycznej plików. Dzięki wykrywaniu wywołań podejrzanych funkcji, użytkownik skryptu może sam zweryfikować czy podejrzany plik jest szkodnikiem czy też nie. Web Shell Detector jest dostępny obecnie w wersji 1.66 i posiada wedle autorów 604 sygnatur zagrożeń.

Chyba nie muszę wspominać, że jeżeli coś wykryłeś warto pozmieniać swoje hasła użytkownika, do bazy danych, FTP i poprosić o to również użytkowników odpowiednim komunikatem. Warto również aktualizować skrypty i poszukać luk, którymi haker cyberprzestępca dostał się do przestrzeni serwera.

Jeśli podoba Ci się ten wpis być może zainteresuje Ciebe jeszcze wpis o google hackingu lub atakach na skrypty php exif. Bądź na bieżąco razem z naszym Facebookiem #HakerEduPL i #Twitterem. Posiadamy również Pinteresta i bardziej prywatny profil na Google+. 😉

4 thoughts to “Masz wirusa na stronie! Usuwamy WebShelle…”

  1. Błąd w 3. zdaniu tekstu.
    Nie mówi się (i nie pisze) 'tylni’ tylko 'tylny’.
    Zapamiętaj!
    Reszty tekstu nie sprawdzałem.

Dodaj komentarz

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