
fireELF - Бесфайловая платформа вредоносного ПО для Linux
fireELF — это open-source кроссплатформенный фреймворк для создания бесфайлового вредоносного ПО под Linux, позволяющий легко создавать и управлять полезными нагрузками. По умолчанию в него встроен 'memfd_create' — новый способ запуска ELF-исполняемых файлов Linux полностью из памяти, без касания жёсткого диска.

Единственная включённая полезная нагрузка 'memfd_create' основана на исследовании Stuart. Эта нагрузка создаёт анонимный файловый дескриптор в памяти, а затем использует fexecve для выполнения бинарного файла напрямую из этого дескриптора. Это позволяет выполнять код полностью в памяти, что означает, что если система Linux будет перезагружена, полезная нагрузка исчезнет бесследно.
По умолчанию fireELF поставляется с 'memfd_create', но пользователи могут разрабатывать собственные полезные нагрузки. По умолчанию нагрузки хранятся в папке payloads/, и для создания валидной нагрузки достаточно включить словарь с именем 'desc', содержащий параметры 'name', 'description', 'archs' и 'python_vers'. Пример словаря desc приведён ниже:
desc = {"name" : "test payload", "description" : "new memory injection or fileless elf payload", "archs" : "all", "python_vers" : ">2.5"}
В дополнение к словарю 'desc' точка входа, используемая созданным мной движком плагинов, требует наличия функции main, которой автоматически передаются два параметра: первый — логическое значение: если оно истинно, это означает, что передаётся URL; второй параметр — это данные. Пример простой точки входа приведён ниже:
def main(is_url, url_or_payload):
return
Если у вас есть собственный метод, не стесняйтесь добавлять полезную нагрузку!
Загрузите зависимости, выполнив:
pip3 -U -r dep.txt
fireELF разработан на Python 3.x.x
usage: main.py [-h] [-s] [-p PAYLOAD_NAME] [-w PAYLOAD_FILENAME]
(-u PAYLOAD_URL | -e EXECUTABLE_PATH)
fireELF, Linux Fileless Malware Generator
optional arguments:
-h, --help show this help message and exit
-s Supress Banner
-p PAYLOAD_NAME Name of Payload to Use
-w PAYLOAD_FILENAME Name of File to Write Payload to (Highly Recommended if
You're not Using the Paste Site Option)
-u PAYLOAD_URL Url of Payload to be Executed
-e EXECUTABLE_PATH Location of Executable