
fireELF - Framework de malware Linux sem arquivos
fireELF é um framework de malware Linux sem arquivo (fileless) de código aberto e multiplataforma que permite aos usuários criar e gerenciar payloads facilmente. Por padrão, ele vem com 'memfd_create', que é uma nova maneira de executar executáveis Linux ELF completamente a partir da memória, sem que o binário toque no disco rígido.

O único payload incluído, 'memfd_create', é baseado na pesquisa de Stuart. Este payload cria um descritor de arquivo anônimo na memória e, em seguida, usa fexecve para executar o binário diretamente a partir do descritor de arquivo. Isso permite a execução completamente na memória, o que significa que, se o sistema Linux for reiniciado, o payload não será encontrado em lugar algum.
Por padrão, o fireELF vem com 'memfd_create', mas os usuários podem desenvolver seus próprios payloads. Por padrão, os payloads são armazenados em payloads/ e, para criar um payload válido, basta incluir um dicionário chamado 'desc' com os parâmetros 'name', 'description', 'archs' e 'python_vers'. Um exemplo de dicionário desc está abaixo:
desc = {"name" : "test payload", "description" : "new memory injection or fileless elf payload", "archs" : "all", "python_vers" : ">2.5"}
Além do dicionário 'desc', o ponto de entrada que o mecanismo de plugin que construí usa requer uma função main que receberá automaticamente dois parâmetros: um é um booleano que, se for verdadeiro, significa que está recebendo uma URL; o segundo parâmetro que recebe são os dados. Um exemplo de um ponto de entrada simples está abaixo:
def main(is_url, url_or_payload):
return
Se você tiver um método, fique à vontade para enviar um payload!
Baixe as dependências executando:
pip3 -U -r dep.txt
O fireELF é desenvolvido em 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