
Costruisce macchine virtuali Windows per l'analisi di malware in modo che tu non debba farlo.
= Malboxes :toc: preambolo :toclevels: 2 :twob: https://twitter.com/obilodeau :twhg: https://twitter.com/hugospns // roba github ifdef::env-github[:github:]
ifndef::github[] // logo locale image::docs/logos/main.svg[Logo Malboxes] endif::[]
ifdef::github[] // logo su github image::https://raw.githubusercontent.com/GoSecure/malboxes/master/docs/logos/main.svg?sanitize=true[Logo Malboxes]
.Salute del progetto // Stato build Travis image:https://img.shields.io/travis/GoSecure/malboxes/master.svg[Stato Build (Travis CI), link=https://travis-ci.org/GoSecure/malboxes] // BlackHat Arsenal 2017 image:https://raw.githubusercontent.com/toolswatch/badges/master/arsenal/usa/2017.svg?sanitize=true[Black Hat Arsenal, link=https://www.toolswatch.org/2017/06/the-black-hat-arsenal-usa-2017-phenomenal-line-up-announced/] // Chat Gitter image:https://badges.gitter.im/malboxes_/Lobby.svg[link="https://gitter.im/malboxes_/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"] endif::[]
Costruisce macchine virtuali Windows per l'analisi malware così non devi farlo tu.
https://github.com/gosecure/malboxes
== Requisiti
=== Specifiche minime per la macchina di build
=== Fedora
dnf install ruby-devel gcc-c++ zlib-devel
vagrant plugin install winrm winrm-fs
=== Debian
apt install vagrant git python3-pip
=== Ubuntu
apt install git python3-pip
=== ArchLinux
pacman -Sy vagrant packer python-pip git
== Installazione
=== Linux/Unix
pip install malboxes:=== Windows
NOTA: A partire da Windows 10, Hyper-V è sempre in esecuzione sotto il sistema
operativo. Poiché VT-X deve essere gestito in esclusiva da un solo Hypervisor,
https://github.com/GoSecure/malboxes/issues/39[questo causa il fallimento di VirtualBox (e
malboxes)]. Per disabilitare Hyper-V e consentire a
VirtualBox di funzionare, esegui il seguente comando in un prompt dei comandi amministrativo
poi riavvia: bcdedit /set hypervisorlaunchtype off
==== Usando Chocolatey
I seguenti passaggi presuppongono che tu abbia https://chocolatey.org/[Chocolatey] installato. Altrimenti, segui la <<Manualmente,procedura di installazione manuale>>.
==== Manualmente
C:\Windows\System32\=== Per distribuire su AWS (opzionale) 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.
== Utilizzo
=== Creazione del box
Questo crea il tuo box di base che viene importato in Vagrant. In seguito puoi riutilizzare lo stesso box più volte per l'analisi di un campione.
Esegui:
malboxes build <template>
Puoi anche elencare tutti i template supportati con:
malboxes list
Questo costruirà un box Vagrant pronto per l'analisi malware che puoi ora includere in un Vagrantfile successivamente.
Per esempio:
malboxes build win10_x64_analyst
<<_configuration,La sezione configurazione>> contiene ulteriori informazioni su cosa può essere configurato con malboxes.
=== Per istanze di analisi
malboxes spin win10_x64_analyst <nome>
Questo creerà un Vagrantfile preparato per l'uso nell'analisi malware. Spostalo
in una directory a tua scelta ed esegui:
vagrant up
Per impostazione predefinita, la directory locale sarà condivisa nella VM sul Desktop. Questo
può essere modificato commentando la parte pertinente del Vagrantfile.
Per esempio:
malboxes spin win7_x86_analyst 20160519.cryptolocker.xyz
=== Per distribuire su AWS (opzionale)
Malboxes può caricare e interagire con una VM sui servizi Amazon Web. Per farlo, segui questi passaggi:
. Malboxes 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, link:https://docs.aws.amazon.com/quickstarts/latest/s3backup/step-1-create-bucket.html[creane uno ora.]
. La tua istanza richiede anche un link:https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups[gruppo di sicurezza] con almeno una regola che consenta connessioni in entrata per WinRM (Tipo: WinRM-HTTP, Protocollo: TCP, Intervallo porte: 5985, Sorgente: IP pubblico dell'host).
. Successivamente, hai bisogno di un ruolo di servizio vmimport configurato.
Segui la sezione intitolata VM Import Service Role di https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html[questa guida].
Questi passaggi devono essere eseguiti con un account che abbia i permessi iam:CreateRole e iam:PutRolePolicy.
. Se viene utilizzata la <<_configuration,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 <> e <> per avviare la tua istanza!
NOTA: L'importazione AMI può richiedere molto tempo (circa un'ora), tuttavia puoi verificare lo stato dell'attività eseguendo <<Stato importazione AMI, questo>>. Al momento, può essere costruito un solo AMI per template.
==== Stato importazione AMI Installa awscli usando pip:
pip install awscli
link:https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration[Configura] awscli con:
aws configure
Poi esegui:
aws ec2 describe-import-image-tasks
==== RDP
Per connetterti a un'istanza nel 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 in entrata RDP (Tipo: RDP, Protocollo: TCP, Intervallo porte: 3389, Sorgente: IP pubblico dell'host).
NOTA: Puoi ignorare tranquillamente il seguente errore perché 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.
==== Arresto di un'istanza
Per arrestare un'istanza nel cloud, esegui questo comando nella stessa posizione del tuo Vagrantfile:
vagrant halt
== Configurazione
La configurazione di Malboxes si trova in una directory che segue le convenzioni del sistema operativo abituali:
~/.config/malboxes/~/Library/Application Support/malboxes/C:\Users\<nomeutente>\AppData\Local\malboxes\malboxes\Il file si chiama config.js e viene copiato da un file di esempio al primo avvio.
link:malboxes/config-example.js[La configurazione di esempio] è documentata.
=== Supporto ESXi / vSphere
Malboxes utilizza virtualbox come back-end predefinito ma dalla versione 0.3.0 è stato aggiunto il supporto per ESXi / vSphere. Sono disponibili note sui link:docs/esx-setup.adoc[passaggi richiesti per il supporto ESXi / vSphere]. Poiché ogni configurazione è leggermente diversa, non esitare ad aprire un issue se incontri un problema o a migliorare la nostra documentazione tramite una pull request.
=== Profili
Stiamo esplorando il concetto di profili che vengono memorizzati separatamente dalla configurazione e possono essere utilizzati per creare file, alterare il registro o installare pacchetti aggiuntivi. Vedi link:malboxes/profile-example.js[profile-example.js] per un esempio di configurazione. Questa nuova capacità è sperimentale e soggetta a modifiche mentre la sperimentiamo.
=== Gruppi di sicurezza AWS
Attualmente, Malboxes non supporta la creazione automatica dei gruppi di sicurezza, quindi dovrai usare la console AWS per crearne uno tuo. Tuttavia, utilizzando la libreria link:https://boto3.amazonaws.com/v1/documentation/api/latest/index.html[Boto3] dovrebbe esserci un modo per implementarlo.
== Ulteriori informazioni
=== Video
Video introduttivo
image::https://img.youtube.com/vi/oq6N3WLAoe8/0.jpg[link="https://www.youtube.com/watch?v=oq6N3WLAoe8"]
=== Post del blog
=== Presentazioni
malboxes è stato presentato a https://www.nsec.io/2016/01/applying-devops-principles-for-better-malware-analysis/[NorthSec 2016] in un talk intitolato Applying DevOps Principles for Better Malware Analysis tenuto da link:{twob}[Olivier Bilodeau] e link:{twhg}[Hugo Genesse]
== Licenza
Il codice è concesso in licenza GPLv3+, vedi LICENSE per i dettagli. La documentazione
e il materiale delle presentazioni sono concessi in licenza Creative Commons
Attribution-ShareAlike 4.0, vedi docs/LICENSE per i dettagli.
== Crediti
Dopo aver avuto l'idea per un flusso di lavoro migliorato per l'analista malware basato su ciò che ho usato per lo sviluppo su server Linux (Vagrant), ho rapidamente cercato su Google se qualcuno stesse già facendo qualcosa in tal senso.
Ho trovato il repository https://github.com/m-dwyer/packer-malware[packer-malware] su
github di Mark Andrew Dwyer. Malboxes è stato avviato grazie al suo lavoro che
mi ha aiutato specialmente per quanto riguarda i file Autounattend.xml.