Powłoka internetowa - Web shell

Shell internetowej jest interfejs shell-like , który umożliwia serwer WWW do zdalnego dostępu, często dla celów cyberataków . Powłoka internetowa jest wyjątkowa, ponieważ do interakcji z nią używana jest przeglądarka internetowa .

Powłokę internetową można zaprogramować w dowolnym języku programowania obsługiwanym przez serwer. Powłoki WWW są najczęściej pisane w języku programowania PHP ze względu na powszechne użycie PHP w aplikacjach WWW . Jednak używane są również skrypty powłoki Active Server Pages , ASP.NET , Python , Perl , Ruby i Unix , chociaż te języki są rzadziej używane.

Korzystając z narzędzi do monitorowania sieci , osoba atakująca może znaleźć luki, które mogą potencjalnie umożliwić dostarczenie powłoki internetowej. Te luki są często obecne w aplikacjach uruchamianych na serwerze sieciowym.

Osoba atakująca może użyć powłoki internetowej do wydawania poleceń powłoki, wykonywania eskalacji uprawnień na serwerze sieciowym oraz do przesyłania , usuwania , pobierania i wykonywania plików do iz serwera sieci Web.

Ogólne zastosowanie

Powłoki internetowe są wykorzystywane w atakach głównie dlatego, że są wielozadaniowe i trudne do wykrycia.

Powłoki sieciowe są powszechnie używane do:

  • Kradzież danych
  • Infekowanie odwiedzających witrynę ( ataki wodopoju )
  • Oszpecenie strony internetowej poprzez modyfikację plików ze złośliwą intencją
  • Rozpocznij rozproszone ataki typu „odmowa usługi” ( DDoS )
  • Aby przekazywać polecenia wewnątrz sieci, która jest niedostępna przez Internet
  • Do wykorzystania jako baza dowodzenia i kontroli , na przykład jako bot w systemie botnet lub w celu naruszenia bezpieczeństwa dodatkowych sieci zewnętrznych.

Dostawa powłok internetowych

Powłoki internetowe są instalowane przez luki w aplikacjach internetowych lub słabą konfigurację zabezpieczeń serwera, w tym:

Atakujący może również zmodyfikować ( spoof ) Content-Typenagłówek, który ma zostać wysłany przez atakującego w przesłanym pliku, aby ominąć nieprawidłową walidację pliku (walidację za pomocą typu MIME wysłanego przez klienta), co spowoduje pomyślne przesłanie powłoki atakującego.

Przykład

Poniżej znajduje się prosty przykład powłoki internetowej napisanej w PHP, która wykonuje i wyświetla wynik polecenia powłoki:

<?=`$_GET[x]`?>

Zakładając, że nazwa pliku to example.php, przykład, który wyświetliłby zawartość /etc/passwdpliku, jest pokazany poniżej:

https://example.com/example.php?x=cat%20%2Fetc%2Fpasswd

Powyższe żądanie przyjmie wartość xparametru ciągu zapytania , wysyłając następujące polecenie powłoki:

cat /etc/passwd

Można by temu zapobiec, gdyby funkcje powłoki PHP były wyłączone, tak że arbitralne polecenia powłoki nie mogły być wykonywane z PHP.

Zapobieganie i łagodzenie

Powłoka sieciowa jest zwykle instalowana z wykorzystaniem luk w oprogramowaniu serwera sieciowego. Dlatego usunięcie tych luk jest ważne, aby uniknąć potencjalnego ryzyka skompromitowanego serwera WWW.

Poniżej przedstawiono środki bezpieczeństwa zapobiegające instalacji powłoki internetowej:

  • Regularnie aktualizuj aplikacje i system operacyjny serwera hosta, aby zapewnić odporność na znane błędy
  • Wdrażanie strefy zdemilitaryzowanej (DMZ) między serwerami skierowanymi do sieci a sieciami wewnętrznymi
  • Bezpieczna konfiguracja serwera WWW
  • Zamykanie lub blokowanie nieużywanych portów i usług
  • Korzystanie z walidacji danych wprowadzanych przez użytkownika w celu ograniczenia lokalnych i zdalnych podatności na włączenie plików file
  • Użyj usługi odwrotnego proxy , aby ograniczyć administracyjne adresy URL do znanych legalnych
  • Częste skanowanie podatności w celu wykrycia obszarów ryzyka i przeprowadzania regularnych skanów za pomocą oprogramowania zabezpieczającego sieć (nie zapobiega to atakom typu zero-day )
  • Wdróż zaporę sieciową
  • Wyłącz przeglądanie katalogów
  • Nie używam domyślnych haseł

Wykrycie

Powłoki WWW można łatwo modyfikować, więc ich wykrycie nie jest łatwe, a oprogramowanie antywirusowe często nie jest w stanie wykryć powłok WWW.

Oto typowe wskaźniki obecności powłoki internetowej na serwerze sieciowym:

  • Nienormalnie wysokie wykorzystanie serwera WWW (z powodu intensywnego pobierania i przesyłania przez atakującego);
  • Pliki z nieprawidłowym znacznikiem czasu (np. nowsze niż data ostatniej modyfikacji);
  • Nieznane pliki na serwerze WWW;
  • Pliki z wątpliwymi odniesieniami, na przykład cmd.exelub eval;
  • Nieznane połączenia w logach serwera WWW

Na przykład plik generujący podejrzany ruch (np. plik PNG żądający z parametrami POST ); Wątpliwe logowanie z serwerów DMZ do wewnętrznych podsieci i odwrotnie.

Powłoki internetowe mogą również zawierać formularz logowania, który często jest zamaskowany jako strona błędu .

Korzystając z powłok internetowych, przeciwnicy mogą modyfikować plik .htaccess (na serwerach z oprogramowaniem Apache HTTP Server ) na serwerach internetowych, aby przekierowywać żądania wyszukiwarek na stronę internetową zawierającą złośliwe oprogramowanie lub spam . Często powłoki internetowe wykrywają klienta użytkownika, a treść prezentowana pająkowi wyszukiwarki różni się od prezentowanej przeglądarce użytkownika. Aby znaleźć muszlę wstędze user-agent jest zwykle wymagana zmiana bot gąsienicy. Po zidentyfikowaniu powłoki internetowej można ją łatwo usunąć.

Analiza dziennika serwera WWW może określić dokładną lokalizację powłoki WWW. Uprawnieni użytkownicy/odwiedzający zwykle mają różnych klientów użytkownika i odsyłaczy (odsyłających) , z drugiej strony powłoka internetowa jest zwykle odwiedzana tylko przez atakującego, dlatego ma bardzo niewiele wariantów ciągów agenta użytkownika.

Zobacz też

Bibliografia