MSFvenom
Инструмент для генерации shellcode, исполняемых файлов, и т д, для использования эксплойтов снаружи msf. Основной элемент настройки - payload поэтому около него все крутится.
Энкодер. MSFvenom берёт исходный payload и пропускает его через encoder, который меняет последовательность байтов, но добавляет в начало декодер — небольшой фрагмент кода, который при запуске восстанавливает исходный шеллкод в памяти и выполняет его.
| Просмотр информации |
|
| -l, --list <type> |
Список модулей указанного типа. Варианты типов: payloads, encoders, nops, platforms, archs, encrypt, formats, all
Можно дополнительно фильтровать по свойствам: --platform платформа --arch архитектура
|
| --list-options |
Список опций для данной нагрузки.
|
| Настройка нагрузки | |
| -p, --payload <payload> | Нагрузка для использования |
| -t, --timeout <second> |
Сколько секунд инструмент будет ждать при чтении полезной нагрузки (payload) из STDIN.
То есть, можно взять свой бинарный файл и его например закодировать. 0 - бесконечно (ждем сколько надо). |
| -s, --space <length> | Максимальный размер результирующей нагрузки. |
| Настройка энкодера | |
| -e, --encoder <encoder> | Используемый энкодер. |
--encoder-space <length> |
Максимальный размер закодированной нагрузки, по умолчанию значение -s |
| --smallest | Сгенерировать минимально возможную по размеру нагрузку, используя все возможные encoders. Видимо не сочетается с -e. |
| -i, --iterations <count> | Количество проходов энкодера |
| Дополнительные настройки | |
| --platform <platform> | Платформа для payload |
| -a, --arch <arch> | Архитектура для payload или encoders |
| --service-name <value> | Имя сервиса при генерации бинарника для сервиса. |
| Настройки результата | |
| -o, --out <path> | Путь и имя создаваемого файла |
| -f, --format <format> | Формат создаваемого файла |
| -x, --template <path> |
Бинарник, в который нужно добавить созданную нагрузку -k, --keep Сохранить шаблон, а payload добавить в новый поток. |
| --sec-name <value> |
Имя новой секции (section) PE-(Windows)-файла, в которую msfvenom размещает большой payload при генерации исполняемого файла. Актуально если payload не помещается в существующие секции шаблона, msfvenom создаёт дополнительную секцию в PE-образе; --sec-name позволяет задать имя секции вместо случайного.
Black Hills Information Security, Inc. Пример команды: |
--service-name <value> The service name to use when generating a service binary
--sec-name <value> The new section name to use when generating large Windows binaries. Default: random 4-character alpha string --smallest Generate the smallest possible payload using all available encoders
--encrypt <value> The type of encryption or encoding to apply to the shellcode (use --list encrypt to list)
--encrypt-key <value> A key to be used for --encrypt
--encrypt-iv <value> An initialization vector for --encrypt
-b, --bad-chars <list> Characters to avoid example: '\x00\xff'
-n, --nopsled <length> Prepend a nopsled of [length] size on to the payload
--pad-nops Use nopsled size specified by -n <length> as the total payload size, auto-prepending a nopsled of quantity (nops minus payload length)
--encoder-space <length> The maximum size of the encoded payload (defaults to the -s value) -i, --iterations <count> The number of times to encode the payload -c, --add-code <path> Specify an additional win32 shellcode file to include -x, --template <path> Specify a custom executable file to use as a template -k, --keep Preserve the --template behaviour and inject the payload as a new thread
-v, --var-name <value> Specify a custom variable name to use for certain output formats -t, --timeout <second> The number of seconds to wait when reading the payload from STDIN (default 30, 0 to disable)