Cryptolocker

Cryptolocker

Пугающие обои Cryptolocker’а

Сервис расшифровки файлов


Поведение не свойственное Cryptolocker:

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

Тем не менее Cryptolocker - это не примитивный Winlocker, требующий 200 рублей на счет мобильника.

Поведение свойственное Cryptolocker:
  • маскировка исполняемого файла под PDF отчет, от якобы служб доставки Fedex или UPS, с именем вроде FORM_1088.pdf.exe и иконкой, очень и очень похожей на настоящую PDF’овскую;
  • генерация для себя уникального имени файла на основе собранной в реестре различной информации о системе;
  • хранение в каталоге %AppData% (или %LocalAppData% в Win XP) с атрибутом скрытого файла;
  • запуск одновременно с запуском системы, для этого троян создает в реестре в ветках автозапуска два ключа (ключ с символом звездочки позволяет запускать зловред при старте системы в Safe Mode), в которых прописан путь к Criptolocker’у на диске:
    • HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunCryptoLocker
    • HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce*CryptoLocker
  • мониторинг состояния ключей в реестре и их восстановление в случае необходимости;
  • предотвращение остановки своего процесса путем запуска самого себя в качестве второго дублирующего процесса, который контролирует наличие основного и в случае необходимости повторно его запускает (прекратить это безобразие можно, выбрав в диспетчере задач «Завершить дерево процессов» для основного процесса Cryptolocker’а);
  • связь с командными серверами, доменные имя которых генерируются по специальному алгоритму (в случае неудачи подключения генерация доменного имени и попытки подключиться продолжаются);
  • генерация доменных имен из набора латинских букв в количестве от 12 до 15 в следующих доменных зонах: .org, .co.ua, .info, .com, .net, .biz, .ru (поочередно), на основе системного времени, получаемого путем вызова API GetSystemTime;
  • генерация на сервере пары ключей для алгоритма шифрования RSA–2048:
    • закрытый ключ, предназначенный для расшифровки, остается храниться на сервере;
    • открытый, предназначенный для шифрования, передается на компьютер жертвы, где сохраняется в реестре в специально созданном разделе KEY_CURRENT_USERSoftwareCryptoLocker_0388 с именем параметра PublicKey (в этом же разделе создается параметр с именем VersionInfo, в котором содержится информация о текущей версии трояна, IP-адрес командного сервера и время установки);
  • получение списка всех дисков в системе с помощью функции GetLogicalDrives, далее с помощью API GetDriveType определяются диски, с которыми можно работать (Cryptolocker шифрует файлы на дисках, имеющие тип DRIVE _ FIXED, DRIVE _ REMOTE (то есть на расшаренных сетевых дисках, поэтому резервные копии на таких носителях тоже могут быть под угрозой) и DRIVE _ REMOVABLE);
  • поиск нужных файлов на всех доступных дисках поочередно с применением API-функций FindFirstFile и FindNextFile (отбор нужных файлов ведется по 72 маскам);
  • использование возможностей, предлагаемых компанией Microsoft в виде CryptoAPI и стандартного криптопровайдера Microsoft Enhanced RSA and AES Cryptographic Provider;
  • файлы шифруются действительно стойкими алгоритмами, и без приватного ключа расшифровать их на данный момент практически не представляется возможным (пока не произойдет соединение с командным сервером, Cryptolocker ничего шифровать не будет, поэтому можно просто закрыть все ненужные и подозрительные сетевые соединения и отслеживать вновь появившиеся с помощью какого-нибудь брандмауэра):
    1. cодержимое файла криптуется с помощью алгоритма AES–256, ключ для которого генерирует API-функция CryptGenKey с параметром CALG _ AES _ 256;
    2. после шифрования файла этот AES-ключ шифруется алгоритмом RSA–2048 с помощью открытого ключа, полученного с командного сервера (и заблаговременно сохраненного в реестре), далее с открытого RSA-ключа снимается SHA-хеш (нужен для того, чтобы, во-первых, избежать повторного шифрования файлов, а во-вторых, чтобы найти на командном сервере нужный закрытый ключ для расшифровки файла в случае, если жертва все-таки заплатила денежки) длиной 20 байт;
    3. все это дело записывается поверх старого, незашифрованного содержимого файла в определенной последовательности: сначала пишется 20 байт хеша RSA-ключа, далее 256 байт зашифрованного AES-ключа, после чего пишется сам зашифрованный файл (в итоге длина зашифрованного файла увеличивается на 276 байт по сравнению с исходным, незашифрованным файлом);
    4. после того как файл зашифрован, Cryptolocker пишет путь и имя зашифрованного файла в реестр, в ветке: HKEY_CURRENT_USERSoftwareCryptoLocker_0388Files.
  • показ окна красного цвета с надписью «Your personal files are encrypted!», обратным счетчиком времени, который начинается с 72 часов, и требованием оплаты (если по истечении трех дней троян оплаты так и не дождался, он убирает все, что записал в реестр, меняет обратно обои и самоуничтожается, оставив жертву один на один с зашифрованными файлами) за получение приватного ключа для расшифровки файлов (в случае неуплаты в срок Cryptolocker грозит удалить (реально ключ не удаляется и возможность расшифровать файлы остается, правда, за несколько возросшее вознаграждение) приватный RSA-ключ с командного сервера и, соответственно, невозможностью расшифровки файлов в дальнейшем);
  • оплата битокоинами и с помощью платежной системы MoneyPak;
  • предложение (в виде новых обоев рабочего стола с устрашающими надписями (путь к этим обоям прописывается в реестре в том же разделе, где лежит открытый RSA-ключ и информация о версии зловреда, в параметр с именем Wallpaper)) после удаления файла трояна повторно скачать и запустить Cryptolocker для проведения оплаты и расшифровки файлов;
  • сервис по онлайн-расшифровке файлов, его можно найти по тому же URL, с которого в тексте на устрашающих обоях предлагается скачать троян (после заливки на него зашифрованного файла заказу присваивается идентификационный номер и производится поиск открытого RSA-ключа на всех командных серверах, после того как ключ будет найден, появится надпись с суммой и Bitcoin-кошельком, куда и нужно перевести средства за получение приватного ключа).


Cryptolocker на жестком диске жертвы


Автозапуск Cryptolocker’а в реестре


Генерация доменного имени (в нижней части выделено сгенерированное доменное имя olphjvttuqdxm.com)


Неудачные попытки присоединения к командному серверу


Параметры PublicKey и VersionInfo в реестре


Маски для отбора файлов


Процесс шифрования файла TestDoc.rtf


Внутренности незашифрованного (вверху) и зашифрованного (внизу) файла TestDoc.rtf


Имя и путь зашифрованного файла в реестре