
fireELF - Framework per malware Linux senza file
fireELF è un framework open-source per malware Linux senza file, multipiattaforma, che consente agli utenti di creare e gestire facilmente payload. Di default include 'memfd_create', un nuovo modo per eseguire eseguibili ELF Linux completamente dalla memoria, senza che il binario tocchi il disco rigido.

L'unico payload incluso 'memfd_create' si basa sulla ricerca di Stuart; questo payload crea un descrittore di file anonimo in memoria e poi usa fexecve per eseguire il binario direttamente dal descrittore di file. Ciò consente l'esecuzione completamente in memoria, con la conseguenza che se il sistema Linux viene riavviato, il payload non sarà più reperibile.
Di default fireELF viene fornito con 'memfd_create', ma gli utenti possono sviluppare i propri payload. Di default i payload sono memorizzati in payloads/ e per creare un payload valido è sufficiente includere un dizionario chiamato 'desc' con i parametri 'name', 'description', 'archs' e 'python_vers'. Un esempio di dizionario desc è il seguente:
desc = {"name" : "test payload", "description" : "new memory injection or fileless elf payload", "archs" : "all", "python_vers" : ">2.5"}
Oltre al dizionario 'desc', il punto di ingresso richiesto dal motore dei plugin che ho costruito utilizza una funzione main che riceverà automaticamente due parametri: il primo è un booleano che, se vero, indica che gli viene passato un URL; il secondo parametro sono i dati. Un esempio di punto di ingresso semplice è il seguente:
def main(is_url, url_or_payload):
return
Se hai un metodo, sentiti libero di contribuire con un payload!
Scarica le dipendenze eseguendo:
pip3 -U -r dep.txt
fireELF è sviluppato in Python 3.x.x
usage: main.py [-h] [-s] [-p PAYLOAD_NAME] [-w PAYLOAD_FILENAME]
(-u PAYLOAD_URL | -e EXECUTABLE_PATH)
fireELF, Generatore di Malware Linux senza File
optional arguments:
-h, --help mostra questo messaggio di aiuto ed esce
-s Sopprime il banner
-p PAYLOAD_NAME Nome del payload da utilizzare
-w PAYLOAD_FILENAME Nome del file a cui scrivere il payload (altamente raccomandato se non si usa l'opzione del sito paste)
-u PAYLOAD_URL URL del payload da eseguire
-e EXECUTABLE_PATH Percorso dell'eseguibile