251 views
![Hochschule Niederrhein Elektrotechnik und Informatik Logo](https://codi.ide3.de/uploads/eb556b14-17a5-4189-9425-4df853b7669a.png) # Ransomware-Triangulation **Ransomware bauen, verteilen und analysieren** Benötigte Ressourcen: - Computer (x86_64, kein ARM-Prozessor!) - min. 8 GB RAM, ca. 25 GB freier Festplattenspeicher - [VirtualBox](https://www.virtualbox.org) - [Wireshark](https://www.wireshark.org) --- ## Szenario In diesem Workshop werden Sie eine Ransomware-Infizierung aus der Perspektive des Angreifers (**Anon**), des Opfers (**User**) und der Ermittelnden (**Investigator**) kennenlernen. ### Anon Sie generieren auf Ihrem minimalistischen Linux-System (**raasnet-attacker** VM) eine Ransomware und möchten damit insbesondere Nutzer:innen von Linux-Systemen erpressen, die erst kürzlich von Windows migriert sind. Dazu verstecken Sie die Ransomware in einem Debian Paket als vermeintliches Antiviren-Programm und stellen das Paket über eine Produkt-Website für das Antiviren-Programm bereit. ### User Sie sind auf der Suche nach einem Antiviren-Programm für Ihr neu installiertes Kubuntu Linux-System (**raasnet-victim** VM). Da Sie es als Windows-Nutzer:in gewohnt sind Software über eine Internetsuche zu beziehen, nutzen Sie eine Suchmaschine und installieren ein Antiviren-Programm manuell (anstatt mit den Paketmanager). ### Investigator Sie werden von O einbezogen, nachdem eine Ransomware dessen Computer befallen hat. Ihre Aufgabe ist es die Infektion zu rekonstruieren, Spuren der Ransomware zu untersuchen und Möglichkeiten zur Entschlüsselung zu finden. Dazu arbeiten Sie auf dem System des Opfers und mit einem Mitschnitt des Netzwerkverkehrs, den Sie im Netzwerk der beiden VMs über Ihr Host-System aufzeichnen. ::: danger Die Ransomware-as-a-Service Umgebung [RAASNet](https://github.com/MLX15/RAASNet) wird Ihnen ausschließlich als Untersuchungsobjekt innerhalb der *raasnet-attacker* VM zur Verfügung gestellt. Wenn Sie diese Software außerhalb dieses Rahmens und für illegale Zwecke verwenden, machen Sie sich strafbar. ::: ## Vorbereitung Installieren Sie ggf. VirtualBox und Wireshark. Verwenden Sie die jeweiligen Download-Seiten und offizielle Dokumentation zur Unterstützung. VirtualBox: - [Download](https://www.virtualbox.org/wiki/Downloads) - [Dokumentation](https://www.virtualbox.org/manual/) Wireshark: - [Download](https://www.wireshark.org/#downloadLink) - [User Guide](https://www.wireshark.org/docs/wsug_html_chunked/) ## Anon Rolle ### raasnet-attacker VM importieren 1. Laden Sie die Appliance `raasnet-attacker.ova` über den aus dem Workshop bekannten Link zur sciebo-Freigabe herunter. 2. Importieren Sie die zuvor heruntergeladene Appliance als neue VM (siehe ggf. [Importing an Appliance in OVF Format](https://www.virtualbox.org/manual/topics/Introduction.html#ovf-import-appliance)). 3. Kontrollieren Sie *Adapter 1*. Dieser sollte wie folgt konfiguriert sein und nicht verändert werden: - Angeschlossen an: Internes Netzwerk - Name: raasnet 4. Falls nicht, legen Sie diesen mit den obigen Eigenschaften an (siehe ggf. [Internal Networking](https://www.virtualbox.org/manual/ch06.html#network_internal)). 5. Starten Sie die zuvor importierte VM mit dem Namen *raasnet-attacker* im VirtualBox Manager, indem Sie diese markieren und den Button **Starten** klicken. 6. Nach wenigen Sekunden sollte die VM booten und automatisch das Login GUI von RAASNet gestartet werden. (Es wird eine minimalistische grafische Umgebung mit Openbox[^1] Window Manager und X11[^2] verwendet.) 7. Erstellen Sie einen Sicherungspunkt über das Menü **Maschine** > **Sicherungspunkt erstellen**, um den Initialzustand der VM zu sichern. Sie können als Namen oder Beschreibung "Initialzustand" verwenden. ### RAASNet Payload erstellen 1. Klicken Sie im Login-Fenster von RAASNet auf den **LOGIN** Button. 2. Im Menü von RAASNet klicken Sie den **GENERATE PAYLOAD** Button, um das *Generate Payload* Fenster zu öffnen. 3. Im Host-Feld sollte die IP-Adresse `192.168.42.42` eingetragen sein. (Falls nicht, geben Sie diese manuell ein und achten Sie auf die richtige Schreibweise.) 4. Klicken Sie den **GENERATE** Button. Es wird daraufhin eine Dialogbox mit der Meldung "Payload and decryptor were successfully generated!" angezeigt. (Möglicherweise müssen Sie die zuvor geöffneten Fenster verschieben, um die Dialogbox zu sehen.) Klicken Sie in der Dialogbox auf den **OK** Button, um die Payload-Generierung Vorgang abzuschließen. 5. Klicken Sie im RAASNet Menü den Button **COMPILE PAYLOAD**. 6. Im dem neuen *Compile* Fenster sind keinerlei EIngaben notwendig. Klicken Sie den **FINISH** Button und warten Sie bis der Kompilierungsvorgang abgeschlossen ist. (Sie können diesen im XTerm-Fenster mit dem Titel *startraas* im Hintergrund verfolgen.) 7. Im Anschluss werden Sie gefragt, ob Sie auch einen Decryptor (zur Entschlüsselung) kompilieren wollen. Klicken Sie den **Ja** Button, warten Sie dessen Kompilierung ab und bestätigen Sie abschließend die Dialogbox mit dem **OK** Button. 8. Klicken Sie zuletzt im RAASNet Menü auf **START SERVER**. Im Host-Feld des *Settings* Fensters sollte ebenfalls die IP-Adresse `192.168.42.42` eingetragen sein. (Falls nicht, geben Sie diese manuell ein und achten Sie auf die richtige Schreibweise.) Klicken Sie schließlich **OK**, um mit dem *Demonware Server* Fenster auf Infizierungen zu lauschen. ### Ransomware paketieren und bereitstellen 1. Führen Sie auf einem freien Bereich des Hintergrunds in der raasnet-attacker VM einen Rechtsklick aus und wählen Sie **Terminal emulator** im Kontextmenü, um eine zusätzliches XTerm Fenster zu öffnen. 2. Geben Sie darin den folgenden Befehl ein, um das Debian paket zu bauen und im Verzeichnis `~/public_html/download` abzulegen: ```bash dpkg-deb -b ~/linux-ultimate-av_1.0-1 ~/public_html/download/ ``` 3. Warten Sie bis der Build-Prozess abgeschlossen ist und erneut die Eingabeaufforderung `anon@raasnet-attacker:~$` im XTerm Fenster verfügbar wird. 4. Wechseln Sie anschließend zurück zum *Demonware Server* Fenster, indem Sie dieses anklicken. ## User Rolle ### raasnet-victim VM importieren und starten 1. Laden Sie die Appliance `raasnet-victim.ova` über den aus dem Workshop bekannten Link zur sciebo-Freigabe herunter. 2. Importieren Sie die zuvor heruntergeladene Appliance als neue VM (siehe ggf. [Importing an Appliance in OVF Format](https://www.virtualbox.org/manual/topics/Introduction.html#ovf-import-appliance)). 3. Kontrollieren Sie *Adapter 1*. Dieser sollte wie folgt konfiguriert sein und nicht verändert werden: - Angeschlossen an: Internes Netzwerk - Name: raasnet 4. Falls nicht, legen Sie diesen mit den obigen Eigenschaften an (siehe ggf. [Internal Networking](https://www.virtualbox.org/manual/ch06.html#network_internal)). 5. Aktivieren Sie die Netzwerkverfolgung für die zuvor importierte *raasnet-victim* VM. Je nach Host-Betriebssystem auf dem VirtualBox installiert ist, unterscheidet sich der Befehl zur Aktivierung wie folgt: Linux oder mac OS Terminal: ```bash vboxmanage modifyvm "raasnet-victim" --nictrace1 on --nictracefile1 "$HOME/raasnet-victim_traffic.pcap" ``` Windows Powershell: ```powershell & "$env:ProgramFiles\Oracle\VirtualBox\VBoxManage.exe" modifyvm "raasnet-victim" --nictrace1 on --nictracefile1 "$env:USERPROFILE\raasnet-victim_traffic.pcap" ``` 6. Starten Sie die raasnet-victim VM im VirtualBox Manager, indem Sie diese markieren und den Button **Starten** klicken. 7. Öffnen Sie auf Ihrem Host-System einen Dateibrowser und navigieren Sie in ihr Heimatverzeichnis aus dem vorherigen Befehl (z.B. `/home/<Ihr-Benutzername>` in Linux, `/Users/<Ihr-Benutzername>` in mac OS oder `C:\Benutzer\<Ihr-Benutzername>` in Windows). Dort sollte die Datei `raasnet-victim_traffic.pcap` erstellt worden sein. 8. Wechseln Sie zum Fenster der raasnet-victim VM und erstellen einen Sicherungspunkt über das Menü **Maschine** > **Sicherungspunkt erstellen**, um einen funktionstüchtigen Zustand der VM zu sichern. ::: warning Sobald die raasnet-victim VM heruntergefahren wird, ist die Netzwerkverfolgung ggf. nicht mehr aktiv. Sie müssen vor dem Starten der VM daher den Befehl aus Schritt 5. erneut ausführen. Die vorhandene `.pcap` Datei wird dabei überschrieben! ::: ### Netzwerkverfolgung überprüfen 1. Installieren Sie Wireshark auf Ihrem Host-System (siehe ggf. [#Vorbereitung](#Vorbereitung) in der Dokumentation), falls dieses nicht bereits installiert ist. 2. Starten Sie Wireshark und öffnen Sie darin testweise die zuvor angelegte Datei `raasnet-victim_traffic.pcap`. 3. Sie sollten bereits einige Pakete von Protokolle wie ARP, ICMPv6, o.ä. sehen. Damit ist die Netzwerkverfolgung für die Untersuchung als Ermittelnde sichergestellt. 4. Schließen Sie Wireshark wieder. ### Vermeintlichen Antivirus herunterladen und ausführen 1. Wechseln Sie zur raasnet-victim VM und starten Sie in dieser den Firefox Webbrowser über die Taskleiste. 2. Als Startseite sollte automatisch die Website http://search.internet aufgerufen werden. (Falls nicht, navigieren Sie mit dem Lesezeichen "search.internet" unterhalb der Adressleiste zu dieser Website.) 3. Geben Sie `linux antivirus` o.ä. als Suchbegriff auf der Search Website ein und klicken Sie den **Search** Button oder bestätigen Sie mit der `<Enter>`-Taste. Klicken Sie auf eines der Suchergebnisse (z.B. "SecureCode News: Anything you need to know about cybersecurity tools"), um dort hin zu navigieren. 4. Klickem Sie auf der *Linux Ultimate AV* Website auf den Button **Download Free**, um das Debian Paket herunterzuladen. 5. Klicken Sie in dem automatisch geöffneten Dialog mit den Downloads auf die heruntergeladene Datei `linux-ultimate-av_1.0-1_amd64.deb` (nicht auf das Ordner-Symbol). 6. Nach kurzer Wartezeit wird das Debian Paket mit *Discover* geöffnet und es erscheint eine Fehlermeldung, da die VM keinen Internetzugang hat. Schließen Sie den angezeigten Fehler. 7. Docken Sie das Discover-Fenster an die rechte Seite des Bildschirms und minimieren Sie das Fenster mit dem Webbrowser, sodass Sie die Dateien auf dem Desktop sehen können. 8. Klicken Sie in Discover den Button **Install**, geben Sie bei der Passwortabfrage `user` ein und warten Sie bis der Installationsprozess abgeschlossen ist. Klicken Sie schließlich auf den **Launch** Button. Daraufhin wird der Payload ausgeführt. Lassen Sie dieses Fenster geöffnet! 9. Wechseln Sie zum VirtualBox Fenster der raasnet-attacker VM, um zu überprüfen, dass im Demonware Server eine Infizierung für den Host `raasnet-victim` mit der IP-Adresse `192.168.42.69` festgestellt wurde und der *Key* zur Entschlüsselung angezeigt wird. ::: success Sie haben als Anon erfolgreich ein Opfer mit Ihrer Ransomware infiziert und können nun auf die Bezahlung warten. Anschließend könnten Sie guten Willen zeigen, indem Sie den Key übermitteln und Instruktionen zur Entschlüsselung geben. Lassen Sie dazu die raasnet-attacker VM mit dem Demonware Server Fenster geöffnet. ::: ### Entschlüsselung der Dateien 1. Wechseln Sie zurück zur raasnet-victim VM und schließen Sie alle offenen Fenster (Ransomware, Discover und Firefox). 2. Minimieren Sie alle offenen Anwendungen und machen Sie eine Schadensaufnahme. Öffnen Sie dazu Dolphin[^3] (File Manager) und navigieren Sie durch die Ordner des Heimatverzeichnisses. 3. Versuchen Sie Dateien zu öffnen. Falls der Dialog "Choose Application" angezeigt wird, geben Sie `kate` ein und wählen Sie *Kate* aus der Kategorie "Development" aus. Welche Dateien wurden verschlüsselt, welche nicht? Machen Sie sich Notizen. 4. Öffnen Sie eine Konsole[^4] (KDE-Terminal), indem Sie die Tastenkombination `<Alt>+<F2>` benutzen und `konsole` als Befehl eingeben. Geben Sie in der Konsole den folgendem Befehl ein, um nach dem Pfad für den Decryptor zu suchen: ```bash which decryptor ``` 5. Starten Sie den Decryptor, indem Sie die ausgegebene Zeile eingeben und als Befehl ausführen. (Sie können die Zeile mit der Maus markieren und per Rechtsklick kopieren sowie einfügen.) Die Zeile sollte wie folgt lauten: ```bash /usr/local/bin/decryptor ``` 6. Geben Sie den *Key* sorgfältig aus dem Demonware Server Fenster der raasnet-attacker VM ein und klicken Sie den **OK** Button. (Falls dieser nicht korrekt eingegeben wurde und Sie fortfahren, können die verschlüsselten Dateien nicht entschlüsselt werden und sind verloren!) 7. Übernehmen Sie den voreingestellten Pfad `/home/user` in der Liste *Directory*, indem Sie **OK** klicken. Bestätigen Sie die Rückfrage mit dem **OK** Button. 8. Nach der Entschlüsselung wird in der Konsole die Anzahl der entschlüsselten Dateien angezeigt. Überprüfen Sie dies, indem Sie den Schritt 2. und 3. dieses Abschnitts wiederholen. 9. Fahren Sie die raasnet-victim VM zunächst herunter, um als Ermittelnde die Netzwerkverfolgung zu sichern. Klicken Sie dazu **Shutdown** im Startmenü und bestätigen Sie anschließend mit dem **OK** Button. ## Investigator Rolle ::: danger Kopieren Sie zunächst die Datei `raasnet-victim_traffic.pcap` an einen anderen Speicherort, um ein versehentliches Überschreiben zu verhindern. ::: ### Spuren auf der raasnet-victim VM 1. Starten Sie die raasnet-victim VM erneut. (Sie brauchen jedoch keine Netzwerkverfolgung wie in Schritt 5. des Abschnitts [#raasnet-victim VM importieren und starten](#raasnet-victim-VM-importieren-und-starten) konfigurieren!) 2. Öffnen Sie eine Konsole mit der Tastenkombination `<Alt>+<F2>` und dem Befehl `konsole`. Geben Sie in der Konsole den folgenden Befehl ein, um derzeit aktive Netzwerkverbindungen anzuzeigen: ```bash ss -tunap ``` 3. Suchen Sie im Startmenü nach `antivirus` und starten Sie "Linux Ultimate AV", um die Ransomware erneut auszuführen. (Beachten Sie, dass im Demonware Server Fenster in der raasnet-attacker VM eine neue Infizierung mit einem anderen Key erkannt wurde!) 4. Lassen Sie die Ransomware geöffnet und wechseln Sie zur Konsole. Wiederholen Sie den Befehl zum Anzeigen der aktiven Netzwerkverbindungen aus Schritt 2., indem Sie den letzten Befehl aus der Bash History wie folgt wiederholt ausführen lassen: ```bash !! ``` 5. Welche der Verbindungen ist im Vergleich zu den aktiven Netzwerkverbindungen in Schritt 2. neu? Welche IP-Adressen sind hier angegeben? Und welcher Port wird für die *Peer Address* verwendet und wie ist die Prozess-ID (PID)? Machen Sie sich Notizen. 6. Untersuchen Sie mit welchem Kommando die Ransomware ausgeführt wird. Ersetzen Sie `<PID>` mit der zuvor ermittelten Prozess-ID (z.B. 1996) im folgenden Befehl und führen Sie diesen aus: ```bash ps -o exe -p <PID> ``` 7. Nutzen Sie die neue Erkenntnis und erstellen Sie eine SHA-256 Hashsumme für den Payload der Ransomware mit dem folgenden Befehl: ```bash sha256sum /usr/local/bin/payload ``` 8. Überlegen Sie wie die bisher gesammelten Informationen für weitere Ermittlungen genutzt werden könnten. Recherchieren Sie ggf. auf Ihrem Host-System nach typischen Ermittlungsansätzen. 9. Schließen Sie zuletzt alle offenen Anwendungen und fahren Sie die raasnet-victim VM herunter (Startmenü > **Shut Down** > **OK**). Fahren Sie auch die raasnet-attacker VM herunter, indem Sie im Menü des VM-Fensters **Maschine** > **Ausschalten per ACPI** wählen. ### Spuren in der Netzwerkverfolgung 1. Öffnen Sie den zu Beginn der Investigator Rolle kopierten Mittschnitt `raasnet-victim_traffic.pcap` in Wireshark. 2. Verwenden Sie in Wireshark den folgenden Anzeigefilter, um im Mittschnitt nach URIs zu suchen, die die Zeichenkette `linux` enthalten: ``` http.request.uri contains "linux" ``` 3. Versuchen Sie den Suchbegriff, den Sie im Abschnitt [#Vermeintlichen Antivirus herunterladen und ausführen](#Vermeintlichen-Antivirus-herunterladen-und-ausf%C3%BChren) bei Search verwendet haben, wieder zu finden. Welche IP-Adresse hat der angefragte Webserver? Mit welchem HTTP-Anfragetyp wurde das Debian Paket übertragen? 4. Löschen Sie den aktuellen Anzeigefilter und verwenden Sie den im vorherigen Abschnitt ermittelten Peer Address Port und für die Angabe des `<PORT>` im folgenden Anzeigefilter: ``` tcp.port == <PORT> ``` 5. Markieren Sie einen der Frames und führen Sie einen Rechtsklick aus. Wählen Sie **Folgen** > **TCP-Stream**. 6. Welche Informationen könnte hier übertragen worden sein? 7. Diskutieren Sie mit anderen Teilnehmenden wie Ihnen die gesammelten Informationen helfen und welche Maßnahmen zur weiteren Ermittlung unternommen werden können. 8. Recherchieren Sie außerdem welche Verbesserungen in der Ransomware vorgenommen werden könnten, um zukünftige Ermittlungen zu erschweren. Nutzen Sie folgende Stichworte zur Unterstützung: - DNS Tunneling - HTTPS - Tor-Client - VPN-Client Falls Sie mit dieser Umgebung experimentieren wollen, setzen Sie ggf. beide VMs auf den jeweils zuvor angelegten Sicherungspunkt zurück und starten Sie erneut. ::: info Dieser Workshop ist am Cyber Management Campus Mönchengladbach entwickelt worden. Das Werk von Sven Thielen ist unter <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a><img src="https://mirrors.creativecommons.org/presskit/icons/cc.svg" style="max-width: 1em;max-height:1em;margin-left: .2em;"><img src="https://mirrors.creativecommons.org/presskit/icons/by.svg" style="max-width: 1em;max-height:1em;margin-left: .2em;"><img src="https://mirrors.creativecommons.org/presskit/icons/sa.svg" style="max-width: 1em;max-height:1em;margin-left: .2em;"> und steht Ihnen im Rahmen von Forschung und Lehre hiermit zur Verfügung. <br> [![Cyber Campus NRW Logo](https://codi.ide3.de/uploads/12e75572-797e-4928-bbbd-8d15f894d470.svg)](https://cybercampus-nrw.de/) <br> Lassen Sie uns gerne wissen, wenn Sie Änderungsvorschläge oder eigene Erweiterungen für diese Umgebung haben. :smiley: Kontakt: [caday@stlen.unbox.at](mailto:caday@stlen.unbox.at?subject=RAASNet-Triangulation,%2023.%20Nationaler%20Akademietag) ::: [^1]: [Openbox](https://openbox.org/) Website [^2]: [Xorg](https://www.x.org/wiki/) Website [^3]: [Dolphin](https://apps.kde.org/dolphin/) Website [^4]: [Konsole](https://konsole.kde.org/) Website