Давайте разберемся, каким образом можно выполнить невыполняемый бинарник.
Проверим версию 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👨⚕️