Давайте разберемся, каким образом можно выполнить невыполняемый бинарник.
Проверим версию Python.
Проверим смонтированную файловую систему, которая не допускает прямого выполнения каких-либо бинарных файлов.
Попытка выполнить бинарник:
Создайте простой скрипт на Python, который использует функцию os.memfd_create, доступную начиная с Python 3.8, для создания анонимного файла и os.execv для его выполнения.
См. раздел “Различные интерфейсы операционной системы“.
#!/usr/bin/env python3
import os, sys
sys.tracebacklimit = 0
if len(sys.argv) >= 2:
command_file = str(sys.argv[1])
command_params = sys.argv[2:]
if os.path.exists(command_file):
command_executable = os.access(command_file, os.X_OK)
print()
print(f'Command: {command_file}')
print(f'Params: {command_params}')
print(f'Executable: {command_executable}')
print()
memfd_obj = os.memfd_create('')
file_obj = os.open(command_file, os.O_RDONLY)
with os.fdopen(memfd_obj, 'wb') as fd:
fd.write(os.read(file_obj, os.path.getsize(file_obj)))
print('Output:')
a =os.execv(f"/proc/self/fd/{memfd_obj}", [command_file, *command_params],)
else:
raise RuntimeError("Error: Command file does not exist")
else:
print("Usage:")
print(f' {__file__} command_file command_params')
Выполним неисполняемый файл:
см. также:
- 🌐 Dome : Быстрый скрипт на Python, который делает активное и/или пассивное сканирование для получения субдоменов
- 🐛 Tor-rootkit – автономный руткит на Python 3 для Windows 10 и Linux
- 🐍 Получение всех IP-адресов из подсети CIDR с помощью Python3
- 🌐 Использование Tor с Python
- 🐍 Инструкция и скрипт на Python по брутфорсу FTP
- 🥃 Pipx – установка и запуск приложений Python в изолированных средах
- 🦸 Что такое SHA-256 и как рассчитывать его на языках программирования Python, PHP, JavaScript, Go, Java, PowerShell👨⚕️







