
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: