
fireELF - Framework de malware Linux sans fichier
fireELF est un framework open source pour malwares Linux sans fichier, multiplateforme, qui permet aux utilisateurs de créer et gérer facilement des payloads. Par défaut, il inclut « memfd_create », une nouvelle méthode pour exécuter des exécutables ELF Linux entièrement depuis la mémoire, sans que le binaire ne touche au disque dur.

Le seul payload inclus, « memfd_create », est basé sur les recherches de Stuart. Ce payload crée un descripteur de fichier anonyme en mémoire, puis utilise fexecve pour exécuter le binaire directement à partir du descripteur. Cela permet une exécution entièrement en mémoire, ce qui signifie que si le système Linux redémarre, le payload sera introuvable.
Par défaut, fireELF est livré avec « memfd_create », mais les utilisateurs peuvent développer leurs propres payloads. Par défaut, les payloads sont stockés dans payloads/. Pour créer un payload valide, il suffit d’inclure un dictionnaire nommé « desc » avec les paramètres « name », « description », « archs » et « python_vers ». Un exemple de dictionnaire desc est donné ci-dessous :
desc = {"name" : "test payload", "description" : "new memory injection or fileless elf payload", "archs" : "all", "python_vers" : ">2.5"}
En plus du dictionnaire « desc », le point d’entrée utilisé par le moteur de plugin nécessite une fonction main qui recevra automatiquement deux paramètres : un booléen indiquant s’il s’agit d’une URL, et le second paramètre correspond aux données. Voici un exemple simple de point d’entrée :
def main(is_url, url_or_payload):
return
Si vous avez une méthode, n’hésitez pas à soumettre un payload !
Téléchargez les dépendances en exécutant :
pip3 -U -r dep.txt
fireELF est développé en 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