
Incarcero è uno strumento che crea Macchine Virtuali (VM) preconfigurate con strumenti di analisi malware e impostazioni di sicurezza personalizzate per l'analisi malware senza alcuna interazione da parte dell'utente.
L'analisi dei malware è come disinnescare bombe. L'obiettivo è disassemblare e comprendere un programma progettato per fare del male, che spesso è offuscato (es: impaccato) per rendere l'analisi più complicata.
Incarcero è uno strumento che crea Macchine Virtuali (VM) preconfigurate con strumenti di analisi dei malware e impostazioni di sicurezza appositamente adattate per l'analisi dei malware senza alcuna interazione da parte dell'utente.
Inoltre, questo repository include probabilmente la più grande raccolta di codice sorgente di malware oltre a un modulo che consente di scaricare campioni di malware provenienti da popolari database online.
Nota: I binari con nomi generici come valore MD5 o smbXXX.tmp non sono stati rilevati come malware da VirusTotal al momento del caricamento, ma ciò non significa che non siano un campione di malware. Sentiti libero di configurare, analizzare e fare reverse engineering di qualsiasi campione in questo repository, se lo fai, fammi sapere i risultati della tua indagine.
dnf install ruby-devel gcc-c++ zlib-devel
vagrant plugin install winrm winrm-fs
apt install vagrant git python3-pip
apt install git python3-pip
pacman -Sy vagrant packer python-pip git
sudo pip3 install git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
NOTA: A partire da Windows 10, Hyper-V è sempre in esecuzione sotto il sistema operativo. Poiché VT-X deve essere gestito esclusivamente da un unico hypervisor, ciò causa il fallimento di VirtualBox (e incarcero). Per disabilitare Hyper-V e consentire l'esecuzione di VirtualBox, esegui il seguente comando in un prompt dei comandi amministrativo e poi riavvia: bcdedit /set hypervisorlaunchtype off. Dalla versione 6 di Virtualbox supporta l'uso di Hyper-V come core di esecuzione di fallback (changelog)
I seguenti passaggi presuppongono che tu abbia installato https://chocolatey.org/[Chocolatey]. Altrimenti, segui la procedura di installazione manuale.
Installa le dipendenze:
choco install python vagrant packer git virtualbox
Aggiorna la console:
refreshenv
Installa incarcero:
pip3 install setuptools
pip3 install -U git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
C:\Windows\System32\pip3 install setuptools
pip3 install -U git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
Esegui questo comando dopo l'installazione normale:
vagrant plugin install vagrant-aws
NOTA: La funzionalità AWS è stata testata solo su Linux per il momento e EC2 non supporta la versione desktop a 32 bit di Windows 10.
Questo crea la tua box base che viene importata in Vagrant. Successivamente puoi riutilizzare la stessa box più volte per l'analisi dei campioni.
Esegui:
incarcero build <template>
Puoi anche elencare tutti i template supportati con:
incarcero list
Questo costruirà una box Vagrant pronta per l'investigazione dei malware che puoi ora includere in un Vagrantfile in seguito.
Per esempio:
incarcero build win10_x64_analyst
La sezione di configurazione contiene ulteriori informazioni su cosa può essere configurato con incarcero.
incarcero spin win10_x64_analyst <name>
Questo creerà un Vagrantfile preparato per l'uso nell'analisi dei malware. Spostalo in una directory a tua scelta ed esegui:
vagrant up
Per impostazione predefinita, la directory locale verrà condivisa nella VM sul Desktop. Questo può essere modificato commentando la parte rilevante del Vagrantfile.
Per esempio:
incarcero spin win7_x86_analyst 20160519.cryptolocker.xyz
incarcero può caricare e interagire con una VM sui servizi Amazon Web. Per farlo, segui questi passaggi:
. incarcero avrà bisogno di un bucket S3 su AWS per caricare la VM prima di convertirla in un AMI (Amazon Machine Image). Se non ne hai uno, creane uno ora.
. La tua istanza richiede anche un gruppo di sicurezza con almeno una regola che consenta connessioni in entrata per WinRM (Type: WinRM-HTTP, Protocol: TCP, Port Range: 5985, Source: IP pubblico dell'host).
. Successivamente, hai bisogno di un ruolo di servizio vmimport configurato.
Segui la sezione intitolata VM Import Service Role di questa guida.
Questi passaggi devono essere eseguiti con un account che abbia i permessi iam:CreateRole e iam:PutRolePolicy.
. Se viene utilizzata la configurazione predefinita, cambia l'hypervisor in aws e compila le opzioni obbligatorie correlate. Altrimenti, assicurati di aggiungere tutte le opzioni relative ad AWS nella tua configurazione personalizzata.
. Infine, puoi seguire gli stessi passaggi descritti nelle sezioni Creazione della box e Istanze per analisi per avviare la tua istanza!
NOTA: L'importazione dell'AMI può richiedere molto tempo (circa un'ora), tuttavia puoi verificare lo stato dell'operazione facendo questo. Al momento, può essere costruita solo un'AMI per template.
Installa awscli usando pip:
pip install awscli
Configura awscli con:
aws configure
Poi esegui:
aws ec2 describe-import-image-tasks
Per connetterti a un'istanza sul cloud usando RDP, esegui questo comando nella stessa posizione del tuo Vagrantfile:
vagrant rdp -- /cert-ignore
Affinché funzioni, l'istanza richiederà un gruppo di sicurezza che consenta connessioni RDP in entrata (Type: RDP, Protocol: TCP, Port Range: 3389, Source: IP pubblico dell'host).
NOTA: Puoi ignorare tranquillamente il seguente errore poiché rsync non è ancora implementato: No host IP was given to the Vagrant core NFS helper. This is an internal error that should be reported as a bug.
Per arrestare un'istanza sul cloud, esegui questo comando nella stessa posizione del tuo Vagrantfile:
vagrant halt
La configurazione di incarcero si trova in una directory che segue le consuete convenzioni del sistema operativo:
~/.config/incarcero/~/Library/Application Support/incarcero/C:\Users\<username>\AppData\Local\incarcero\incarcero\Il file si chiama config.js e viene copiato da un file di esempio al primo avvio.
La configurazione di esempio è documentata.
Incarcero utilizza VirtualBox come back-end per impostazione predefinita ma dalla versione 0.3.0 è stato aggiunto il supporto per ESXi / vSphere. Sono disponibili note sui passaggi richiesti per il supporto ESXi / vSphere. Poiché la configurazione di ognuno è leggermente diversa, non esitare ad aprire un problema se incontri un problema o a migliorare la nostra documentazione tramite una pull request.
Stiamo esplorando il concetto di profili che vengono memorizzati separatamente dalla configurazione e possono essere utilizzati per creare file, modificare il registro o installare pacchetti aggiuntivi. Vedi profile-example.js per una configurazione di esempio. Questa nuova funzionalità è sperimentale e soggetta a modifiche mentre sperimentiamo.
Attualmente, incarcero non supporta la creazione automatica dei gruppi di sicurezza, quindi dovrai usare la console AWS per crearli. Tuttavia, utilizzando la libreria Boto3 dovrebbe essere possibile implementarlo.
Questo repository è solo a scopo di ricerca, l'uso di questo codice è di tua responsabilità.
Non mi assumo NESSUNA responsabilità e/o obbligo per come scegli di utilizzare qualsiasi codice sorgente disponibile qui. Utilizzando qualsiasi file disponibile in questo repository, comprendi che ACCETTI DI USARLO A TUO RISCHIO. Ancora una volta, TUTTI i file qui disponibili sono SOLO a scopo EDUCATIVO e/o DI RICERCA.
Non sono l'autore di nessuno dei codici disponibili qui. Questo repository contiene campioni di codice sorgente di malware trapelati online (e trovati in molte altre fonti), l'ho caricato su GitHub per semplificare il processo di chi vuole analizzare il codice.
Qualsiasi azione e/o attività relativa al materiale contenuto in questo repository è esclusivamente di tua responsabilità. L'uso improprio delle informazioni in questo repository può portare a accuse penali contro le persone in questione. Non sarò ritenuto responsabile nel caso in cui vengano mosse accuse penali contro individui che abusano del codice in questo repository per infrangere la legge.
Questo repository non promuove alcuna attività di hacking. Tutte le informazioni in questo repository sono solo a scopo educativo.
Questo progetto è stato ringiovanito con l'aiuto di malboxes.