Как написать вирус-загрузчик Trojan.DownLoader

Вирус иконка

Мы уже рассказывали, как написать троян на Python. Сегодня покажу, как написать вирус-загрузчик Trojan.DownLoader. Мы напишем вирус-downloader для загрузки вредоносной DLL и получения удаленной сессии с Kali Linux.

Еще по теме: Создание ботнета с помощью Koadic

Что такое вирус-загрузчик Trojan.DownLoader

Вирус-загрузчик (Вирус Downloader или Trojan.DownLoader) — это тип вредоносного ПО, которое используется злоумышленниками для получения несанкционированного доступа к компьютерной системе жертвы. Основная цель вредоносной программы — загрузка установка основного вредоносного ПО.

После заражения вирусом-загрузчиком, малварь скачивает и запускает вредоносную программу на компьютере. Как правило вирус-загрузчик маскируется под обычную программу. Давайте рассмотрим код Trojan.DownLoader.

Статья в образовательных целях и предназначена для обучения этичных хакеров. Заражение чужих устройств является незаконным! При написании статьи использовались личные устройства автора. Ни редакция spy-soft.net, ни автор не несут ответс­твен­ности за ваши действия.

Как написать вирус-загрузчик Trojan.DownLoader

Вот код на C++, демонстрирующий технику инжекта DLL, которая представляет собой метод, используемый для выполнения произвольного кода в контексте другого процесса. В этом коде злоумышленник сначала загружает DLL-файл с удаленного сервера, а затем внедряет его в память целевого процесса (в данном случае notepad.exe).

app.cpp

Код вирус загрузчик

Код app.cpp полностью на Gist.

Вот краткий обзор того, что делает код:

  • Включает в себя несколько файлов, такие как windows.h, iostream и tlhelp32.h.
  • Определяет функцию getPIDbyProcName(), которая принимает имя процесса в качестве аргумента и возвращает идентификатор процесса (PID) первого процесса с таким именем.
  • Определяет переменную с именем dllpath, указывающую место, где будет храниться загруженная DLL.
  • В функции main() код вызывает функцию getPIDbyProcName(), чтобы получить PID процесса notepad.exe.
  • Вызывает другую функцию, называемую downloadFile(), для загрузки DLL-файла с удаленного сервера и его сохранения в месте, указанном в dllpath.
  • Открывает дескриптор целевого процесса с помощью функции OpenProcess() и выделяет память в целевом процессе с помощью функции VirtualAllocEx() для хранения полного пути к DLL.
  • Записывает полный путь DLL в выделенную память с помощью функции WriteProcessMemory().
  • Получает адрес функции LoadLibraryA в kernel32.dll с помощью функции GetProcAddress().
  • Создает удаленный поток в целевом процессе с помощью функции CreateRemoteThread() и передает в качестве аргументов адрес функции LoadLibraryA и адрес пути DLL в целевом процессе.
  • Ожидает завершения выполнения удаленного потока с помощью функции WaitForSingleObject().
  • Закрывает дескриптор удаленного потока, освобождает выделенную память с помощью функции VirtualFreeEx() и закрывает дескриптор целевого процесса.

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

download.h

Код Trojan.DownLoader

Код download.h полностью на Gist.

Это функция C++, называемая downloadFileпринимает два аргумента — адрес и путь к локальному файлу — и возвращает логическое значение, указывающее, была ли загрузка успешной или нет.

Функция использует библиотеку WinINet для загрузки файла с заданного адреса и сохранения файла по указанному локальному пути. Библиотека WinINet предоставляет набор функций для доступа к ресурсам в Интернете, включая загрузку файлов по протоколам HTTP и FTP.

Сначала функция создает сеанс связи, вызывая InternetOpen() с юзер-агентом «Mozilla/5.0». Затем открывает указанный адрес с помощью InternetOpenUrl() и возвращает дескриптор открытого файла. Если функции не удается открыть урл, возвращает значение false.

Затем функция создает новый файл в режиме записи с помощью CreateFile() и возвращает дескриптор только что созданного файла. Если функции не удается создать файл, возвращает значение false.

Затем функция считывает содержимое удаленного файла порциями по 4096 байт с помощью InternetReadFile() и записывает их в локальный файл с помощью WriteFile(). Если во время загрузки возникают ошибки, функция останавливает цикл (false).

Наконец, функция закрывает дескрипторы открытого файла и интернет-сеанса.

dll

Код Вирус Downloader

Код dll полностью на Gist.

Этот код представляет собой шелл-код Windows x64, который выполняет полезную нагрузку, закодированную в шестнадцатеричном формате и сохраненную в виде массива байтов в переменной, называемой payload.

Payload содержит инструкции машинного кода, которые выполняют ряд операций, включая загрузку значений в регистры, манипулирование данными и вызов системных функций. Точное поведение payload зависит от конкретных инструкций, содержащихся в ней, но в целом она предназначена для выполнения вредоносного действия в системе, в которой она запущена.

Функция Go — это точка входа шеллкода, и она начинается с резервирования и выделения памяти для полезной нагрузки с помощью функции VirtualAlloc. Затем копирует полезную нагрузку в выделенную память с помощью функции RtlMoveMemory и устанавливает защиту памяти для разрешения выполнения с помощью функции VirtualProtect.

Наконец, создает новый поток для выполнения полезной нагрузки с помощью функции CreateThread. Параметр LPTHREAD_START_ROUTINE этой функции приводится к указателю на выделенную память, что заставляет поток выполнять хранящийся там шеллкод.

Вирус-Downloader в действии

Запускаем HTTP-сервер Python на Kali Linux, на котором размещен наш вредоносный DLL.

Вирус Downloader написать

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

А теперь EXE.

Вирус Downloader написать

И получаем сессию и шелл.

Заключение

Это все, что касается этой вредоносной техники, я надеюсь, она вам понравится и вы будете использовать ее для внедрения шелл-кода в процесс с помощью инъекции DLL.

ПОЛЕЗНЫЕ ССЫЛКИ:

QUASAR

Этичный хакер и компьютерный ниндзя. Новые статьи в нашей Телеге!

Добавить комментарий