Обратный инжиниринг вредоносных программ (часть 3)

Опубликовано: 11 Апреля, 2023

  • Обратный инжиниринг вредоносных программ (часть 1)
  • Обратный инжиниринг вредоносных программ (часть 2)
  • Обратный инжиниринг вредоносных программ (часть 5)

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

Реверс-инжиниринг и вы, часть 3

Итак, во второй части мы закончили тем, что я спросил вас, была ли загруженная вами вредоносная программа представлена значком winzip или winrar. Зачем мне задавать этот вопрос? Кто-нибудь из вас помнит, как читал серию статей, которую я недавно написал под названием «Студент, учитель и Optix Pro». В этой серии статей рассказывалось о человеке, который использовал троян для взлома компьютера своего учителя. Часть процесса создания троянского сервера касалась того, хотите ли вы замаскировать трояна с помощью значка, например, значка winzip. Довольно умно, не так ли? Хотя это не может обмануть всех, это, безусловно, обманывает многих пользователей компьютеров, которые не так хорошо разбираются в безопасности, как мы. Это тоже хорошо, так как не каждый может быть экспертом по безопасности. Я упоминаю об этом просто по той причине, что мы не можем смотреть свысока на тех, кто не разбирается в компьютерах. У всех нас разные наборы навыков, и мы должны помнить об этом. Никто не любит элиту!

Это подделка или правда?

Что ж, как я уже упоминал выше, я нисколько не уверен, что моя вредоносная программа на самом деле представляет собой архивированный файл. Если бы я просто дважды щелкнул по нему, чтобы распаковать его, я вполне мог бы установить вредоносное ПО в свою систему. Или это действительно может быть сжатая вредоносная программа. Может ли кто-нибудь из вас придумать способ однозначно доказать, так или иначе, является ли это подлинным файлом, сжатым с помощью WinZip? Ну я могу. Что нам нужно сделать, так это открыть вредоносное ПО, показанное ниже, которое я скачал ранее, с помощью шестнадцатеричного редактора.

Изображение 25075
фигура 1

Итак, как вы можете видеть, вредоносное ПО действительно представлено значком winzip. Он не отображается как классический значок winzip, так как на моем образе VMware установлен winrar. Прежде чем мы откроем файл в шестнадцатеричном редакторе, важно кое-что отметить. Форматы файлов, такие как winzip, winrar или даже формат PE, имеют определенную байтовую подпись, которая может быть распознана на уровне байтов. Это легко просмотреть с помощью шестнадцатеричного редактора, поэтому нам нужно открыть часть вредоносного ПО в одном. Это позволит нам искать определенные последовательности байтов в самом файле. Это, в свою очередь, скажет нам, является ли часть вредоносного ПО, показанная на скриншоте выше, подлинным файлом, заархивированным WinZip, или нет. Вам также не нужно беспокоиться о запуске вредоносного ПО при открытии его в шестнадцатеричном редакторе, поскольку вы просто просматриваете его содержимое, а не вызываете его.

Из битов и байтов

На скриншоте ниже видно, что я открыл файл вредоносного ПО в выбранном мной шестнадцатеричном редакторе. Следует отметить, что на снимке экрана представлены символы «MZ» или, как они представлены в шестнадцатеричном формате, символами «4D 5A». Символы «MZ» представляют открывающую последовательность байтов в формате заголовка PE. Другими словами, «MZ» говорит нам, что этот файл является исполняемым, а не сжатым в формате WinZip. Шокирует! Просто шокирует! У этих авторов вредоносных программ нет чести? Хе-хе. Ну, как мы все знаем, они определенно не делают. Попытка сделать исполняемый файл похожим на файл, сжатый с помощью WinZip, довольно разумна, так как двойной щелчок по нему для распаковки фактически вызовет вредоносное ПО.

Изображение 25076
фигура 2

Что ж, возникает вопрос о том, как выглядит формат файла WinZIP на уровне байтов. Действительно хороший вопрос, и мы должны рассмотреть его хотя бы для того, чтобы положительно доказать разницу между ними. Подобно тому, как формат PE имеет открывающую последовательность байтов «MZ», формат файла winzip будет иметь сигнатуру открывающего байта «PK». На этой ноте давайте взглянем на допустимый формат файла WinZIP.

Изображение 25077
Рисунок 3

Просто чтобы заставить вас поверить, мы можем видеть на скриншоте выше, что действительно есть «PK», или как представлено двумя байтами «50 4B». Теперь мы установили исходный уровень и доказали, что файл вредоносного ПО, конечно же, является исполняемым, а не сжатым с помощью WinZip. Здесь я должен упомянуть, что при просмотре шестнадцатеричного кода важно отметить, что один символ ASCII будет представлен двумя буквенно-цифровыми символами при просмотре в шестнадцатеричном редакторе. Чтобы уточнить, байт «50» представляет символ ASCII «P», а байт «4B» представляет символ ASCII «K». Это очень важная деталь, и она также применима и к миру анализа пакетов. Хотя при анализе пакетов у нас часто есть метрики, представленные одним битом, а не целым байтом. Эту мелочь я оставлю для будущих статей по анализу пакетов.

Форматы файлов и их значение

Вы, вероятно, надеялись, что теперь мы приступим к реверс-инжинирингу. Что ж, скоро будем, но всему свое время как бы. Также важно просмотреть информацию, которая имеет непосредственное отношение к нашему анализу. Такая информация, как упомянутые выше форматы файлов для winzip и заголовки PE. При обратном проектировании иногда требуется проверить, в каком формате находится конкретный файл. Чтобы сделать это, как мы сделали здесь, вам нужно понять, как это сделать. Это включает в себя открытие файла в шестнадцатеричном редакторе, как мы сделали, и, кроме того, наличие копии спецификации формата файла на руках.

Формат Portable Executable (PE) является родным для Microsoft Windows. Я могу честно сказать, что эта спецификация формата довольно увлекательна для чтения. Чтобы расширить и отточить свои знания в области компьютерной безопасности, вам часто приходится усложнять изучаемый предмет. Я настоятельно рекомендую вам уделить время тому, чтобы как следует изучить и усвоить, что такое формат PE, что он означает и что из него можно извлечь. Изучение этого формата файла также поможет вам понять, как программа, находящаяся в физической памяти, то есть на вашем жестком диске, фактически отображается в память, то есть в ОЗУ. Хмммм, на самом деле это может стать довольно интересной статьей.

Заворачивать

В этой статье мы рассмотрели часть вредоносного ПО, которое я скачал. Он был представлен значком winzip, но я сомневался, что он действительно находится в этом формате файла. Будучи подозрительным по своей природе, я открыл его с помощью шестнадцатеричного редактора и убедился, что он действительно не был сжат WinZip, а скорее был в исполняемом формате, также известном как формат PE. В дополнение к этому мы также рассмотрели ключевую информацию о том, что различные форматы файлов имеют с точки зрения уникальных последовательностей байтов. Эта функция помогла нам окончательно определить, какой тип файла у нас был на самом деле. В следующих частях мы расскажем, какой тип упаковки вредоносного ПО использовался, а также как его распаковать. Как только это будет сделано, наш анализ начнется всерьез. Хотя, как вы увидите, часть анализа выполняется относительно быстро, поскольку мы занимаемся только базовым обратным проектированием. Скоро увидимся.

  • Обратный инжиниринг вредоносных программ (часть 1)
  • Обратный инжиниринг вредоносных программ (часть 2)
  • Обратный инжиниринг вредоносных программ (часть 4)
  • Обратный инжиниринг вредоносных программ (часть 5)