
Baut Windows-VMs zur Malware-Analyse, damit Sie es nicht selbst machen müssen.
= Malboxes :toc: preamble :toclevels: 2 :twob: https://twitter.com/obilodeau :twhg: https://twitter.com/hugospns // github stuff ifdef::env-github[:github:]
ifndef::github[] // local logo image::docs/logos/main.svg[Malboxes Logo] endif::[]
ifdef::github[] // logo on github image::https://raw.githubusercontent.com/GoSecure/malboxes/master/docs/logos/main.svg?sanitize=true[Malboxes Logo]
.Projektstatus // Travis Build Status image:https://img.shields.io/travis/GoSecure/malboxes/master.svg[Build Status (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/] // Gitter Chat 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::[]
Baut Windows-VMs für Malware-Analyse, damit Sie es nicht selbst machen müssen.
https://github.com/gosecure/malboxes
== Voraussetzungen
=== Mindestanforderungen für den Build-Rechner
=== 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
== Installation
=== Linux/Unix
pip install malboxes:=== Windows
HINWEIS: Seit Windows 10 läuft Hyper-V stets unter dem Betriebssystem. Da VT-X ausschließlich von einem einzigen Hypervisor betrieben werden muss, https://github.com/GoSecure/malboxes/issues/39[führt dies dazu, dass VirtualBox (und malboxes) fehlschlagen]. Um Hyper-V zu deaktivieren und VirtualBox zu ermöglichen, führen Sie den folgenden Befehl in einer administrativen Eingabeaufforderung aus und starten Sie neu: bcdedit /set hypervisorlaunchtype off
==== Mit Chocolatey
Die folgenden Schritte setzen voraus, dass Sie https://chocolatey.org/[Chocolatey] installiert haben. Folgen Sie andernfalls der <<Manually,manuelle Installationsanleitung>>.
==== Manually
C:\Windows\System32\=== Für AWS-Bereitstellung (optional) Führen Sie diesen Befehl nach der normalen Installation aus:
vagrant plugin install vagrant-aws
HINWEIS: Die AWS-Funktion wurde bisher nur unter Linux getestet und EC2 unterstützt keine 32-Bit-Desktop-Version von Windows 10.
== Verwendung
=== Box creation
Dies erstellt Ihre Basis-Box, die in Vagrant importiert wird. Danach können Sie dieselbe Box mehrmals pro Beispielanalyse wiederverwenden.
Ausführen:
malboxes build <template>
Sie können auch alle unterstützten Vorlagen auflisten mit:
malboxes list
Dies erstellt eine Vagrant-Box, die für Malware-Untersuchungen bereit ist. Sie können sie anschließend in ein Vagrantfile einfügen.
Zum Beispiel:
malboxes build win10_x64_analyst
<<_configuration,Der Konfigurationsabschnitt>> enthält weitere Informationen darüber, was mit malboxes konfiguriert werden kann.
=== Per analysis instances
malboxes spin win10_x64_analyst <name>
Dies erstellt ein Vagrantfile, das für die Malware-Analyse vorbereitet ist. Verschieben Sie es in ein Verzeichnis Ihrer Wahl und führen Sie aus:
vagrant up
Standardmäßig wird das lokale Verzeichnis im Desktop der VM freigegeben. Dies kann durch Auskommentieren des entsprechenden Teils der Vagrantfile geändert werden.
Zum Beispiel:
malboxes spin win7_x86_analyst 20160519.cryptolocker.xyz
=== Für AWS-Bereitstellung (optional)
Malboxes kann eine VM in Amazon Web Services hochladen und damit interagieren. Gehen Sie dazu wie folgt vor:
. Malboxes benötigt einen S3-Bucket in AWS, um die VM hochzuladen, bevor sie in ein AMI (Amazon Machine Image) konvertiert wird. Wenn Sie keinen haben, link:https://docs.aws.amazon.com/quickstarts/latest/s3backup/step-1-create-bucket.html[erstellen Sie jetzt einen.]
. Ihre Instanz benötigt außerdem eine link:https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups[Sicherheitsgruppe] mit mindestens einer Regel, die eingehende Verbindungen für WinRM zulässt (Typ: WinRM-HTTP, Protokoll: TCP, Portbereich: 5985, Quelle: öffentliche IP des Hosts).
. Als nächstes benötigen Sie eine konfigurierte Dienstrolle vmimport. Folgen Sie dem Abschnitt VM Import Service Role in https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html[dieser Anleitung]. Diese Schritte müssen mit einem Konto durchgeführt werden, das über die Berechtigungen iam:CreateRole und iam:PutRolePolicy verfügt.
. Wenn die <<_configuration,Standardkonfiguration>> verwendet wird, ändern Sie den Hypervisor auf aws und füllen Sie die zugehörigen Pflichtoptionen aus. Andernfalls stellen Sie sicher, dass Sie alle AWS-Optionen zu Ihrer benutzerdefinierten Konfiguration hinzufügen.
. Abschließend können Sie die gleichen Schritte wie in den Abschnitten <> und <> befolgen, um Ihre Instanz zu starten!
HINWEIS: Der AMI-Import kann sehr lange dauern (etwa eine Stunde), Sie können den Status der Aufgabe jedoch über <<AMI import status,dieses>> überprüfen. Derzeit kann pro Vorlage nur ein AMI erstellt werden.
==== AMI import status Installieren Sie awscli mit pip:
pip install awscli
link:https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration[Konfigurieren Sie] awscli mit:
aws configure
Dann führen Sie aus:
aws ec2 describe-import-image-tasks
==== RDP
Um über RDP eine Verbindung zu einer Instanz in der Cloud herzustellen, führen Sie diesen Befehl am gleichen Ort wie Ihre Vagrantfile aus:
vagrant rdp -- /cert-ignore
Damit dies funktioniert, benötigt die Instanz eine Sicherheitsgruppe, die eingehende RDP-Verbindungen zulässt (Typ: RDP, Protokoll: TCP, Portbereich: 3389, Quelle: öffentliche IP des Hosts).
HINWEIS: Sie können den folgenden Fehler ignorieren, da rsync noch nicht implementiert ist: No host IP was given to the Vagrant core NFS helper. This is an internal error that should be reported as a bug.
==== Stopping an Instance
Um eine Instanz in der Cloud zu stoppen, führen Sie diesen Befehl am gleichen Ort wie Ihre Vagrantfile aus:
vagrant halt
== Konfiguration