Если вы хотите ознакомиться с остальными частями этой статьи, пожалуйста, прочитайте:
В последней статье из этого цикла мы посмотрим на наше только что созданное вредоносное программное обеспечение (malware) различными способами. Во-первых, мы просмотрим его с помощью щестнадцатиричного редактора (hex editor), который позволит нам безопасно увидеть его содержимое, т.е. не запуская его на выполнение. С помощью этого просмотра в шестнадцатиричном редакторе мы узнаем очень много важной информации. После этого мы используем инструменты LordPE и Procdump для обнаружения всех следов активности троянского сервера (trojan server) в памяти. Это позволит нам посмотреть на вредоносное программное обеспечение в момент его работы. Наконец, мы узнаем, как выглядите вредоносное программное обеспечение, упакованное в UPX, на шестнадцатиричном уровне. Это позволит нам понять, для чего используется UPX упаковка. На этом давайте приступим.
Недавно я видел футболку с такой надписью “Practice safe hex” (практикуем безопасный просмотр). Но такая игра слов очень четко выражает действительность! Если вы открываете исполняемый модуль с помощью шестнадцатиричного редактора (hex editor), то вы в действительности не запускаете программу, а просто просматриваете ее содержимое. Поэтому это можно назвать безопасным просмотром. Использование шестнадцатиричного редактора для первичного просмотра подозрительной программы – это очень рекомендуемая практика. С помощью такого просмотра вы сможете убедится в некоторых аспектах, например, в действительности ли программа имеет формат PE: т.е. является ли она исполняемым модулем (Microsoft Windows executable). Упаковано ли вредоносное программное обеспечение, предполагая, что заголовки упаковки не были уничтожены, а также вытащить другую информацию с помощью ASCII, внедренный внутрь самого исполняемого кода. Давайте посмотрим на рисунок ниже.
Рисунок 1
Все исполняемые модули Microsoft удовлетворяют файловому формату Portable Executable (PE) file format, а раз так, то в начале файла у них должны находится ASCII символы “MZ”. Как мы можем убедиться, символы “MZ” действительно присутствуют там. Теперь мы с полной определенностью можем сказать, что эта вредоносная программа в самом деле является программой для Microsoft Windows. Причина, по которой я пришел к такому заключению, заключается в том, что в мире Linux такжу существует свой формат для исполняемых модулей. Файловый формат для Linux называется Executable and Linking Format (ELF). Вы можете увидеть это сокращение “ELF” в программе для Linux. Поэтому, просто открыв программу в шестнадцатиричном редакторе, вы можете узнать, предназначена она для Windows или нет.
Итак, мы также знаем, что ранее мы взяли два исполняемых модуля для Microsoft Windows и связали их вместе с помощью переплетчика YAB. Тогда возникает вопрос, а куда подевались два заголовка PE в связанной программе?” В действительности очень хороший вопрос, и я сразу же на него отвечу. Для этого я возьму связанный файл с вредоносным программным обеспечением и открою его в своем шестнадцатиричном редакторе. У заметил, что он упакован UPX.
Рисунок 2
На рисунке выше мы видим, что появились ASCII строки “UPX0” и “UPX1”. Это говорит нам, что этот исполняемый модуль имеет что-то внутри, что было упаковано с помощью упаковщика UPX packer. Это делается для того, чтобы уменьшить размеры связанной программы. Поэтому, если вы видите эти строки в подозрительном файле, то вы должны понимать, что вы должны распаковать его с помощью UPX. Давайте сделаем это прямо сейчас.
Рисунок 3
На рисунке выше изображен правильный синтаксис для UPX, чтобы распаковать файл, упакованный с помощью UPX. Все что теперь нужно сделать, посмотреть на распакованный файл с помощью шестнадцатиричного редактора, чтобы узнать, в чем дело. Посмотрите на рисунок ниже.
Рисунок 4
В левом нижнем углу мы видим девять ссылок на байтовый шаблон “4D 5A” или “MZ” в формате ASCII. Это говорит нам о том, что очень вероятно, что в этом файле содержится более одного исполняемого модуля. Теперь я нажму на каждую ссылку и проверю, случайное ли это попадание, или еще одни заголовок PE header.
Рисунок 5
Из рисунка выше мы видим, что в самом деле у нас есть второй заголовок PE header в этом файле. Это говорит о том, что кто-то связал или имплантировал еще один исполняемый модуль в существующую программу, точно также, как мы сами сделали раньше. Это является четким доказательством того, что что-то не так. Мы можете сделать более смелое предположение, сказав, что вы смотрите на вредоносное программное обеспечение (malware).
Мы только что рассказали вам, как выявить исполняемый модуль для Microsoft Windows или PE на байтовом уровне, а также выяснить для чего он. Также мы увидели, как выглядит модуль, упакованный с помощью UPX, и как легко его распаковать. Это может быть гораздо более сложным, если уничтожены заголовки UPX для усложнения анализа. Мы пойдем дальше и коротко расскажем об использовании инструментов LordPE и Procdump очистки памяти от работающих вредоносных процессов.
Рисунок 6
На рисунке выше вы видите диалоговое окно LordPE Этот инструмент очень прост в использовании, и необходим для очистки памяти от вредоносных процессов. На рисунке вы можете увидеть, что выделен процесс “msiexec16.exe”, который является процессом для троянского сервера Optix Pro, который успешно работает на моей виртуальной машине. Выделяем этот процесс, щелкаем правой кнопкой мыши и выбираем “dump full” (полностью выгрузить), затем вам предложат задать имя для файлы выгрузки. Назовите его, и укажите, куда сохранять. Вы успешно освободили память, занимаемую этим процессом. Далее мы откроем эту исполняемую программу с помощью шестнадцатиричного редактора. После того, как вы откроете программу, поищите некоторые интересные ASCII строчки.
Рисунок 7
Из рисунка выше мы видим, что в самом деле нашлись некие настораживающие строки. Такой тип статического анализа (статический анализ, означает, что мы не запускали файл на исполнение) очень полезен для получения информации относительно того, на что способно вредоносное программное обеспечение, а также для выяснения того, что оно таковым является. Инструмент LordPE также очень полезен в том случае, если не удается распаковать вредоносную программу. Очень часть авторы вредоносного программного обеспечения сознательно уничтожают некоторые части исполняемого модуля, чтобы замаскировать, что в него было упаковано что-то еще. Если вы столкнулись с такой ситуацией, то просто запустите программу, а затем почистите память. Грубые методы по-прежнему эффективны. Инструмент Procdump по принципу работы очень похож на LordPE. Пожалуйста, обратите внимание, что я не смог найти подходящую ссылку на Procdump, поэтому вам придется самостоятельно найти ее с помощью Google.
В рамках этого цикла статей мы узнали, что вещи не всегда являются тем, чем выглядят. Для эффективного администрирования вашей сети, очень часто необходимо, чтобы вы умели анализировать некоторые подозрительные файлы. Это можно сделать, как мы только что увидели, с помощью шестнадцатиричного редактора (hex editor) и других инструментов, наподобие LordPE. Всегда очень полезно знать, как хакеры делают свою работу. Для этого мы прошли путь по созданию своем собственного примера вредоносного программного обеспечения с использованием троянского сервера Optix Pro trojan server и переплетчика под названием YAB. Благодаря этой работе мы смогли гораздо лучше понять, как все это происходит. Вооружившись такими знаниями, вы сможете создать очень эффективную демонстрацию, посвященную опасности вредоносного программного обеспечения, для своих пользователей. Как всегда, я искренне надеюсь, что это статья была полезной для вас. До новых встреч.
Источник www.windowsecurity.com