Compare commits
No commits in common. "5ea408247379a44f56cc36b79fe7e39724e77dbc" and "ed0bd30a4574e25e5ea2a243cd0e5cbdac155bd2" have entirely different histories.
5ea4082473
...
ed0bd30a45
|
@ -1,127 +0,0 @@
|
|||
---
|
||||
title: "CAPEv2 Sandbox Teil 2: Einrichtung der VM(s)"
|
||||
date: 2023-12-20T14:41:12+01:00
|
||||
draft: false
|
||||
---
|
||||
|
||||
Nach der Installation der Sandbox-Umgebung an sich kann man an die Erstellung und Installation der VMs gehen.
|
||||
Hier werde ich als Beispiel die Installation einer Windows 7 64bit-VM inkl. Microsoft Office 2010 (32bit) durchführen.
|
||||
Letztendlich gibt es jedoch keinen großen Unterschied zwischen den unterstützten Gast-Betriebssystemen (Windows 7+,
|
||||
MacOS oder diverse Linux-Distributionen), es ist jedoch je nach Platform mehr oder weniger Aufwand (Bei Windows 10+
|
||||
muss Defender komplett deaktiviert werden und es empfiehlt sich den Großteil der Bloatware zu deinstallieren um die
|
||||
Hardwareanforderungen zu verringern).
|
||||
|
||||
Hier ist ein Beispiel der Software, die ich auf meine Windows 7-VM installiere. Der Einfachheit halber packe ich die
|
||||
Dateien alle zusammen in eine ISO-Datei (mithilfe von mkisofs), die ich dann an die VM anhängen kann. Ebenfalls
|
||||
interessant ist es, wenn man zusätzlich zu Software auch Dokumente und Bilder auf der VM ablegt, um eventuelles
|
||||
Ransomware-Verhalten besser beobachten zu können. Das Skript `disable_win7noise.bat` wird mit CAPEv2 ausgeliefert.
|
||||
|
||||
```
|
||||
~ $ ls isos/win7cuckoo
|
||||
7z2301-x64.exe OpenJDK8U-jre_x64_windows_hotspot_8u392b08.msi windows6.1-kb2533552-x64_0ba5ac38d4e1c9588a1e53ad390d23c1e4ecd04d.msu
|
||||
agent.py python-3.8.10.exe windows6.1-kb2533623-x64.msu
|
||||
disable_win7noise.bat VC_redist.x64.exe windows6.1-kb976932-x64_74865ef2562006e51d7f9333b4a8d45b7a749dab.exe
|
||||
ndp48-x86-x64-allos-enu.exe VC_redist.x86.exe Win_x64_576753_mini_installer.exe
|
||||
```
|
||||
|
||||
## Einstellungen im Betriebssystem
|
||||
|
||||
Aufgrund der Weise, wie CAPEv2 funktioniert, muss der VM eine statische IP-Addresse vergeben werden:
|
||||
|
||||
![Win7 statische IP vergeben](/img/blog/2023-cape/win7-static-ip.png)
|
||||
|
||||
Diese IP-Addresse muss dann später in der `/opt/CAPEv2/conf/kvm.conf` eingetragen werden.
|
||||
Ebenfalls sollten UAC und die Windows Firewall deaktiviert werden:
|
||||
|
||||
![Windows 7 Control Panel deaktivierte Firewall](/img/blog/2023-cape/win7_firew.png)
|
||||
![Windows 7 Control Panel deaktivierte User Account Control](/img/blog/2023-cape/win7_uac.png)
|
||||
|
||||
In der Regel setze ich die Auflösung der VM auch hoch, entweder auf 1280x768 oder 1920x1080. Für die Aktivierung von
|
||||
Windows 7 und Office 2010 muss leider - sofern man keinen KMS Server besitzt, den man diesen VMs aussetzen möchte - die
|
||||
Telefonische Aktivierung verwendet werden.
|
||||
|
||||
Bei der Installation von Python und MS-Office ist es wichtig, die 32-Bit-Variante zu verwenden, da die 64Bit-Variante
|
||||
leider nicht mit allen Analyseverfahren kompatibel ist.
|
||||
|
||||
## Agent installieren
|
||||
|
||||
Sobald Python installiert (am besten im PATH registrieren und für alle Benutzer installieren)
|
||||
ist sollte noch Pillow nachinstalliert werden:
|
||||
|
||||
```
|
||||
> py -m pip install --upgrade pip
|
||||
> py -m pip install Pillow==9.5.0
|
||||
```
|
||||
|
||||
`agent.py` ist der Teil der Software, der in der VM mitläuft um die Aufgaben dort auszuführen. Dieser Datei gibt man
|
||||
unter Windows 7 einen Unauffälligen Namen und legt sie unter
|
||||
`C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp` ab, unter Linux lässt man sie entweder von systemd oder
|
||||
cron beim (re)boot starten. Unter Windows 10/11 muss die Datei an einem anderen Ort abgelegt werden und dann ein
|
||||
Scheduled Task erstellt werden, der dieses Skript beim Boot als Admin ausführt. Langfristig habe ich geplant, den Agent
|
||||
und seine Dependencies mit PyInstaller zusammenzufassen.
|
||||
|
||||
Falls die Installation des Agents erfolgreich war, kann man nun auf port 8000 der VM einen JSON-String sehen:
|
||||
|
||||
![Terminal Fenster mit CURL und JSON-Antwort](/img/blog/2023-cape/win7-agent-json.png)
|
||||
|
||||
|
||||
## Konfiguration der VM in virt-manager/libvirt
|
||||
|
||||
Letztendlich ist noch zu empfehlen die Grafik auf VNC umzustellen von Spice und dadurch nicht mehr benötigte Geräte
|
||||
zu entfernen. Dabei muss jedoch ein teil des XML-Codes der VM bearbeitet werden.
|
||||
|
||||
![Displayart von SPICE auf VNC ändern](/img/blog/2023-cape/SPICE2VNC.png)
|
||||
![SPICE-Audio-Zeile löschen](/img/blog/2023-cape/SPICE-Audio.png)
|
||||
*hierfür muss ggf. in den Einstellungen von Virt-Manager der "Advanced"-Modus aktiviert werden.*
|
||||
|
||||
Diese Änderungen machen es möglich, später die Liveansicht im Webbrowser zu verwenden.
|
||||
|
||||
Sobald die VM fertig konfiguriert ist und der Agent erreichbar ist, muss nur noch im laufenden Zustand ein Snapshot
|
||||
erstellt werden.
|
||||
|
||||
## VM in CAPE bekanntmachen
|
||||
|
||||
Nun muss noch die `/opt/CAPEv2/conf/kvm.conf`-Datei angepasst werden. In diesem Fall müssen primär "cuckoo1" durch den
|
||||
Namen der VM ersetzt werden (z.B. win7) und die eingetragene IP-Adresse sowie das Netzwerk angepasst werden.
|
||||
In meinem Fall:
|
||||
- cuckoo1 > win7
|
||||
- 192.168.122.105 > 192.168.1.188
|
||||
- virbr0 > virbr1
|
||||
Dazu müssen noch die Tags hinzugefügt werden, z.B. `tags = win7,msoffice2010`. Bei Windows-Maschinen muss (Wie in der
|
||||
Config-File beschrieben), einer der Tags `winxp,win7,win10,win11` hinzugefügt werden. Nun sollte CAPEv2 die VM kennen. Um
|
||||
dies zu testen, sollte man am besten das System noch einmal neu starten, oder alle CAPE-Dienste neu starten.
|
||||
|
||||
Sollte der Dienst weiterhin nicht starten, kann man mit
|
||||
```sh
|
||||
sudo -u cape bash -c "cd /opt/CAPEv2 &&poetry run python /opt/CAPEv2/cuckoo.py"
|
||||
```
|
||||
versuchen, das Programm manuell zu starten und eventuelle Fehler zu debuggen. Hier wird einem auch angezeigt, welche
|
||||
Python-Pakete noch fehlen und ggf. nachinstalliert werden müssen. Dabei sollte beachtet werden, dass diese immer als
|
||||
`cape` im `/opt/CAPEv2/`-Verzeichnis ausgeführt werden müssen.
|
||||
```
|
||||
root@cape:~# systemctl status cape
|
||||
● cape.service - CAPE
|
||||
Loaded: loaded (/lib/systemd/system/cape.service; enabled; vendor preset: enabled)
|
||||
Active: active (running) since Wed 2023-12-27 17:23:29 UTC; 4s ago
|
||||
Docs: https://github.com/kevoreilly/CAPEv2
|
||||
Main PID: 3515 (python)
|
||||
Tasks: 1 (limit: 38183)
|
||||
Memory: 99.4M
|
||||
CPU: 4.149s
|
||||
CGroup: /system.slice/cape.service
|
||||
└─3515 /home/cape/.cache/pypoetry/virtualenvs/capev2-t2x27zRb-py3.10/bin/python cuckoo>
|
||||
```
|
||||
|
||||
## Reporting-Konfiguration
|
||||
|
||||
In der Datei `/opt/CAPEv2/conf/reporting.conf` muss zumindest das Reporting nach MongoDB oder Elasticsearch aktiviert
|
||||
werden, andere Reports können aber ebenfalls aktiviert werden (z.B. PDF-Reports, die einfach weiterzugeben sind).
|
||||
Nach dieser Änderung muss noch einmal der `cape`-Dienst neu gestartet werden (`systemctl restart cape`).
|
||||
|
||||
## CAPE-Web-UI
|
||||
Nun sollte hoffentlich die Web-UI erreichbar sein und funktionieren:
|
||||
|
||||
![CAPEv2 Dashboard](/img/blog/2023-cape/cape_dashboard.png)
|
||||
|
||||
Jetzt kann man unter "Submit" eine Testdatei hochladen, die analysiert werden soll.
|
||||
Dann heißt es nur noch warten und hoffen, dass der Report erfolgreich generiert wird und keine Fehler geworfen werden.
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
title: "CAPEv2 Sandbox Teil 3: Interaktive Analyse"
|
||||
date: 2023-12-27
|
||||
draft: true
|
||||
---
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 190 KiB |
Before Width: | Height: | Size: 189 KiB |
Before Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 227 KiB |
Before Width: | Height: | Size: 308 KiB |
Before Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 416 KiB |
Before Width: | Height: | Size: 45 KiB |