История борьбы с трояном- файлошифровальщиком – поход в центр управления за ключом / Хабрахабр. Введение. История началась с того, что в начале дня раздался звонок. Взволнованный голос клиента рассказал, что комп не загружается, документы не открываются, а вместо привычного рабочего стола на экране угрожающая надпись с приблизительным смыслом: «заплати нам деньги и мы вернем тебе рабочий стол и документы». Знакомая многим ситуация: вероятнее всего на компьютере очередной винлокер, работы по выпилу вымогателя займут максимум 1.
Ради удаления винлокера за 1. Получил системник, включил. Загрузился виндовс ХР. Появился рабочий стол – никаких признаков винлокера, с первого взгляда все нормально. Однако, попытавшись открыть первый попавшийся документ с рабочего стола, получил в ответ «страшное» сообщение: Естественно, как и любой человек, который не первый раз сталкивается с троянами- вымогателями, я отнесся к данному тексту с изрядной долей скепсиса. Наверняка, подумал я, здесь все дело в обычной программе, которая перенастроила на себя обработку открытия файлов с расширением . Чтобы убедиться в этом предположении и поймать программу- хулигана, загрузил компьютер с образа для восстановления системы, открыл диск C в файловом менеджере и увидел совсем нерадостную картину: все файлы на локальных дисках внезапно приобрели расширение M5b. Fu, а их содержимое стало похоже на результат работы генератора случайных чисел. От прежнего содержимого файлов не осталось ни следа. Итак, сообщение о том, что файлы зашифрованы оказалось чистой правдой. Теги: ex4-to-mq4 decompiler and dll viewer rar. Права доступа: Только чтение. Скачать с хорошего файлообменника. ДЕКОМПИЛЯТОР.rar (1.2 МБ). Загружен 21 сентября 2015, 19:21. Декомпилятор исходного кода Правовые вопросы. 1С свой программный код зарегистрировала, Вы, думаю нет. Рады Вам сообщить, что у нас открылся Torrent трекер >> BRODIM.COM. Зашифрованными оказались все файлы размером менее 2 гигабайт с расширением doc, xls, dbf, avi, jpg, txt, rar, zip – в общем все, что может представлять ценность для владельца информации. Среди зашифрованных файлов – база 1. С и важные документы. Если 1. С еще можно было восстановить из свежего бэкапа, то пропажа ценных документов и фотографий могла бы сильно пошатнуть здоровье клиента. Таким образом, выбора не было – пришлось взяться за расшифровку данных. Этап 1. Поиск алгоритма шифрования. Опять же, будучи от природы слегка недоверчевым, решил, несмотря на явное указание алгоритма шифрования в сообщении, самостоятельно определить каким криптоалгоритмом зашифрованы данные в файлах (вдруг все не так страшно, как написано). Сначала проверяем самые простые и распространенные шифры замены: шифр цезаря, XOR и т. Для анализа берем два файла dbf: один зашифрованный из зараженной системы, другой нетронутый из свежего бэкапа и сравниваем их друг с другом. На примитивный шифр замены нам могут указать области исходного dbf- файла, заполненные идущими подряд одинаковыми байтами, например со значением 0. Благо файлы dbf не отличаются высокой плотностью хранимой информации, и нулевых байтов в них предостаточно. На рисунке видны фрагменты исходного файла с несколькими нулями подряд и то, во что эти нули превратились в зашифрованном файле. Простые поточные шифры замены, где символ открытого текста преобразовывается в один и тот же символ криптограммы, отпали сразу. Более глубокий анализ показал, что простой посимвольный XOR открытого текста с ключевым словом тоже не имеет здесь место. В конце концов, удалось выяснить, что шифр блочный, без обратной связи и гаммирования. Длина блока – 1. 6 байт. Таким образом, пришлось принять как гипотезу использование шифра RC6, указанного в сообщении от создателей трояна. Впоследствии гипотеза подтвердилась, а именно шифрование выполнено алгоритмом RC6 с длиной блока 1. Авторы реализации даже не озаботились о шифровании неполных блоков, менее 1. Итак, алгоритм известен. Осталось дело за малым: найти ключ. Этап 2. Поиск ключа. Для поиска ключа найдем сначала тело вредоносной программы (или то, что от этого тела осталось). В каталоге %SYSTEMROOT%\System. H3w. 2DWg. exe). Оба файла являются частью заразившего систему троянца, однако ни один из файлов на момент обнаружения (апрель 2. На данный момент некоторые антивирусы опознают троянскую программу верно как Trojan. Encoder. 1. 36 (Dr. Web) или как Win. Filecoder. AF (ESET- NOD3. Вот ссылка на virustotal. Раз троянец не опознается антивирусами, придется препарировать его самому. Вооружившись hiew. Olly. Dbg и виртуальной машиной, приступил к вскрытию. Вскрытие показало, что файлы троянца не упакованы, не зашифрованы и написаны на Borland Delphi. Внутри также были обнаружены ссылки на зашифрованные файлы account. SYSTEMROOT%\System. Путем отладки в недрах exe- файлов также был найден некий ключ в виде строки символов «1kv. С помощью этого ключа троянец расшифровывал файл lock. Осталось понять каким образом данная строка преобразуется в ключ RC6. Длина ключа RC6 – от 1. В качестве первой попытки попробуем преобразовать каждый символ в 8- битное представление через ASCII- код. В результате получаем ключ длины 3. Пишем программу на С++, подаем программе на вход ключ и файл lock. Запускаем процесс расшифровки. Файл не расшифровался. Какие остались варианты? Самый долгий и кропотливый – выдернуть алгоритм формирования ключа отладчиком из исполняемого файла. Оставил этот вариант на крайний случай из- за его избыточной трудоемкости. Вместо этого немного подумаем и поставим себя на место создателей вредоносной программы. Вряд ли авторы трояна самостоятельно реализовывали алгоритм шифрования. С большой вероятностью готовая реализация алгоритма на дельфи была скачана из интернета. Также вряд ли использовались готовые скомпилированные библиотеки, в них криптоалгоритм был бы реализован гораздо качественнее и уж точно не оставлял бы незашифрованными блоки менее 1. Делаем вывод, что в троянце скорее всего использовалась студенческая учебная программа, исходники которой злоумышленники стащили из интернета. Залазим в Гугль и ищем что- нибудь по ключевым словам Delphi RC6. Находим ссылку http: //www. Так и есть, модуль на Дельфи, который шифрует файл блоками без гаммирования и оставляет незашифрованным последний блок длиной менее 1. Берем из реализации особенности формирования ключа, переписываем их на С++, компилируем программу расшифровки. Скармливаем программе 3. Остался вариант с Olly. Dbg и телом троянца. Не буду утомлять подробностями получения секретного алгоритма, по которому формировался ключ, тем более что сама процедура заняла не так уж много времени. Строка символов с ключом считывалась из ресурсов файла в кодировке ASCII (3. Delphi) преобразовывалась в UTF- 1. LE – получалось 6. И этот результат уже скармливался известному, благодаря исходникам на дельфи, алгоритму получения ключа. Длина ключа на выходе — 5. Полученным ключом файл lock. Внутри файла обнаружился ключ к файлам config. Файл account. cfg содержал пару дополнительных ключей (в том же формате строки из 3. Деньги@Mail. ru, чей- то e- mail адрес, сведения о зараженном компьютере и еще какую- то мелкую информацию. В файле config. cfg, помимо всего прочего, был ip- адрес компьютера, который, по всем признакам, являлся управляющим сервером вредоносной программы. Однако, как это ни печально, ни один из найденных в файлах ключей не подходил для расшифровки файлов на дисках зараженного компьютера. Еще одно утверждение злоумышленников оказалось правдой: ключ для расшифровки файлов действительно не хранится на компьютере. Осталась последняя надежда – вытрясти ключ из управляющего сервера вредоносной программы. Согласно сообщению от авторов троянца, ключ хранится там в течение 7 дней, именно в этот срок его нужно добыть, иначе расшифровать файлы не получится – подбор 3. Этап 3. В центр управления за ключом. Перед тем, как отправиться в центр управления, необходимо выяснить несколько особенностей его работы, а именно: какой транспортный протокол используется для соединения с сервером, шифруется соединение или нет, как клиент и сервер обмениваются данными между собой. Для решения этих вопросов самым очевидным вариантом было внедрить троянца на чистую систему и пронаблюдать за его сетевым обменом с сервером управления. На виртуальную машину была установлена чистая операционная система, на основной машине запущен Wire. Shark, на виртуальной – троянец. Выяснилось, что для связи используется незашифрованное соединение через TCP- порт 8. При первичном заражении на сервер уходят данные компьютера (ОС, процессор, память), а с сервера скачиваются дополнительные модули троянца, а также dll- файлы библиотеки SSLeay, которые затем используются для работы с сайтом Деньги@Mail. Вероятнее всего при отправке на сервер данных компьютера, происходит создание учетной записи компьютера на сервере (на это был намек в сообщении от авторов, в разделе о переустановке операционной системы). Вместе с учетной записью предположительно создается уникальный ключ, которым впоследствии шифруются данные на жестком диске. Вот этот ключ и необходимо добыть. При повторном запуске троянца на зараженном компьютере также происходит обращение к управляющему серверу. При этом троянец уже не сообщает данные о компьютере, а предоставляет серверу ключ, который хранится в файле account. Именно этот ключ и является идентификатором зараженного компьютера и именно с помощью этого ключа мы и будем получать ключ для расшифровки файлов. Обмен с управляющим сервером ведется в формате: «команда клиента – ответ сервера». Покопавшись в недрах вредоносной программы, вытащил список допустимых команд: mail, rekey, key, check. Из Wire. Shark’а узнал формат клиентских команд и параметров. Настало время экспериментов. Зайдя на сервер с помощью telnet и представившись зараженным компьютером (команда client. Клиент получил обратно все свои файлы и рабочий стол впридачу. Заключение. Отнюдь не считаю себя вирус- аналитиком и думаю, что в данном случае на пути к победе мне помогли несколько очевидных промахов злоумышленников. Во- первых, авторы вредоносной программы сами раскрыли много важной информации в своем сообщении пользователю: алгоритм шифрования и тот факт, что ключ хранится на сервере. Во- вторых, обмен с сервером производился по открытым каналам с помощью достаточно простого текстового протокола – это существенно ускорило процесс получения ключа.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |