
Incarcero ist ein Tool, das virtuelle Maschinen (VMs) erstellt, die ohne jegliche Benutzerinteraktion mit Malware-Analyse-Tools und auf die Malware-Analyse zugeschnittenen Sicherheitseinstellungen vorkonfiguriert sind.
Malware-Analyse ist wie das Entschärfen von Bomben. Das Ziel ist es, ein Programm zu zerlegen und zu verstehen, das dazu gebaut wurde, Schaden anzurichten, und das oft verschleiert (d. h. gepackt) ist, um die Analyse zu erschweren.
Incarcero ist ein Werkzeug, das virtuelle Maschinen (VMs) erstellt, die mit Malware-Analyse-Werkzeugen und Sicherheitseinstellungen vorkonfiguriert sind, die auf die Malware-Analyse zugeschnitten sind, ohne dass eine Benutzerinteraktion erforderlich ist.
Darüber hinaus enthält dieses Repository wahrscheinlich die größte Malware-Quellcode-Sammlung sowie ein Modul, mit dem man Malware-Beispiele aus beliebten Online-Datenbanken herunterladen kann.
Hinweis: Binärdateien mit generischen Namen wie MD5-Wert oder smbXXX.tmp wurden von VirusTotal zum Zeitpunkt des Hochladens nicht als Malware erkannt, aber das bedeutet nicht, dass es sich nicht um eine Malware-Stichprobe handelt. Bitte zögern Sie nicht, alle Beispiele in diesem Repository einzurichten, zu analysieren und einem Reverse Engineering zu unterziehen. Wenn Sie dies tatsächlich tun, lassen Sie mich die Ergebnisse Ihrer Untersuchung wissen.
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
Hinweis: Ab Windows 10 läuft Hyper-V immer unterhalb des Betriebssystems. Da VT-X ausschließlich von genau einem Hypervisor betrieben werden muss, führt dies dazu, dass VirtualBox (und incarcero) fehlschlagen. Um Hyper-V zu deaktivieren und VirtualBox die Ausführung zu ermöglichen, führen Sie den folgenden Befehl in einer administrativen Eingabeaufforderung aus und starten Sie dann neu: bcdedit /set hypervisorlaunchtype off. Ab Version 6 von Virtualbox wird die Verwendung von Hyper-V als Fallback-Ausführungskern unterstützt (Changelog).
Die folgenden Schritte setzen voraus, dass Sie https://chocolatey.org/[Chocolatey] installiert haben. Andernfalls befolgen Sie die manuelle Installationsanleitung.
Abhängigkeiten installieren:
choco install python vagrant packer git virtualbox
Konsole aktualisieren:
refreshenv
incarcero installieren:
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
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.
Dies erstellt Ihre Basis-Box, die in Vagrant importiert wird. Danach können Sie dieselbe Box mehrmals für die Analyse von Stichproben wiederverwenden.
Führen Sie aus:
incarcero build <template>
Sie können auch alle unterstützten Vorlagen auflisten mit:
incarcero list
Dies erstellt eine Vagrant-Box, die für Malware-Untersuchungen bereit ist und die Sie anschließend in eine Vagrantfile aufnehmen können.
Zum Beispiel:
incarcero build win10_x64_analyst
Der Abschnitt Konfiguration enthält weitere Informationen darüber, was mit incarcero konfiguriert werden kann.
incarcero spin win10_x64_analyst <name>
Dadurch wird eine Vagrantfile erstellt, die für die Malware-Analyse vorbereitet ist. Verschieben Sie sie 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 geändert werden, indem der entsprechende Teil der Vagrantfile auskommentiert wird.
Zum Beispiel:
incarcero spin win7_x86_analyst 20160519.cryptolocker.xyz
incarcero kann eine VM in den Amazon Web Services hochladen und mit ihr interagieren. Gehen Sie dazu wie folgt vor:
. incarcero benötigt einen S3-Bucket auf AWS, um die VM hochzuladen, bevor sie in ein AMI (Amazon Machine Image) konvertiert wird. Wenn Sie keinen haben, erstellen Sie jetzt einen.
. Ihre Instanz benötigt außerdem eine 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.
Befolgen Sie den Abschnitt VM Import Service Role in diesem Leitfaden.
Diese Schritte müssen mit einem Konto ausgeführt werden, das über die Berechtigungen iam:CreateRole und iam:PutRolePolicy verfügt.
. Wenn die Standardkonfiguration verwendet wird, ändern Sie den Hypervisor auf aws und füllen Sie die zugehörigen Pflichtoptionen aus. Andernfalls fügen Sie unbedingt alle AWS-bezogenen Optionen zu Ihrer benutzerdefinierten Konfiguration hinzu.
. Schließlich können Sie die gleichen Schritte befolgen, die in den Abschnitten Box-Erstellung und Instanzen pro Analyse beschrieben sind, um Ihre Instanz zu starten!
Hinweis: Der AMI-Import kann sehr lange dauern (etwa eine Stunde). Sie können den Status der Aufgabe jedoch überprüfen, indem Sie dies tun. Derzeit kann pro Vorlage nur ein AMI erstellt werden.
Installieren Sie awscli mit pip:
pip install awscli
Konfigurieren Sie awscli mit:
aws configure
Führen Sie dann aus:
aws ec2 describe-import-image-tasks
Um über RDP eine Verbindung zu einer Instanz in der Cloud herzustellen, führen Sie diesen Befehl an derselben Stelle 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).