С прошлого номера мы запустили цикл статей про такую интересную вайтхет-отрасль, как анализ малвари. Интересно в ней то, что исследователь малвари занимается все тем же взломом, причем программ, авторы которых не очень хотели бы, чтобы их творения взламывали :), но при этом хакеру-исследователю совершенно не стоит опасаться юридических претензий от авторов малвари. В прошлой статье мы разобрали теоретические вопросы, литературу и хорошие онлайн-ресурсы, а сегодня, дорогие друзья, будем практиковаться в анализе malware-кода, основываясь на рабочих образцах вредоносов.
 

Подготовка рабочего окружения

Все эксперименты по анализу малвари мы будем выполнять в нашей лаборатории, это заранее подготовленная виртуальная среда с предустановленной Windows XP. Да-да, старушка ХР нам очень даже подойдет, поскольку некоторые изучаемые образцы могут вызывать ошибки при запуске на новых версиях ОС. И к тому же все программные инструменты проверены и гарантированно будут работать на ХР.

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

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

 

Анализ семпла Lab01: динамический анализ

Используемые инструменты:

  • IDA Pro;
  • PEiD;
  • RegShot;
  • Procmon;
  • INetSim;
  • Wireshark;
  • Process Explorer;
  • OllyDbg.

WARNING


Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.

Итак, первым делом запускаем PEview и смотрим импорт функций, который использует этот вредонос. Видим, что используется функция ExitProcess из системной библиотеки kernel32.

Просмотр функции ExitProcess системной библиотеки kernel32
Просмотр функции ExitProcess системной библиотеки kernel32

А вот и сам импорт в подробностях:

Окно PEview с подробностями импорта
Окно PEview с подробностями импорта

Так-так, мы видим ключи реестра, которые прописывает вредонос после своего запуска. Обращаем внимание на присутствие некоторой DNS-записи веб-ресурса и создаваемый файл vmx32to64.exe, маскирующийся под драйвер видеоадаптера с именем WinVMX32.

У нас есть подсказка, мы должны отследить сетевую активность ресурса http://www.practicalmalwareanalysis.com. Мы можем также отслеживать и проверять ключи реестра SOFTWARE\Classes\http\shell\open\commandV (IExplorer.exe) и Software\Microsoft\Active Setup\Installed Components\.

Первым делом мы должны разобраться с файлом для vmx32to64.exe, который вредонос создает после своего запуска и копирует в папку C:\Windows\system32. Запускаем анализатор PEiD, видим, что файл ничем не упакован.

Анализ бинарного файла с помощью PEiD
Анализ бинарного файла с помощью PEiD

Однако используются некоторые фичи для затруднения отладки exe-файла. Ниже приведен скриншот из отладчика OllyDbg.

Просмотр malware в отладчике OllyDbg
Просмотр malware в отладчике OllyDbg

По адресу 0x401259 был выполнен вызов к 0x401265. Это опкод, который вызывает обратный адрес 0x40125e выполнения в стеке. По первому адресу, 0x401265, был сделан вызов к библиотеке kernel32.LoadLibraryA. Но мы-то знаем, что функция LoadLibrary нуждается в некотором аргументе LPCSTR, передаваемом в… массив символов! Обратный адрес 0x40125e заворачивает вызов опкодом в библиотеку user32.

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи один материал

Заинтересовала информация, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для материалов, опубликованных более двух месяцев назад.


21 комментарий

  1. bax_banny

    22.12.2016 at 13:32

    Цикл Статей — это просто перевод книги?

    • motoroller95

      22.12.2016 at 15:38

    • R2D2id

      24.12.2016 at 21:48

      Я знаком с книгой не по наслышке, читал еще когда она вышла в свет, очень хорошее издание на данную тему. В соответствующих главах излагается теоретическая часть, а на прилагаемом к книге CD идут лабы для самостоятельных практических занятий. Логично, что автор их в качестве основы

    • Иван Пискунов

      Иван Пискунов

      14.01.2017 at 20:16

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

  2. Khazhinov

    23.12.2016 at 01:12

    По-моему довольно полезно. В рунете довольно сложно найти готовую и хорошую информацию.

  3. RobotNed

    24.12.2016 at 21:34

    Не плохой урок, хоть и подходит для новичков, но все.

  4. boberpro

    25.12.2016 at 11:47

    а какой пароль от архива?

  5. barkhat

    06.01.2017 at 11:11

    А вы точно использовали PEView, а не IDA PRO?

    • Иван Пискунов

      Иван Пискунов

      14.01.2017 at 20:01

      barkhat, спасибо за наблюдательность, скрин действительно из Иды, вкладка Import (если кто не нашел). Пр подготовке материала скриншотов очень много, все они в статью не влазят поэтому пришлось точечно оставлять самые информативные, так что PEView тоже использовался, с помощью тулзы всегда не лишнее проверить хеадеры. А вообще, на мои взгляд must have это PE Explorer 🙂 Все замечания учтем, ждите новых уроков!

  6. Inject0r

    30.03.2017 at 06:04

    А как в IDA найти подробности об импорте? Не могу найти кнопку нужную. Хотелось бы чтобы в статьях рассказывали куда жать конкретно, если эта серия статей позиционируется как для новичков, IDA запускаю в первый раз в жизни.

    • Иван Пискунов

      Иван Пискунов

      30.03.2017 at 13:51

      На самом деле импорт смотрим в PeView (очень простая программка) или еще более интересная и навороченная PeExplorer (там и вьювер ресурсов и таблицы импорта и вшитый дизасм), полное описание тулзы у разработчика http://www.heaventools.ru/pe-explorer-feature-list.htm
      Список подобных программ можно так же глянуть на http://www.malware-analyzer.com/pe-tools

      • Иван Пискунов

        Иван Пискунов

        30.03.2017 at 13:55

        В IDA Pro тоже кое что можно посмотреть, в нашем случае путь в меню View -> Open subviews -> Open imports window. Русскоязычного гайда по интерфейсу, к сожалению нет, поэтому вариант, к примеру пользоваться онлайн-справкой с сайра вендора, тут описание самого меню полностью https://www.hex-rays.com/products/ida/support/idadoc/358.shtml, а тут конкретно «Open imports window» https://www.hex-rays.com/products/ida/support/idadoc/1416.shtml

        • Иван Пискунов

          Иван Пискунов

          30.03.2017 at 14:03

          Статья вышла до того как были получены фидбеки, поэтому кое-какие «огрехи» все таки просочились.. за них просим прощения, работу над ошибками делаем:) скрины впредь будут выглядеть более наглядно.

    • ShHolmes

      11.01.2018 at 17:42

      Это, похоже, не подробности импорта, а View -> Open subviews -> Strings в IDAPro.

  7. Inject0r

    30.03.2017 at 06:54

    Еще непонятно в каком месте PE можно глянуть процедуры записи файлов в Windows

  8. Inject0r

    30.03.2017 at 07:02

    Автор статьи кажется хотел максимально усложнить новичкам жизнь 🙂 Для поиска процедур записи файла был использован не Process Exploler, а Process Monitor, ошибка в подписи скрина. А еще скриншоты очень низкого качества, их не увеличить, под лупой нужно рассматривать иногда.

  9. Иван Пискунов

    Иван Пискунов

    30.03.2017 at 14:04

    К сожалению, только англоязычный, но все же небольшой гайд по описанию окон IDA Pro и возможностей программы
    http://resources.infosecinstitute.com/basics-of-ida-pro-2/

  10. baragoz

    17.08.2017 at 15:11

    Очень крутой автор, особенно респект за ответы читателям, жалко, не все авторы отвечают 😉

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

Check Also

Пишешь на С++ или .NET? Даем скидку 50% на Deleaker, программу для поиска утечек памяти

Deleaker — это программа для разработчиков под Windows, пишущих на C++. Она ищет утечки па…