Virus Bulletin :: Как это работает: стеганография скрывает вредоносные программы в файлах изображений

  1. Лорд Мосуэла CYREN Copyright © 2016 Virus Bulletin Вступление
  2. Обзор: «Новая и улучшенная» техника сокрытия
  3. Как это устроено
  4. Шаг 1: Первоначальная установка вредоносного ПО
  5. Шаг 2: Загрузка изображения с зашифрованным сообщением
  6. Резюме
  7. Рекомендации

Лорд Мосуэла

CYREN

Copyright © 2016 Virus Bulletin

Вступление

Одна из самых коварных новых технологий запутывания, выявленных нашей исследовательской группой в прошлом году, которые, по нашему мнению, будут расти в популярности, использует новую «цифровую стеганографию», или
техника сокрытия, чтобы избежать обнаружения обычными средствами безопасности. Цифровая стеганография - это метод сокрытия файла, сообщения, изображения или видео в другом файле, сообщении, изображении или видео. В этом случае этот метод используется вредоносным программным обеспечением, широко известным как Stegoloader (определяемое CYREN как W32 / Gatak), которое является трояном или загрузчиком для кражи данных и доставки вымогателей.

Обзор: «Новая и улучшенная» техника сокрытия

Gatak / Stegoloader является хорошей иллюстрацией продолжающейся гонки вооружений между авторами вредоносных программ и вашей интернет-безопасностью. Предшественник новой техники цифровой стеганографии был замечен в Duqu [ 1 ] вредоносное ПО (обнаружено в 2011 году), которое было обнаружено для передачи зашифрованных данных, добавленных в файл изображения (.JPG). Зевс / Збот [ 2 ] вредоносная программа также использует аналогичную тактику, добавляя свой зашифрованный файл конфигурации в файл изображения для эксфильтрации. Однако эту технику оказалось легко заблокировать с помощью правил фильтрации содержимого, поскольку файл конфигурации просто добавляется к файлу изображения.

Вредоносная программа Gatak / Stegoloader, появившаяся в 2015 году [ 3 ], улучшает этот метод стеганографии - он полностью скрывает свой вредоносный код в файле изображения (.PNG). До сих пор мы видели, как эта угроза связана с инструментами взлома лицензий на программное обеспечение, которые (незаконно) используются для создания лицензионных ключей программного обеспечения (как правило, для расширения пробных версий программного обеспечения или разблокировки функций программного обеспечения без оплаты), но существует высокая вероятность того, что новые механизмы распространения будут появляются.

Как это устроено

Рисунок 1 показан пример Gatak (SHA256: 0a58b98205c8542ae0516b4fe3ff8a4a6d6e9c199ec2d4e0de0aa8f9e1290328), в котором два исполняемых файла включены в сжатый архив.

Рисунок 1: Пример Gatak с двумя исполняемыми файлами в сжатом архиве Рисунок 1: Пример Gatak с двумя исполняемыми файлами в сжатом архиве.

После выполнения файла установщика запускается инструмент взлома лицензий на программное обеспечение (1237.exe) и окно, показанное в фигура 2 отображается - используется для генерации программных ключей для конкретной программы. Конечно, вредоносная программа Gatak (9604.exe) также выполняется, но без ведома пользователя.

Рисунок 2: инструмент для взлома Рисунок 2: инструмент для взлома.

Установка вредоносного ПО сложна, состоит из множества этапов, но состоит из двух основных частей:

  1. Первоначальная расшифровка и установка вредоносной программы.
  2. Загрузка изображения и использование данных скрытого изображения для установления зашифрованной связи с сервером C & C, а также для загрузки / загрузки данных и / или других вредоносных программ.

Шаг 1: Первоначальная установка вредоносного ПО

Вредоносная программа Gatak сначала собирает свой код в память путем дешифрования девяти сегментов зашифрованного кода, встроенного в саму вредоносную программу, а затем передает свое выполнение дешифрованному коду в памяти. Рисунок 3 показывает размер и виртуальный адрес девяти частей зашифрованного кода, которые включены в три раздела вредоносных программ: .data, .adata и sync.

Рисунок 3: Размер и виртуальный адрес девяти частей зашифрованного кода, которые включены в три раздела вредоносной программы.

Ключ для расшифровки имеет размер 2 байта и жестко запрограммирован в теле вредоносного ПО. Расшифровка выполняется путем чередования двух байтов в ключе дешифрования и вычитания их из зашифрованного кода:

  1. Вычтите байт зашифрованного кода, используя ключ байта.
  2. Сдвиньте клавишу байта и используйте другую клавишу байта.
  3. Сохраните расшифрованный байт в выделенном буфере.
  4. Увеличить указатель на следующий байт зашифрованного кода.
  5. Увеличить указатель на следующий байт выделенного буфера.
  6. Цикл на # 1.

Затем расшифрованный код перестраивает себя, сначала получая местоположение блока среды процесса (PEB), используя регистр FS: [30]. Затем он получает адрес InLoadOrderModuleList (см. Рисунок 4 ), чтобы найти виртуальный адрес ntdll.dll. Эта процедура используется для создания требуемых адресов импорта API-интерфейсов ZwAllocateVirtualMemory, ZwFreeVirtualMemory и LdrLoadDll, которые используются для загрузки дополнительных библиотек DLL и извлечения из них требуемых API-интерфейсов через их хэши API.

Рисунок 4: Фрагмент кода получения InLoadOrderModuleList Рисунок 4: Фрагмент кода получения InLoadOrderModuleList.

Рисунок 5 показывает список API, собранных с соответствующими им хэшами.

Рисунок 5: Список API, собранных с соответствующими им хэшами Рисунок 5: Список API, собранных с соответствующими им хэшами.

Затем вредоносная программа получает файл ftCreationTime.dwLowDateTime из папки% USERPROFILE% зараженной системы с использованием API FindFirstFileA и сохраняет его в качестве переменной для дальнейшего использования.

Затем он получает ftCreationTime папки Windows, используя API-интерфейсы GetWindowsDirectoryA и FindFirstFileA, и пытается сравнить его с жестко заданным массивом отметки времени Windows . Если совпадение найдено, оно не заразит систему. Он также пытается определить, основана ли система на Linux с уровнем совместимости Windows (Wine), проверяя наличие следующего раздела реестра:

HKEY_CURRENT_USER \ Software \ Wine

Если этот раздел реестра существует, он не будет заражать систему, он будет завершать работу и удалять себя с помощью следующей команды (где %% - путь и имя файла вредоносной программы):

CMD / C SYSTEMINFO && SYSTEMINFO && SYSTEMINFO && SYSTEMINFO && SYSTEMINFO && DEL "% s"

Он пытается получить processID процесса explorer.exe в системе, используя комбинацию API FindWindowA и GetWindowThreadProcessId со следующими параметрами:

  • lpClassName = "Shell_TrayWnd"
  • lpWindowName = NULL

В случае сбоя этого метода он создаст процесс rundll32.exe с помощью следующей команды:

rundll32.exe shell32.dll, Control_RunDLL

Он получает идентификатор процесса только что созданного процесса с помощью API-интерфейсов CreateProcessA и GetProcessId, затем передает его выполнение внедренному коду в системном explorer.exe или недавно созданном процессе rundll32.exe с помощью API CreateRemoteThread и продолжает завершать и удалять себя. из системы.

Вредоносная программа проверяет, установлена ​​ли она уже в системе, используя следующие условия:

  • Нахождение AtomName = "1234554321" с помощью API GlobalFindAtomA
  • Открытие раздела реестра: HKEY_CURRENT_USER \ Software \ Microsoft \ [unique_string_through_hash_of_computer_name]

Как показано в Рисунок 6 вредоносная программа отправляет пошаговое обновление статуса на свой C & C-сервер.

Рисунок 6: Вредоносная программа отправляет пошаговое обновление статуса на свой C & C-сервер Рисунок 6: Вредоносная программа отправляет пошаговое обновление статуса на свой C & C-сервер.

Затем он активирует InternetOpenA с помощью User-Agent:

Mozilla / 4.0 (совместимый; MSIE 8.0; Windows NT 5.1; Trident / 4.0)

и InternetOpenUrlA со следующей структурой строки URL:

Http: //207.36.---.49/report_ [HEX1] _ [HEX2] _ [COUNTER] _ [STATUS]

Куда:

  • [HEX1] - шестнадцатеричная строка имени компьютера
  • [HEX2] - это ftCreationTime.dwLowDateTime папки% USERPROFILE%
  • [СЧЕТЧИК] является счетчиком статуса процедуры
  • [STATUS] является строкой, которая представляет статус используемой процедуры.

Шаг 2: Загрузка изображения с зашифрованным сообщением

Затем вредоносная программа пытается загрузить файл изображения с одного из следующих URL-адресов:

  • Http: //www.imagesup. ��еть /? ди = 1514 --- 3927715
  • Http: // hostthenpost. орг / добавление / a7f5c7e67 ----- 8ff9dbfac6a3f28d3be.png

png

Рисунок 7: Загруженный файл изображения Gatak / Stegoloader, включая скрытые данные.

После загрузки файла изображения и перед тем, как перейти к алгоритму стеганографии для извлечения скрытых зашифрованных данных, вредоносная программа проходит через следующий контрольный список целостности:

  1. Он проверяет, что изображение является файлом PNG, проверяя, что заголовок начинается с байтов «0x89PNG».
  2. Он проверяет, правильно ли он инициализирует Windows GDI + через API GdiplusStartup.
  3. Он проверяет, может ли он создать объект растрового изображения для загруженного изображения для извлечения данных пикселей, используя API-интерфейсы CreateStreamOnHGlobal и GdipCreateBitmapFromStream.

Затем вредоносная программа извлекает скрытые зашифрованные данные из изображения, получая пиксельные данные изображения. Пиксельные данные служат переменными в алгоритме генератора потоков для формирования скрытых зашифрованных данных. «Данные пикселя» - это цвет пикселя в позиции (x, y) в растровом объекте. Вредоносная программа использует комбинацию API GdipGetImageHeight, GdipGetImageWidth и GdipBitmapGetPixel для получения пиксельных данных изображения.

Рисунок 8: Скрытый зашифрованный поток изображения.

Он расшифровывает зашифрованный поток на изображении с помощью алгоритма RC4 и жестко запрограммированного восьмибайтового ключа со смещением 0x19 введенного кода в файле explorer.exe или rundll32.exe (см. Описание ниже).

Описание ниже)

Рисунок 9: Начало введенного кода.

Затем он проверяет CRC32 дешифрованного потока, чтобы проверить правильность разрешенного потока. Этот разрешенный поток является шелл-кодом. Шеллкод содержит:

  • Код команды, расположенный со смещением 0x4, который инструктирует введенный удаленный код о том, как обрабатывать скрытые данные.
  • Длина (расположенная со смещением нулевого размера DWORD) и значение CRC32 (расположенное со смещением [length_of_shellcode + 4] размер DWORD) шелл-кода, который служит переменной для его функции проверки CRC32.
  • Жестко закодированный байтовый ключ (расположенный со смещением 0xb), который будет использоваться для шифрования / дешифрования передаваемого сообщения на сервере C & C вредоносного ПО.
  • Жестко закодированный идентификатор ключа байта шелл-кода изображения, расположенный со смещением 0x21.

Жестко закодированный идентификатор ключа байта шелл-кода изображения, расположенный со смещением 0x21

Рисунок 10: Скрытый дешифрованный поток изображения.

Коды команд и их описания следующие:

  • 0x10: выполнить код полезной нагрузки в памяти
  • 0x20: создать и выполнить код полезной нагрузки в [двоичный файл]
  • 0x21: создать, затем выполнить, а затем удалить код полезной нагрузки в [двоичный файл]

где [двоичный файл] имеет форму% temp% \ ~ XX [random_number] .tmp.

Код оболочки изображения - это бэкдор, который связывается со следующими серверами управления и контроля:

  • Http: //deid.sharpfans. орг / калибр / вид? присутствует = 09 --- 67
  • Http: //bpp.bppharma. ком / калибр / вид? присутствует = 09 --- 67
  • Http: //reader.lifeacademyinc. ком: 80 / поощрение / помощь указали = 85 ---- 4
  • Http: //5.135.233. 16: 80 / файл / фото ручки = 68--77
  • Http: //cod.chezsimone971. ком: 80 / поощрение / помощь указали = 85 ---- 4

Сообщение, передаваемое шеллкодом изображения, шифруется алгоритмом RC4 с добавлением 16-байтового идентификатора ключа. Идентификатор ключа служит ключом RC4 для зашифрованного сообщения. Структура дешифрованного сообщения, отправленного на сервер C & C, показана в Рисунок 11 ,

Рисунок 11: Структура дешифрованного сообщения, отправленного на сервер C & C.

  • @ Offset 0 = 16-байтовый идентификатор ключа шелл-кода.
  • @ Offset 0x10 = 4-байтовое значение CRC32, начиная со смещения 0x14 до конца сообщения.
  • @ Offset 0x14 = 16-байтовый идентификатор команды шелл-кода, сгенерированного случайным образом с помощью API-интерфейса SystemFunction036.
  • @ Offset 0x24 = 16-байтовый идентификатор функции шелл-кода, который генерируется случайным образом с помощью API-интерфейса SystemFunction036 в начале выполнения шелл-кода.
  • @ Offset 0x34 = байтовый заголовок для сообщения.
  • @ Offset 0x35 = 8-байтовый идентификатор сеанса сообщения, который инициализируется нулем при первом контакте с сервером управления и контроля.
  • @ Offset 0x3D = BOT команда.
  • @ Offset 0x3E = флаг успеха / ошибки, установлен на ноль для успешной операции.
  • @ Offset 0x3F = информационный флаг, устанавливается в единицу, если длина информации превышает 1024 байта.
  • @ Offset 0x40 = длина информации.
  • @ Offset 0x44 = начало информации.

Информация, превышающая 1024 байта, будет сжата с помощью алгоритма LZMA.

Информация, отправляемая на сервер C & C, содержит конфиденциальную информацию, украденную из зараженной системы, в следующем формате: "{" [Описание информации] ":" [Кодированная информация Base64] "}".

Рисунок 12 показывает структуру дешифрованного сообщения, полученного от C & C-сервера.

Рисунок 12: Структура дешифрованного сообщения, полученного от сервера C & C.

  • @ Offset 0 = 4-байтовое значение CRC32, начиная со смещения 4 и до конца сообщения.
  • @ Offset 4 = 16-байтовый идентификатор команды C & C-сервера.
  • @ Offset 0x14 = байтовый заголовок для сообщения.
  • @ Offset 0x15 = 8-байтовый идентификатор сеанса сообщения.
  • @ Offset 0x1D = BOT команда.

Примеры команд BOT включают, но не ограничиваются следующим:

  • 0x01 = Нет операции, просто свяжитесь с сервером C & C
  • 0x02 = Выполнить полезную нагрузку через шелл-код или [двоичный файл]
  • 0x03 = Получить системную информацию (например, InternalIP, DomainName, Processes и т. Д.)
  • 0x04 = Получить программное обеспечение установлено
  • 0x05 = Получить историю веб-браузера
  • 0x64 = Выполнить шеллкод
  • 0xDC = Получить временную метку папки Windows.

Резюме

Gatak / Stegoloader может устанавливать другие модули или вредоносное ПО для кражи конфиденциальной информации. Некоторые варианты были найдены для установки семейства вредоносных программ Vundo, которое устанавливает рекламное, вымогательное и вредоносное ПО. Усовершенствованная техника цифровой стеганографии, демонстрируемая этой вредоносной программой, несомненно, будет в дальнейшем принята и / или усовершенствована киберпреступниками благодаря ее эффективности в скрытии кода.

Рекомендации

[1] https://en.wikipedia.org/w/index.php?title=Duqu&oldid=712083675 ,
[2] https://en.wikipedia.org/w/index.php?title=Zeus_(malware)&oldid=711753219 ,
[3] http://www.securityweek.com/information-stealing-malware-%E2%80%9Cstegoloader%E2%80%9D-hides-image-file ,

Похожие

Обзор Nokia C6
Аккумулятор емкостью 1200 мАч в Nokia C6 меньше, чем вы обычно получаете в смартфонах, и это действительно показывает. Хотя Nokia предлагает до 11 часов в режиме разговора и до 400 часов в режиме ожидания, мы думаем, что это, вероятно, немного амбициозно, особенно в режиме разговора.
Как сделать заявку 300+ онлайн
Прием заявок на хорошее начало с помощью традиционных (бумажных) средств лично в офисе / центре социальной защиты, подходящем по месту жительства или по почте, начнется 1 августа. Внимание! Заявка отправляется в электронном виде не могут быть переданы детям, помещенным в приемные
Фрезерный станок по дереву - посмотрите, как он работает
... как работает фрезерный станок - незаменимое устройство для продвинутой и промышленной обработки древесины. Из этой статьи вы узнаете: Что такое фрезерный станок по дереву? Какие типы фрезерных станков Как работает дерево фрезерный станок Как использовать фрезерный станок по дереву
Мы покупаем планшет из Китая. Где и как это сделать?
... это нравится. Была ли у вас возможность совершать эти покупки в интернет-магазинах, расположенных за границей нашей страны? Здесь число людей, вероятно, значительно меньше. Кто-нибудь из вас покупал товары прямо из Китая? Таких людей очень мало. Поэтому, если вы хотите узнать, можно ли и как привезти планшет из Азии, обязательно прочитайте эту статью. Читать абсолютно >>
Как проверить скорость ваших USB-накопителей
После прочтения моей статьи Скорость USB 3.0 Марк Голд спросил: «Как я могу проверить скорость моих USB-устройств, как 2.0, так и 3.0?» Вы можете сидеть перед компьютером с секундомером и узнать, сколько времени потребуется, чтобы переместить файл размером 100 МБ с внутреннего диска на внешний. Но это утомительно, склонно к ошибкам и не так точно. Лучше
Скачать Skype для Windows XP
Чтобы скачать Скайп для Виндовс XP, вам понадобится всего несколько минут времени. После этого вы сможете начать пользоваться всеми потрясающими возможностями программы. За годы своего существования разработчики программы успели порадовать своих клиентов не одной версии Скайпа. Последняя версия программы имеет
Обзор Nokia Lumia 830: наш обзор
Nokia Lumia 830 - это недорогой высококачественный смартфон, но он также воплощает лебединую песню для финского бренда. После приобретения Microsoft имя Nokia исчезло. Отныне новые смартфоны американского гиганта будут продаваться по бренд Microsoft Lumia , Первый из них является Lumia 535
Как настроить Аллегро? - Справочный центр Shoper®
... как вы хотите загружать заказы из Allegro и какие действия следует предпринять в отношении клиента: Автоматическая загрузка продаж от Allegro - выбор этой опции позволит автоматически загружать заказы с аукциона в магазин. Загруженные заказы с аукциона будут отмечены значком лапы Отправьте электронное письмо с подтверждением принятия заказа - выбор этой опции будет означать, что когда покупатель приобретает товар в Allegro,
Динамическая реклама как источник хорошего качества
... этому вам не нужно включать списки ключевых фраз и заголовков объявлений при создании групп объявлений. Все, что вам нужно сделать, это предоставить некоторые параметры сайта, из которых Google будет получать содержимое заголовка текстового объявления. Продукт хорошо работает в случае электронной коммерции, туристических веб-сайтов (различные продукты и услуги) и на веб-сайтах с большим количеством подстраниц о различном контенте, таких как сайты объявлений. Использование
Как раскрутить сайт?
Много раз в блоге мы пытались убедить вас, насколько важен контент, размещенный на сайте. Сегодня мы опишем, как продвигать сайт и какие каналы распространения контента будут лучшими. #wiemyjak продвигать ваш сайт В записи Содержание король
Ошибка 404: файл не найден - откуда пришло это сообщение?
Конечно, не один или два раза на вашем мониторе, сообщение об ошибке 404 или ошибка 404 появилось в окне браузера. Как вы себя вели тогда? Вы нажали обновить? Вы проверили правильность введенного интернет-адреса? Или, может быть, вы начали проверять интернет-соединение? Чтобы разобраться с сообщением 404 not found и отреагировать соответствующим образом, вам необходимо знать, что стоит за этой формулировкой и каковы могут быть причины ошибки. #wiemyjak

Комментарии

Типы и конструкция фрезерных станков - как это работает?
Типы и конструкция фрезерных станков - как это работает? Если вы хотите заняться фрезеровкой древесины , вам необходимо ознакомиться
Как они находят интересные акции?
Как они находят интересные акции? В большинстве случаев достаточно знать несколько простых приемов, чтобы перейти от уровня мечтателя к уровню реального путешественника. Большинство наших советов не помогут вам открыть Америку, но если вы терпеливы, вы можете сэкономить много. Многие люди смотрят неправильно и бронируют авиабилеты в последнюю минуту. Следуйте инструкциям ниже, и прежде чем оглянуться назад, вы окажетесь в самолете. Что слишком много, это вредно для здоровья
Но как это сделать легко?
Но как это сделать легко? Ответ, конечно же, через USB-флешку (хотя есть три варианта смартфона, предлагающих свой собственный взгляд на ПК в карманной динамике). С версией Ubuntu (или большинство других дистрибутивов Linux) установлен на вашей флешке Запуск Linux с USB: вы делаете это правильно?
Я был удивлен, как мало помощи для этой программы, но, возможно, программа проще, чем кажется?
Я был удивлен, как мало помощи для этой программы, но, возможно, программа проще, чем кажется? Проект Поскольку это инструмент для анимации, я решил создать какое-то простое объявление с точкой доступа «нажмите здесь». Я хотел анимировать стрелку курсора и заставить ее отражаться от горячей точки, когда
Как долго работает батарея?
Как долго работает батарея? Менее половины дня 44% Меньше дня 11% Когда-нибудь 33% Более одного дня 11% Два дня или больше Программного обеспечения Это с предустановленными приложениями? Он поставляется с чистой операционной системой У него есть предустановленные
Может быть, у кого-то есть идея, как проверить, как часто результаты Facebook появляются в топ-10 для запросов, не связанных с брендом?
Может быть, у кого-то есть идея, как проверить, как часто результаты Facebook появляются в топ-10 для запросов, не связанных с брендом?
Как стекло работает дома?
Как стекло работает дома? Стекло и фарфор в наших домах очень часто являются эффектом подарков, потому что это очень практичный и в то же время универсальный подарок. До недавнего времени настенные отсеки, построенные из прозрачных кристаллов, были обязательным элементом каждого дома. Сегодня тенденции меняются очень динамично, а вместе с ними и формы и цвета стекла, которое является украшением интерьера. Поэтому они могут быть футуристическими формами или сильно окрашенными
Как это сделать?
Как это сделать? Конечно, самый простой способ. Например, с помощью персонализированных баннеров в критических точках страницы. Они направят внимание пользователя в нужное место в самый важный момент визита. Примером таких действий является остановка посетителя на сайте перед тем, как покинуть его, путем отображения персонализированного всплывающего окна со стимулом для просмотра специальной акции из категории продуктов, которую он недавно просматривал. Есть много интересных примеров,
Как это помогает?
Как это сделать? Конечно, самый простой способ. Например, с помощью персонализированных баннеров в критических точках страницы. Они направят внимание пользователя в нужное место в самый важный момент визита. Примером таких действий является остановка посетителя на сайте перед тем, как покинуть его, путем отображения персонализированного всплывающего окна со стимулом для просмотра специальной акции из категории продуктов, которую он недавно просматривал. Есть много интересных примеров,
Как работает заземление?
Как работает заземление? Вы можете прочитать о заземление здесь где я делюсь своим проект заземления. Я заземляю каждый день: просто соединяю мою голую кожу с голой землей. Это невероятно, и мое здоровье резко улучшается. Как путешественники, я уверен, что вы прекрасно понимаете, как
Вы готовы сделать следующий шаг, но не знаете, как?
Вы готовы сделать следующий шаг, но не знаете, как? Попробуй это. Вместо того, чтобы убеждать заинтересованные стороны в необходимости радикальных изменений, основанных исключительно на ваших «предпочтениях», используйте разделенные тесты A / B обеих версий. Пусть данные определяют изменение, потому что результаты говорят сами за себя. Выбрав одну из четырех альтернатив, которые мы перечислили, вы можете найти что-то, что лучше подойдет для вашего бренда и приведет к более

?еть /?
Орг / калибр / вид?
Ком / калибр / вид?
Php?
Php?
Из этой статьи вы узнаете: Что такое фрезерный станок по дереву?
Где и как это сделать?
Была ли у вас возможность совершать эти покупки в интернет-магазинах, расположенных за границей нашей страны?
Кто-нибудь из вас покупал товары прямо из Китая?
Как вы себя вели тогда?