
Analisi di Triage ad Alto Ottano
[][docs]
[
][tests]
[
][codecov]
[
][pypi]
__ __ High Octane Triage Analysis __
|| _||______ __ __________ _____ ||
|| \||___ \__| ____/ ______/___ / ____\ ||
==||=====|| | __/ |/ \ /==| / __ \ __\===]|
'======|| | \ | | \_ _| \ ___/| | ||
||____ /__|___|__/ / | \____]| | ||
=========''====\/=========/ /==|__|=====|__|======'
\ /
\/
Il Binary Refinery™ è una raccolta di script Python che implementano trasformazioni di dati binari come compressione e cifratura.
Spesso ci riferiremo ad esso semplicemente come refinery, che è anche il nome del pacchetto corrispondente.
Gli script sono progettati per leggere l'input esclusivamente da stdin e scrivere l'output su stdout.
La filosofia principale è che ogni script dovrebbe essere un'unità nel senso che svolge un solo compito,
e le singole unità possono essere combinate in pipeline con l'operatore di pipe | sulla riga di comando per eseguire attività più complesse.
L'obiettivo principale del progetto è il triage di malware,
ed è un tentativo di implementare qualcosa come CyberChef sulla riga di comando.
Crea un ambiente virtuale Python. Serve Python 3.11 o successivo. Installa refinery così:
python -m pip install -U pip
python -m pip install -U binary-refinery[extended]
Esegui le unità con -h per imparare come funzionano, cerca nella [documentazione][docs] o usa il comando binref per trovarle.
Guarda [un video recente][VOD3] se vuoi vederlo in azione.
Ma leggi anche il resto di questo readme.
Non esiste un calendario delle release, ma le release avvengono molto frequentemente ed è consigliato aggiornare periodicamente. Le correzioni di bug non sono documentate al di fuori di GIT, ma tutte le altre modifiche (cioè le nuove funzionalità) sono documentate nel changelog. Seguimi su [Mastodon][] per aggiornamenti sulle release particolarmente impattanti.
Il testo di aiuto che viene visualizzato quando si esegue un'unità con lo switch -h o --help è la sua documentazione principale.
La [documentazione generata automaticamente][docs] contiene una raccolta di quell'output per ogni unità di primo livello,
ma contiene anche la specifica dei tre concetti fondamentali del toolkit:
[framing][frame], [argomenti multibin][argformats] e [meta variabili][meta].
La ricerca full-text della descrizione e del testo di aiuto per ogni unità è disponibile anche sulla riga di comando,
tramite il comando binref fornito. Riconoscendo il fatto che la documentazione di riferimento può essere alquanto arida,
c'è uno sforzo continuo per produrre una serie di tutorial; consiglio vivamente di darci un'occhiata.
Inoltre, raccolgo risorse aggiuntive (incluse alcune prodotte da terze parti) qui sotto.
[!NOTE]
Refinery è ancora in alpha e l'interfaccia può talvolta cambiare, cioè le unità e i parametri possono essere rimossi o rinominati. Quindi può capitare che specifiche righe di comando da video e post di blog più vecchi non funzionino più.
2021/08] [OALabs][OA] è stato così gentile da lasciarmi [mostrare il toolkit in un video dedicato][VOD1].
Nel video, in sostanza, seguo il contenuto del
primo tutorial.2021/11] [Johannes Bader][JB] ha scritto un fantastico [post sul blog][BLOG] sull'analisi di malspam con binary refinery.2024/03] [Malware Analysis For Hedgehogs][MH] ha realizzato [un video sull'unpacking di un campione XWorm][VOD2] usando refinery.2024/11] [the CyberYeti][CY] mi ha invitato [in streaming per presentare refinery][VOD3].2025/06] Sono stato [di nuovo in streaming][VOD4] con [the CyberYeti][CY], questo è un po' più grezzo.
Tutti i bug che potete vedere qui sono stati corretti. 😉Le dimostrazioni includono ancora campioni dalla sezione degli esempi qui sotto e i tutorial.
The Binary Refinery è (c) 2019 Jesko Hüttenhain, e pubblicato sotto una [3-Clause BSD License][license]. Questo repository contiene anche una copia del testo completo della licenza. Se vuoi fare qualcosa con esso che non è coperto da questa licenza, sentiti libero di contattare l'autore.
Refinery richiede almeno Python 3.11. Si consiglia di installarlo in un proprio [ambiente virtuale][venv]: Il pacchetto può tirare dentro molte dipendenze, e installarlo nel tuo Python globale è alquanto soggetto a conflitti di versione. Inoltre, poiché il toolkit introduce un gran numero di nuovi comandi, c'è una buona probabilità che alcuni di questi entrino in conflitto su alcuni sistemi, e tenerli in un proprio ambiente virtuale separato è un modo per prevenirlo.
Se vuoi avere tutti i comandi di refinery disponibili nella tua shell in ogni momento (cioè senza dover passare a un ambiente virtuale personalizzato),
hai anche l'opzione di scegliere un prefisso per l'installazione,
che verrà anteposto a ogni shim di comando installato.
Ad esempio, se scegli r. come prefisso, allora l'unità [emit][] verrà installata come comando r.emit.
Un vantaggio aggiuntivo è che puoi digitare r. e premere Tab due volte per ottenere un elenco di tutti i comandi refinery disponibili.
Nota però che nessun prefisso è assunto nella documentazione ed è un obiettivo di sviluppo di refinery non entrare in conflitto sulla maggior parte dei sistemi.
L'autore non usa un prefisso e fornisce questa opzione come rete di sicurezza.
Il modo più semplice per installare e aggiornare refinery è tramite pip. Assicurati di eseguire prima la versione più recente:
python -m pip install -U pip
Poi installa semplicemente il pacchetto refinery:
pip install -U binary-refinery
Se vuoi scegliere un prefisso per tutte le unità, puoi specificarlo tramite la variabile d'ambiente REFINERY_PREFIX.
Ad esempio, il seguente comando installerà refinery nell'ambiente Python corrente con prefisso r. su Linux:
REFINERY_PREFIX=r. pip install -U binary-refinery
Su Windows, dovresti eseguire i seguenti comandi:
set REFINERY_PREFIX=r.
pip install -U binary-refinery
Specificare il prefisso speciale ! avrà l'effetto che non verranno creati affatto comandi shell,
e binary refinery sarà installato solo come libreria.
Se vuoi installare l'attuale HEAD di refinery, puoi ripetere tutti i passaggi precedenti, specificando questo repository invece del pacchetto pip.
Ad esempio, il seguente comando installerà il commit più recente di refinery:
pip install -U git+git://github.com/binref/refinery.git
Infine, se stai usando [REMnux][remnux-main], puoi usare il loro [container docker refinery][remnux].
Se vuoi insegnare alla tua [claude][] locale per l'analisi di malware a usare binary refinery, dai un'occhiata alla [Binary Refinery Skill][agent].
Quanto segue è un riepilogo di quanto bene sono attualmente supportati i vari ambienti shell: