Compare commits
	
		
			3 commits
		
	
	
		
			ed0bd30a45
			...
			5ea4082473
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
							 | 
						5ea4082473 | ||
| 
							 | 
						4efbcf218e | ||
| 
							 | 
						5a89e7ed0d | 
							
								
								
									
										127
									
								
								content/blog/2023-12-20-cape-part2.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,127 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					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:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					## 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. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*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:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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.
 | 
				
			||||||
							
								
								
									
										8
									
								
								content/blog/2023-12-27-cape-part-3.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					title: "CAPEv2 Sandbox Teil 3: Interaktive Analyse"
 | 
				
			||||||
 | 
					date: 2023-12-27
 | 
				
			||||||
 | 
					draft: true
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										0
									
								
								example-files/2023-12-20-cape-kvm.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/img/blog/2023-cape/SPICE-Audio.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 190 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								static/img/blog/2023-cape/SPICE2VNC.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 189 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								static/img/blog/2023-cape/cape_dashboard.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 112 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								static/img/blog/2023-cape/win7-agent-json.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 227 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								static/img/blog/2023-cape/win7-install.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 308 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								static/img/blog/2023-cape/win7-static-ip.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 63 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								static/img/blog/2023-cape/win7_firew.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 416 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								static/img/blog/2023-cape/win7_uac.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 45 KiB  |