Technologia

Serwer-przynęta z bitcoinami za 2000 dolarów padł po 19 godzinach przez PHP2Shell

Adrian Kessler
Dodaj nas w Google

Serwer z niezałataną wersją PHP, pozostawiony w sieci z kluczem do bitcoinowego portfela jako przynętą, nie przetrwał nawet doby. Badacz posługujący się pseudonimem KillaBoi włamał się do niego przez PHP2Shell — dwie krytyczne luki w języku, na którym opiera się większość internetu — i wydobył klucz. W ten sam weekend pułapka na atakujących, uruchomiona przez szefa ds. bezpieczeństwa w Perplexity, zarejestrowała atak na prawdziwy serwer przeprowadzony w ten sam sposób. Tym samym upadła wygodna teoria, że wykorzystanie tych błędów jest zbyt trudne, by ktokolwiek się go podjął.

To ważne dla wszystkich, którzy prowadzą strony internetowe, i dla każdego, czyje dane się na nich znajdują. PHP działa u podstaw WordPressa, Drupala, Joomli i większości usług hostingu współdzielonego, a te luki mogą pozwolić osobie bez konta na wykonywanie poleceń na serwerze. Od czasu udostępnienia poprawek głównym argumentem za zwlekaniem było to, że publicznie podejmowane próby ataków kończyły się niepowodzeniem. Oba te przypadki podważają ten argument.

Wyzwanie o nazwie Steal My Bitcoin pojawiło się na osobnej stronie internetowej, a jego ogłoszenie opublikowano na forum. Twórca, występujący jako cloudlandsdev, napisał: „Zrobiłem to, bo ciekawi mnie, czy ktoś wpadł już na to, jak naprawdę wykorzystać tę lukę RCE w PHP. Ostatnie dni spędziliśmy, panikując. Miłej zabawy!”. Pula nagrody wynosiła początkowo około 502 dolarów, a dzięki darowiznom wzrosła do 0,02511679 BTC, czyli 2 021,22 dolarów w chwili jej odebrania — około 19 godzin po uruchomieniu wyzwania, jak podaje Tom’s Hardware. Serwer ugiął się pod ruchem generowanym przez próbujących, a ograniczona przestrzeń dyskowa sprawiła, że nie można było zachować wszystkich logów.

KillaBoi opublikował następnie na GitHubie proof of concept. Mark Maunder, założyciel firmy zajmującej się bezpieczeństwem WordPressa Wordfence, nazwał opis „zdecydowanie najlepszym wyjaśnieniem, jakie zobaczycie, dlaczego wykorzystanie #php2shell jest tak trudne”, zwracając uwagę na precyzję i nakład pracy wymagane przy ataku. Jak się okazało, trudność nie oznaczała jednak, że trzeba długo czekać.

Bardziej niepokojący wynik pochodził spoza samej gry. Adel Karimi, szef zespołu ds. detekcji i reagowania w Perplexity, poinformował, że jego pułapki na atakujących zarejestrowały potwierdzone zdalne wykonanie kodu na serwerze Apache z PHP 8.4.26. „To już potwierdzone RCE z użytecznym odczytem pamięci, a nie tylko awaria, po której pojawia się podejrzany proces” — napisał, jak donosi BleepingComputer. Marcus Hutchins, badacz zagrożeń w Expel, który śledził doniesienia o udanych atakach, określił to jako „zdecydowanie najmocniejsze potwierdzenie wykorzystania php2shell w rzeczywistych atakach, jakie dotąd widziałem”. Wcześniej Cloudflare, watchTowr, Patchstack i inne firmy zajmujące się bezpieczeństwem odnotowywały wyłącznie nieudane próby, a zespół wywiadu o zagrożeniach Amazona zaobserwował skanowanie już cztery dni przed udostępnieniem poprawek.

Żaden z tych przypadków nie oznacza, że jutro padnie każdy niezałatany serwer. Odzyskany przez KillaBoi klucz nie pasował do adresu portfela podanego na stronie; organizator nazwał to błędem w konfiguracji i zapowiedział, że środki zostaną przelane — podał Cointelegraph. Serwis poświęcony bezpieczeństwu Cyberpress zwraca zaś uwagę, że publicznie dostępne dowody potwierdzają odzyskanie klucza, a nie kradzież nagrody. Opublikowany exploit jest ponadto dostosowany do konkretnej kompilacji PHP i nie działa na innych kompilacjach tej samej wersji, więc nie jest narzędziem typu „kliknij i gotowe”. Nie można już jednak bronić się twierdzeniem, że nikomu nie udało się go uruchomić.

Problem ma zasięg globalny. Agencje rządowe w Holandii, Australii, Japonii i Finlandii wyłączyły krytyczne strony internetowe na czas przygotowywania poprawek — podał Cointelegraph. Według danych z Shodana zebranych przez firmę zajmującą się bezpieczeństwem Mallory około 884 tys. hostów dostępnych z internetu informuje o wersji PHP, dla której nie są już wydawane oficjalne poprawki. To 59% z około 1,5 mln hostów ujawniających taką informację — podaje Notebookcheck. Są to dane z banerów, a nie potwierdzone przypadki infekcji, ponieważ dystrybucje Linuksa często łatają stare pakiety bez zmiany numeru wersji.

Dla właścicieli stron sposób rozwiązania problemu pozostaje ten sam. Załatane wersje to PHP 8.5.12, 8.4.27, 8.3.36 i 8.2.35, opublikowane 21 października w związku z lukami CVE-2026-109618 i CVE-2026-109619, z których każda otrzymała ocenę 9,2 na 10. W przypadku hostingu współdzielonego aktualizację przeprowadza dostawca usługi, a nie użytkownik za pomocą aktualizacji WordPressa czy wtyczki. Warto więc zapytać dostawcę, jaką kompilację PHP obsługuje strona i kiedy została załatana. Amerykańska agencja ds. cyberbezpieczeństwa CISA zaleciła organizacjom, które nie mogą zainstalować aktualizacji albo nadal korzystają z PHP 8.1 lub starszego, wyłączenie tych systemów do czasu rozwiązania problemu.

Kolejny problem już się pojawił. W piątek zespół PHP opublikował obejście dotyczące trzeciej luki umożliwiającej zdalne wykonanie kodu — CVE-2026-115560 — dla której nie ma jeszcze poprawki. Dotyczy ona wyłącznie systemów „z nietypowym połączeniem konfiguracji i kodu aplikacji”. Do czasu wydania poprawki twórcy PHP zalecają wyłączenie ustawienia session.upload_progress, czyli zastosowanie tego samego rozwiązania, które rekomendowali przed udostępnieniem poprawek PHP2Shell. Wsparcie bezpieczeństwa dla PHP 8.2 zakończy się 31 grudnia 2026 roku, a serwery, które nigdy nie przeszły z wersji 8.1, już dawno przekroczyły ten termin.

Tagi: , , , , ,

Dodaj nas w Google

Dyskusja

Jest 0 komentarzy.