diff --git a/.astro/content.d.ts b/.astro/content.d.ts index 2a98031..fabc448 100644 --- a/.astro/content.d.ts +++ b/.astro/content.d.ts @@ -164,11 +164,9 @@ declare module 'astro:content' { type DataEntryMap = { "knowledgebase": Record; + data: any; rendered?: RenderedContent; filePath?: string; }>; diff --git a/.astro/data-store.json b/.astro/data-store.json index bd2e295..818d43d 100644 --- a/.astro/data-store.json +++ b/.astro/data-store.json @@ -1 +1 @@ -[["Map",1,2,9,10],"meta::meta",["Map",3,4,5,6,7,8],"astro-version","5.12.0","content-config-digest","87e4412f3e9f505f","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"server\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":true,\"port\":4321,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\",\"entrypoint\":\"astro/assets/endpoint/node\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false,\"liveContentCollections\":false,\"csp\":false,\"rawEnvValues\":false},\"legacy\":{\"collections\":false},\"session\":{\"driver\":\"fs-lite\",\"options\":{\"base\":\"/var/home/user01/Projekte/cc24-hub/node_modules/.astro/sessions\"}}}","knowledgebase",["Map",11,12,84,85,161,162,240,241,301,302,371,372],"regular-expressions-regex",{"id":11,"data":13,"body":35,"filePath":36,"digest":37,"rendered":38,"legacyId":83},{"title":14,"tool_name":15,"description":16,"last_updated":17,"author":18,"difficulty":19,"categories":20,"tags":25,"sections":31,"review_status":34},"Regular Expressions (Regex) – Musterbasierte Textanalyse","Regular Expressions (Regex)","Pattern matching language für Suche, Extraktion und Manipulation von Text in forensischen Analysen.",["Date","2025-07-20T00:00:00.000Z"],"CC24-Team","intermediate",[21,22,23,24],"incident-response","malware-analysis","network-forensics","fraud-investigation",[26,27,28,29,30],"pattern-matching","text-processing","log-analysis","string-manipulation","search-algorithms",{"overview":32,"installation":33,"configuration":33,"usage_examples":32,"best_practices":32,"troubleshooting":33,"advanced_topics":32},true,false,"published","> **⚠️ Hinweis**: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\n\n\n# Übersicht\n\n**Regular Expressions (Regex)** sind ein leistungsfähiges Werkzeug zur Erkennung, Extraktion und Transformation von Zeichenfolgen anhand vordefinierter Muster. In der digitalen Forensik sind Regex-Ausdrücke unverzichtbar: Sie helfen beim Auffinden von IP-Adressen, Hash-Werten, Dateipfaden, Malware-Signaturen oder Kreditkartennummern in großen Mengen unstrukturierter Daten wie Logdateien, Netzwerktraces oder Memory Dumps.\n\nRegex ist nicht auf eine bestimmte Plattform oder Software beschränkt – es wird in nahezu allen gängigen Programmiersprachen, Texteditoren und forensischen Tools unterstützt.\n\n## Verwendungsbeispiele\n\n### 1. IP-Adressen extrahieren\n\n```regex\n\\b(?:\\d{1,3}\\.){3}\\d{1,3}\\b\n````\n\nVerwendung:\n\n* Finden von IP-Adressen in Firewall-Logs oder Packet Captures.\n* Beispiel-Zeile:\n\n ```\n Connection from 192.168.1.101 to port 443 established\n ```\n\n### 2. E-Mail-Adressen identifizieren\n\n```regex\n[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}\n```\n\nVerwendung:\n\n* Erkennung von kompromittierten Accounts in Phishing-E-Mails.\n* Analyse von Useraktivitäten oder Kommunikationsverläufen.\n\n### 3. Hash-Werte erkennen (z. B. SHA-256)\n\n```regex\n\\b[A-Fa-f0-9]{64}\\b\n```\n\nVerwendung:\n\n* Extraktion von Malware-Hashes aus Memory Dumps oder YARA-Logs.\n\n### 4. Zeitstempel in Logdateien extrahieren\n\n```regex\n\\d{4}-\\d{2}-\\d{2}[ T]\\d{2}:\\d{2}:\\d{2}\n```\n\nVerwendung:\n\n* Zeitsensitive Korrelationsanalysen (z. B. bei Intrusion Detection oder Timeline-Rekonstruktionen).\n\n## Best Practices\n\n* **Regex testen**: Nutze Plattformen wie [regexr.com](https://regexr.com/) oder [regex101.com](https://regex101.com/) zur Validierung.\n* **Performance beachten**: Komplexe Ausdrücke können ineffizient sein und Systeme verlangsamen – verwende Lazy Quantifiers (`*?`, `+?`) bei Bedarf.\n* **Escape-Zeichen korrekt anwenden**: Spezielle Zeichen wie `.` oder `\\` müssen bei Bedarf mit `\\\\` oder `\\.` maskiert werden.\n* **Portabilität prüfen**: Unterschiedliche Regex-Engines (z. B. Python `re`, PCRE, JavaScript) interpretieren manche Syntax leicht unterschiedlich.\n* **Lesbarkeit fördern**: Verwende benannte Gruppen (`(?P\u003Cname>...)`) und Kommentare (`(?x)`), um reguläre Ausdrücke besser wartbar zu machen.\n\n## Weiterführende Themen\n\n### Lookaheads und Lookbehinds\n\nMit **Lookaheads** (`(?=...)`) und **Lookbehinds** (`(?\u003C=...)`) können Bedingungen formuliert werden, ohne dass der Text Teil des Matchs wird.\n\nBeispiel: Alle `.exe`-Dateinamen **ohne** das Wort `safe` davor matchen:\n\n```regex\n(?\u003C!safe\\s)[\\w-]+\\.exe\n```\n\n### Regex in Forensik-Tools\n\n* **YARA**: Unterstützt Regex zur Erstellung von Malware-Signaturen.\n* **Wireshark**: Filtert Payloads anhand von Regex-ähnlicher Syntax.\n* **Splunk & ELK**: Verwenden Regex für Logparsing und Visualisierung.\n* **Volatility Plugins**: Extrahieren Artefakte mit Regex-basierten Scans.\n\n---\n\n> 🔤 **Regex ist ein universelles Werkzeug für Analysten, Ermittler und Entwickler, um versteckte Informationen schnell und flexibel aufzuspüren.**\n>\n> Nutze es überall dort, wo Textdaten eine Rolle spielen.","src/content/knowledgebase/regular-expressions-regex.md","4c6c276e361561cd",{"html":39,"metadata":40},"\u003Cblockquote>\n\u003Cp>\u003Cstrong>⚠️ Hinweis\u003C/strong>: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\u003C/p>\n\u003C/blockquote>\n\u003Ch1 id=\"übersicht\">Übersicht\u003C/h1>\n\u003Cp>\u003Cstrong>Regular Expressions (Regex)\u003C/strong> sind ein leistungsfähiges Werkzeug zur Erkennung, Extraktion und Transformation von Zeichenfolgen anhand vordefinierter Muster. In der digitalen Forensik sind Regex-Ausdrücke unverzichtbar: Sie helfen beim Auffinden von IP-Adressen, Hash-Werten, Dateipfaden, Malware-Signaturen oder Kreditkartennummern in großen Mengen unstrukturierter Daten wie Logdateien, Netzwerktraces oder Memory Dumps.\u003C/p>\n\u003Cp>Regex ist nicht auf eine bestimmte Plattform oder Software beschränkt – es wird in nahezu allen gängigen Programmiersprachen, Texteditoren und forensischen Tools unterstützt.\u003C/p>\n\u003Ch2 id=\"verwendungsbeispiele\">Verwendungsbeispiele\u003C/h2>\n\u003Ch3 id=\"1-ip-adressen-extrahieren\">1. IP-Adressen extrahieren\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"regex\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">\\b(?:\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{1,3}\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\.)\u003C/span>\u003Cspan style=\"color:#F97583\">{3}\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{1,3}\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\b\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Verwendung:\u003C/p>\n\u003Cul>\n\u003Cli>\n\u003Cp>Finden von IP-Adressen in Firewall-Logs oder Packet Captures.\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>Beispiel-Zeile:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>Connection from 192.168.1.101 to port 443 established\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"2-e-mail-adressen-identifizieren\">2. E-Mail-Adressen identifizieren\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"regex\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">[a-zA-Z0-9._%+-]\u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#DBEDFF\">@\u003C/span>\u003Cspan style=\"color:#79B8FF\">[a-zA-Z0-9.-]\u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\.[a-zA-Z]\u003C/span>\u003Cspan style=\"color:#F97583\">{2,}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Verwendung:\u003C/p>\n\u003Cul>\n\u003Cli>Erkennung von kompromittierten Accounts in Phishing-E-Mails.\u003C/li>\n\u003Cli>Analyse von Useraktivitäten oder Kommunikationsverläufen.\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"3-hash-werte-erkennen-zb-sha-256\">3. Hash-Werte erkennen (z. B. SHA-256)\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"regex\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">\\b[A-Fa-f0-9]\u003C/span>\u003Cspan style=\"color:#F97583\">{64}\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\b\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Verwendung:\u003C/p>\n\u003Cul>\n\u003Cli>Extraktion von Malware-Hashes aus Memory Dumps oder YARA-Logs.\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"4-zeitstempel-in-logdateien-extrahieren\">4. Zeitstempel in Logdateien extrahieren\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"regex\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{4}\u003C/span>\u003Cspan style=\"color:#DBEDFF\">-\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{2}\u003C/span>\u003Cspan style=\"color:#DBEDFF\">-\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{2}\u003C/span>\u003Cspan style=\"color:#79B8FF\">[ T]\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{2}\u003C/span>\u003Cspan style=\"color:#DBEDFF\">:\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{2}\u003C/span>\u003Cspan style=\"color:#DBEDFF\">:\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{2}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Verwendung:\u003C/p>\n\u003Cul>\n\u003Cli>Zeitsensitive Korrelationsanalysen (z. B. bei Intrusion Detection oder Timeline-Rekonstruktionen).\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"best-practices\">Best Practices\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Regex testen\u003C/strong>: Nutze Plattformen wie \u003Ca href=\"https://regexr.com/\">regexr.com\u003C/a> oder \u003Ca href=\"https://regex101.com/\">regex101.com\u003C/a> zur Validierung.\u003C/li>\n\u003Cli>\u003Cstrong>Performance beachten\u003C/strong>: Komplexe Ausdrücke können ineffizient sein und Systeme verlangsamen – verwende Lazy Quantifiers (\u003Ccode>*?\u003C/code>, \u003Ccode>+?\u003C/code>) bei Bedarf.\u003C/li>\n\u003Cli>\u003Cstrong>Escape-Zeichen korrekt anwenden\u003C/strong>: Spezielle Zeichen wie \u003Ccode>.\u003C/code> oder \u003Ccode>\\\u003C/code> müssen bei Bedarf mit \u003Ccode>\\\\\u003C/code> oder \u003Ccode>\\.\u003C/code> maskiert werden.\u003C/li>\n\u003Cli>\u003Cstrong>Portabilität prüfen\u003C/strong>: Unterschiedliche Regex-Engines (z. B. Python \u003Ccode>re\u003C/code>, PCRE, JavaScript) interpretieren manche Syntax leicht unterschiedlich.\u003C/li>\n\u003Cli>\u003Cstrong>Lesbarkeit fördern\u003C/strong>: Verwende benannte Gruppen (\u003Ccode>(?P<name>...)\u003C/code>) und Kommentare (\u003Ccode>(?x)\u003C/code>), um reguläre Ausdrücke besser wartbar zu machen.\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"weiterführende-themen\">Weiterführende Themen\u003C/h2>\n\u003Ch3 id=\"lookaheads-und-lookbehinds\">Lookaheads und Lookbehinds\u003C/h3>\n\u003Cp>Mit \u003Cstrong>Lookaheads\u003C/strong> (\u003Ccode>(?=...)\u003C/code>) und \u003Cstrong>Lookbehinds\u003C/strong> (\u003Ccode>(?<=...)\u003C/code>) können Bedingungen formuliert werden, ohne dass der Text Teil des Matchs wird.\u003C/p>\n\u003Cp>Beispiel: Alle \u003Ccode>.exe\u003C/code>-Dateinamen \u003Cstrong>ohne\u003C/strong> das Wort \u003Ccode>safe\u003C/code> davor matchen:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"regex\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">(?<!\u003C/span>\u003Cspan style=\"color:#DBEDFF\">safe\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\s\u003C/span>\u003Cspan style=\"color:#F97583\">)\u003C/span>\u003Cspan style=\"color:#79B8FF\">[\\w-]\u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\.\u003C/span>\u003Cspan style=\"color:#DBEDFF\">exe\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"regex-in-forensik-tools\">Regex in Forensik-Tools\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>YARA\u003C/strong>: Unterstützt Regex zur Erstellung von Malware-Signaturen.\u003C/li>\n\u003Cli>\u003Cstrong>Wireshark\u003C/strong>: Filtert Payloads anhand von Regex-ähnlicher Syntax.\u003C/li>\n\u003Cli>\u003Cstrong>Splunk & ELK\u003C/strong>: Verwenden Regex für Logparsing und Visualisierung.\u003C/li>\n\u003Cli>\u003Cstrong>Volatility Plugins\u003C/strong>: Extrahieren Artefakte mit Regex-basierten Scans.\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Cblockquote>\n\u003Cp>🔤 \u003Cstrong>Regex ist ein universelles Werkzeug für Analysten, Ermittler und Entwickler, um versteckte Informationen schnell und flexibel aufzuspüren.\u003C/strong>\u003C/p>\n\u003Cp>Nutze es überall dort, wo Textdaten eine Rolle spielen.\u003C/p>\n\u003C/blockquote>",{"headings":41,"localImagePaths":75,"remoteImagePaths":76,"frontmatter":77,"imagePaths":82},[42,46,50,54,57,60,63,66,69,72],{"depth":43,"slug":44,"text":45},1,"übersicht","Übersicht",{"depth":47,"slug":48,"text":49},2,"verwendungsbeispiele","Verwendungsbeispiele",{"depth":51,"slug":52,"text":53},3,"1-ip-adressen-extrahieren","1. IP-Adressen extrahieren",{"depth":51,"slug":55,"text":56},"2-e-mail-adressen-identifizieren","2. E-Mail-Adressen identifizieren",{"depth":51,"slug":58,"text":59},"3-hash-werte-erkennen-zb-sha-256","3. Hash-Werte erkennen (z. B. SHA-256)",{"depth":51,"slug":61,"text":62},"4-zeitstempel-in-logdateien-extrahieren","4. Zeitstempel in Logdateien extrahieren",{"depth":47,"slug":64,"text":65},"best-practices","Best Practices",{"depth":47,"slug":67,"text":68},"weiterführende-themen","Weiterführende Themen",{"depth":51,"slug":70,"text":71},"lookaheads-und-lookbehinds","Lookaheads und Lookbehinds",{"depth":51,"slug":73,"text":74},"regex-in-forensik-tools","Regex in Forensik-Tools",[],[],{"title":14,"tool_name":15,"description":16,"last_updated":78,"author":18,"difficulty":19,"categories":79,"tags":80,"sections":81,"review_status":34},["Date","2025-07-20T00:00:00.000Z"],[21,22,23,24],[26,27,28,29,30],{"overview":32,"installation":33,"configuration":33,"usage_examples":32,"best_practices":32,"troubleshooting":33,"advanced_topics":32},[],"regular-expressions-regex.md","misp",{"id":84,"data":86,"body":102,"filePath":103,"digest":104,"rendered":105,"legacyId":160},{"title":87,"tool_name":88,"description":89,"last_updated":90,"author":18,"difficulty":19,"categories":91,"tags":94,"sections":101,"review_status":34},"MISP - Plattform für Threat Intelligence Sharing","MISP","Das Rückgrat des modernen Threat-Intelligence-Sharings mit über 40.000 aktiven Instanzen weltweit.",["Date","2025-07-20T00:00:00.000Z"],[21,92,22,23,93],"law-enforcement","cloud-forensics",[95,96,97,98,99,100],"web-based","threat-intelligence","api","correlation","ioc-sharing","automation",{"overview":32,"installation":32,"configuration":32,"usage_examples":32,"best_practices":32,"troubleshooting":32,"advanced_topics":33},"> **⚠️ Hinweis**: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\n\n\n# Übersicht\n\n**MISP (Malware Information Sharing Platform & Threat Sharing)** ist eine freie Open-Source-Plattform zur strukturierten Erfassung, Speicherung, Analyse und gemeinsamen Nutzung von Cyber-Bedrohungsdaten. Mit über 40.000 Instanzen weltweit ist MISP der De-facto-Standard für den Austausch von Indicators of Compromise (IoCs) und Threat Intelligence zwischen CERTs, SOCs, Strafverfolgungsbehörden und anderen sicherheitsrelevanten Organisationen.\n\nDie föderierte Architektur ermöglicht einen kontrollierten, dezentralen Austausch von Informationen über vertrauenswürdige Partner hinweg. Durch Taxonomien, Tags und integrierte APIs ist eine automatische Anreicherung, Korrelation und Verarbeitung von Informationen in SIEMs, Firewalls oder Endpoint-Lösungen möglich.\n\n## Installation\n\n### Voraussetzungen\n\n- **Server-Betriebssystem:** Linux (empfohlen: Debian/Ubuntu)\n- **Abhängigkeiten:** MariaDB/MySQL, PHP, Apache/Nginx, Redis\n- **Ressourcen:** Mindestens 4 GB RAM, SSD empfohlen\n\n### Installationsschritte\n\n```bash\n# Beispiel für Debian/Ubuntu:\nsudo apt update && sudo apt install -y curl gnupg git python3 python3-pip redis-server mariadb-server apache2 php libapache2-mod-php\n\n# MISP klonen\ngit clone https://github.com/MISP/MISP.git /var/www/MISP\n\n# Setup-Skript nutzen\ncd /var/www/MISP && bash INSTALL/INSTALL.debian.sh\n````\n\nWeitere Details: [Offizielle Installationsanleitung](https://misp.github.io/MISP/INSTALL.debian/)\n\n## Konfiguration\n\n### Webserver\n\n* HTTPS aktivieren (Let's Encrypt oder Reverse Proxy)\n* PHP-Konfiguration anpassen (`upload_max_filesize`, `memory_limit`, `post_max_size`)\n\n### Benutzerrollen\n\n* Administrator, Org-Admin, Analyst etc.\n* Zugriffsbeschränkungen nach Organisation/Feed definierbar\n\n### Feeds und Galaxies\n\n* Aktivierung von Feeds (z. B. CIRCL, Abuse.ch, OpenCTI)\n* Nutzung von Galaxies zur Klassifizierung (APT-Gruppen, Malware-Familien)\n\n## Verwendungsbeispiele\n\n### Beispiel 1: Import von IoCs aus externem Feed\n\n1. Feed aktivieren unter **Administration → List Feeds**\n2. Feed synchronisieren\n3. Ereignisse durchsuchen, analysieren, ggf. mit eigenen Daten korrelieren\n\n### Beispiel 2: Automatisierte Anbindung an SIEM\n\n* REST-API-Token erstellen\n* API-Calls zur Abfrage neuer Events (z. B. mit Python, Logstash oder MISP Workbench)\n* Integration in Security-Systeme über JSON/STIX export\n\n## Best Practices\n\n* Regelmäßige Backups der Datenbank\n* Taxonomien konsistent verwenden\n* Nutzung der Sighting-Funktion zur Validierung von IoCs\n* Vertrauensstufen (TLP, PAP) korrekt setzen\n* Nicht nur konsumieren – auch teilen!\n\n## Troubleshooting\n\n### Problem: MISP-Feeds laden nicht\n\n**Lösung:**\n\n* Internetverbindung prüfen\n* Cronjobs aktiv?\n* Logs prüfen: `/var/www/MISP/app/tmp/logs/error.log`\n\n### Problem: API gibt 403 zurück\n\n**Lösung:**\n\n* Ist der API-Key korrekt und aktiv?\n* Rechte des Benutzers überprüfen\n* IP-Filter im MISP-Backend beachten\n\n### Problem: Hohe Datenbanklast\n\n**Lösung:**\n\n* Indizes optimieren\n* Redis aktivieren\n* Alte Events regelmäßig archivieren oder löschen\n\n## Weiterführende Themen\n\n* STIX2-Import/Export\n* Erweiterungen mit MISP Modules (z. B. für Virustotal, YARA)\n* Föderierte Netzwerke und Community-Portale\n* Integration mit OpenCTI oder TheHive\n\n---\n\n**Links:**\n\n* 🌐 [Offizielle Projektseite](https://misp-project.org/)\n* 📦 [CC24-MISP-Instanz](https://misp.cc24.dev)\n* 📊 [Status-Monitoring](https://status.mikoshi.de/api/badge/34/status)\n\nLizenz: **AGPL-3.0**","src/content/knowledgebase/misp.md","cb6bcbd4e290161a",{"html":106,"metadata":107},"\u003Cblockquote>\n\u003Cp>\u003Cstrong>⚠️ Hinweis\u003C/strong>: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\u003C/p>\n\u003C/blockquote>\n\u003Ch1 id=\"übersicht\">Übersicht\u003C/h1>\n\u003Cp>\u003Cstrong>MISP (Malware Information Sharing Platform & Threat Sharing)\u003C/strong> ist eine freie Open-Source-Plattform zur strukturierten Erfassung, Speicherung, Analyse und gemeinsamen Nutzung von Cyber-Bedrohungsdaten. Mit über 40.000 Instanzen weltweit ist MISP der De-facto-Standard für den Austausch von Indicators of Compromise (IoCs) und Threat Intelligence zwischen CERTs, SOCs, Strafverfolgungsbehörden und anderen sicherheitsrelevanten Organisationen.\u003C/p>\n\u003Cp>Die föderierte Architektur ermöglicht einen kontrollierten, dezentralen Austausch von Informationen über vertrauenswürdige Partner hinweg. Durch Taxonomien, Tags und integrierte APIs ist eine automatische Anreicherung, Korrelation und Verarbeitung von Informationen in SIEMs, Firewalls oder Endpoint-Lösungen möglich.\u003C/p>\n\u003Ch2 id=\"installation\">Installation\u003C/h2>\n\u003Ch3 id=\"voraussetzungen\">Voraussetzungen\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Server-Betriebssystem:\u003C/strong> Linux (empfohlen: Debian/Ubuntu)\u003C/li>\n\u003Cli>\u003Cstrong>Abhängigkeiten:\u003C/strong> MariaDB/MySQL, PHP, Apache/Nginx, Redis\u003C/li>\n\u003Cli>\u003Cstrong>Ressourcen:\u003C/strong> Mindestens 4 GB RAM, SSD empfohlen\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"installationsschritte\">Installationsschritte\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Beispiel für Debian/Ubuntu:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> update\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> && \u003C/span>\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -y\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> curl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> gnupg\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> python3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> python3-pip\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> redis-server\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mariadb-server\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apache2\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> libapache2-mod-php\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># MISP klonen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/MISP/MISP.git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /var/www/MISP\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Setup-Skript nutzen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /var/www/MISP\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> && \u003C/span>\u003Cspan style=\"color:#B392F0\">bash\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> INSTALL/INSTALL.debian.sh\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Weitere Details: \u003Ca href=\"https://misp.github.io/MISP/INSTALL.debian/\">Offizielle Installationsanleitung\u003C/a>\u003C/p>\n\u003Ch2 id=\"konfiguration\">Konfiguration\u003C/h2>\n\u003Ch3 id=\"webserver\">Webserver\u003C/h3>\n\u003Cul>\n\u003Cli>HTTPS aktivieren (Let’s Encrypt oder Reverse Proxy)\u003C/li>\n\u003Cli>PHP-Konfiguration anpassen (\u003Ccode>upload_max_filesize\u003C/code>, \u003Ccode>memory_limit\u003C/code>, \u003Ccode>post_max_size\u003C/code>)\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"benutzerrollen\">Benutzerrollen\u003C/h3>\n\u003Cul>\n\u003Cli>Administrator, Org-Admin, Analyst etc.\u003C/li>\n\u003Cli>Zugriffsbeschränkungen nach Organisation/Feed definierbar\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"feeds-und-galaxies\">Feeds und Galaxies\u003C/h3>\n\u003Cul>\n\u003Cli>Aktivierung von Feeds (z. B. CIRCL, Abuse.ch, OpenCTI)\u003C/li>\n\u003Cli>Nutzung von Galaxies zur Klassifizierung (APT-Gruppen, Malware-Familien)\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"verwendungsbeispiele\">Verwendungsbeispiele\u003C/h2>\n\u003Ch3 id=\"beispiel-1-import-von-iocs-aus-externem-feed\">Beispiel 1: Import von IoCs aus externem Feed\u003C/h3>\n\u003Col>\n\u003Cli>Feed aktivieren unter \u003Cstrong>Administration → List Feeds\u003C/strong>\u003C/li>\n\u003Cli>Feed synchronisieren\u003C/li>\n\u003Cli>Ereignisse durchsuchen, analysieren, ggf. mit eigenen Daten korrelieren\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"beispiel-2-automatisierte-anbindung-an-siem\">Beispiel 2: Automatisierte Anbindung an SIEM\u003C/h3>\n\u003Cul>\n\u003Cli>REST-API-Token erstellen\u003C/li>\n\u003Cli>API-Calls zur Abfrage neuer Events (z. B. mit Python, Logstash oder MISP Workbench)\u003C/li>\n\u003Cli>Integration in Security-Systeme über JSON/STIX export\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"best-practices\">Best Practices\u003C/h2>\n\u003Cul>\n\u003Cli>Regelmäßige Backups der Datenbank\u003C/li>\n\u003Cli>Taxonomien konsistent verwenden\u003C/li>\n\u003Cli>Nutzung der Sighting-Funktion zur Validierung von IoCs\u003C/li>\n\u003Cli>Vertrauensstufen (TLP, PAP) korrekt setzen\u003C/li>\n\u003Cli>Nicht nur konsumieren – auch teilen!\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"troubleshooting\">Troubleshooting\u003C/h2>\n\u003Ch3 id=\"problem-misp-feeds-laden-nicht\">Problem: MISP-Feeds laden nicht\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Internetverbindung prüfen\u003C/li>\n\u003Cli>Cronjobs aktiv?\u003C/li>\n\u003Cli>Logs prüfen: \u003Ccode>/var/www/MISP/app/tmp/logs/error.log\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"problem-api-gibt-403-zurück\">Problem: API gibt 403 zurück\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Ist der API-Key korrekt und aktiv?\u003C/li>\n\u003Cli>Rechte des Benutzers überprüfen\u003C/li>\n\u003Cli>IP-Filter im MISP-Backend beachten\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"problem-hohe-datenbanklast\">Problem: Hohe Datenbanklast\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Indizes optimieren\u003C/li>\n\u003Cli>Redis aktivieren\u003C/li>\n\u003Cli>Alte Events regelmäßig archivieren oder löschen\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"weiterführende-themen\">Weiterführende Themen\u003C/h2>\n\u003Cul>\n\u003Cli>STIX2-Import/Export\u003C/li>\n\u003Cli>Erweiterungen mit MISP Modules (z. B. für Virustotal, YARA)\u003C/li>\n\u003Cli>Föderierte Netzwerke und Community-Portale\u003C/li>\n\u003Cli>Integration mit OpenCTI oder TheHive\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Cp>\u003Cstrong>Links:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>🌐 \u003Ca href=\"https://misp-project.org/\">Offizielle Projektseite\u003C/a>\u003C/li>\n\u003Cli>📦 \u003Ca href=\"https://misp.cc24.dev\">CC24-MISP-Instanz\u003C/a>\u003C/li>\n\u003Cli>📊 \u003Ca href=\"https://status.mikoshi.de/api/badge/34/status\">Status-Monitoring\u003C/a>\u003C/li>\n\u003C/ul>\n\u003Cp>Lizenz: \u003Cstrong>AGPL-3.0\u003C/strong>\u003C/p>",{"headings":108,"localImagePaths":152,"remoteImagePaths":153,"frontmatter":154,"imagePaths":159},[109,110,113,116,119,122,125,128,131,132,135,138,139,142,145,148,151],{"depth":43,"slug":44,"text":45},{"depth":47,"slug":111,"text":112},"installation","Installation",{"depth":51,"slug":114,"text":115},"voraussetzungen","Voraussetzungen",{"depth":51,"slug":117,"text":118},"installationsschritte","Installationsschritte",{"depth":47,"slug":120,"text":121},"konfiguration","Konfiguration",{"depth":51,"slug":123,"text":124},"webserver","Webserver",{"depth":51,"slug":126,"text":127},"benutzerrollen","Benutzerrollen",{"depth":51,"slug":129,"text":130},"feeds-und-galaxies","Feeds und Galaxies",{"depth":47,"slug":48,"text":49},{"depth":51,"slug":133,"text":134},"beispiel-1-import-von-iocs-aus-externem-feed","Beispiel 1: Import von IoCs aus externem Feed",{"depth":51,"slug":136,"text":137},"beispiel-2-automatisierte-anbindung-an-siem","Beispiel 2: Automatisierte Anbindung an SIEM",{"depth":47,"slug":64,"text":65},{"depth":47,"slug":140,"text":141},"troubleshooting","Troubleshooting",{"depth":51,"slug":143,"text":144},"problem-misp-feeds-laden-nicht","Problem: MISP-Feeds laden nicht",{"depth":51,"slug":146,"text":147},"problem-api-gibt-403-zurück","Problem: API gibt 403 zurück",{"depth":51,"slug":149,"text":150},"problem-hohe-datenbanklast","Problem: Hohe Datenbanklast",{"depth":47,"slug":67,"text":68},[],[],{"title":87,"tool_name":88,"description":89,"last_updated":155,"author":18,"difficulty":19,"categories":156,"tags":157,"sections":158,"review_status":34},["Date","2025-07-20T00:00:00.000Z"],[21,92,22,23,93],[95,96,97,98,99,100],{"overview":32,"installation":32,"configuration":32,"usage_examples":32,"best_practices":32,"troubleshooting":32,"advanced_topics":33},[],"misp.md","kali-linux",{"id":161,"data":163,"body":178,"filePath":179,"digest":180,"rendered":181,"legacyId":239},{"title":164,"tool_name":165,"description":166,"last_updated":167,"author":18,"difficulty":19,"categories":168,"tags":171,"sections":177,"review_status":34},"Kali Linux - Die Hacker-Distribution für Forensik & Penetration Testing","Kali Linux","Leitfaden zur Installation, Nutzung und Best Practices für Kali Linux – die All-in-One-Plattform für Security-Profis.",["Date","2025-07-20T00:00:00.000Z"],[21,169,170],"forensics","penetration-testing",[172,173,170,174,175,176],"live-boot","tool-collection","forensics-suite","virtualization","arm-support",{"overview":32,"installation":32,"configuration":32,"usage_examples":32,"best_practices":32,"troubleshooting":32,"advanced_topics":32},"> **⚠️ Hinweis**: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\n\n\n# Übersicht\n\nKali Linux ist eine auf Debian basierende Linux-Distribution, die speziell für Penetration Testing, digitale Forensik, Reverse Engineering und Incident Response entwickelt wurde. Mit über 600 vorinstallierten Tools ist sie ein unverzichtbares Werkzeug für Security-Experten, Ermittler und forensische Analysten. Die Live-Boot-Funktion erlaubt es, Systeme ohne Spuren zu hinterlassen zu analysieren – ideal für forensische Untersuchungen.\n\n## Installation\n\n### Option 1: Live-System (USB/DVD)\n\n1. ISO-Image von [kali.org](https://www.kali.org/get-kali/) herunterladen.\n2. Mit **Rufus** oder **balenaEtcher** auf einen USB-Stick schreiben.\n3. Vom USB-Stick booten (ggf. Boot-Reihenfolge im BIOS anpassen).\n4. Kali kann direkt ohne Installation im Live-Modus verwendet werden.\n\n### Option 2: Installation auf Festplatte\n\n1. ISO-Image booten und **Graphical Install** wählen.\n2. Schritt-für-Schritt durch den Installationsassistenten navigieren:\n - Sprache, Zeitzone und Tastaturlayout auswählen\n - Partitionierung konfigurieren (automatisch oder manuell)\n - Benutzerkonten erstellen\n3. Nach Installation Neustart durchführen.\n\n### Option 3: Virtuelle Maschine (VM)\n\n- Offizielle VM-Images für VirtualBox und VMware von der [Kali-Website](https://www.kali.org/get-kali/#kali-virtual-machines)\n- Importieren, ggf. Netzwerkbrücke und Shared Folders aktivieren\n\n## Konfiguration\n\n### Netzwerkeinstellungen\n\n- Konfiguration über `nmtui` oder `/etc/network/interfaces`\n- VPN und Proxy-Integration über GUI oder Terminal\n\n### Updates & Paketquellen\n\n```bash\nsudo apt update && sudo apt full-upgrade\n````\n\n> Hinweis: `kali-rolling` ist die Standard-Distribution für kontinuierliche Updates.\n\n### Sprache & Lokalisierung\n\n```bash\nsudo dpkg-reconfigure locales\nsudo dpkg-reconfigure keyboard-configuration\n```\n\n## Verwendungsbeispiele\n\n### 1. Netzwerkscan mit Nmap\n\n```bash\nnmap -sS -T4 -A 192.168.1.0/24\n```\n\n### 2. Passwort-Cracking mit John the Ripper\n\n```bash\njohn --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt\n```\n\n### 3. Forensik mit Autopsy\n\n```bash\nautopsy &\n```\n\n### 4. Android-Analyse mit MobSF (in Docker)\n\n```bash\ndocker pull opensecurity/mobile-security-framework-mobsf\ndocker run -it -p 8000:8000 mobsf\n```\n\n## Best Practices\n\n* Nutze immer **aktuelle Snapshots** oder VM-Clones vor gefährlichen Tests\n* Verwende separate Netzwerke (z. B. Host-only oder NAT) für Tests\n* Deaktiviere automatisches WLAN bei forensischen Analysen\n* Prüfe und aktualisiere regelmäßig Toolsets (`apt`, `git`, `pip`)\n* Halte deine ISO-Images versioniert für forensische Reproduzierbarkeit\n\n## Troubleshooting\n\n### Problem: Keine Internetverbindung nach Installation\n\n**Lösung:** Netzwerkadapter prüfen, ggf. mit `ifconfig` oder `ip a` überprüfen, DHCP aktivieren.\n\n### Problem: Tools fehlen nach Update\n\n**Lösung:** Tool-Gruppen wie `kali-linux-default` manuell nachinstallieren:\n\n```bash\nsudo apt install kali-linux-default\n```\n\n### Problem: „Permission Denied“ bei Tools\n\n**Lösung:** Root-Rechte nutzen oder mit `sudo` ausführen.\n\n## Weiterführende Themen\n\n* **Kustomisierung von Kali ISOs** mit `live-build`\n* **NetHunter**: Kali für mobile Geräte (Android)\n* **Kali Purple**: Defensive Security Suite\n* Integration mit **Cloud-Infrastrukturen** via WSL oder Azure\n\n---\n\n**Links & Ressourcen:**\n\n* Offizielle Website: [https://kali.org](https://kali.org/)\n* Dokumentation: [https://docs.kali.org/](https://docs.kali.org/)\n* GitLab Repo: [https://gitlab.com/kalilinux](https://gitlab.com/kalilinux)\n* Discord-Community: [https://discord.com/invite/kali-linux](https://discord.com/invite/kali-linux)","src/content/knowledgebase/kali-linux.md","2efd0b1e4a1c7292",{"html":182,"metadata":183},"\u003Cblockquote>\n\u003Cp>\u003Cstrong>⚠️ Hinweis\u003C/strong>: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\u003C/p>\n\u003C/blockquote>\n\u003Ch1 id=\"übersicht\">Übersicht\u003C/h1>\n\u003Cp>Kali Linux ist eine auf Debian basierende Linux-Distribution, die speziell für Penetration Testing, digitale Forensik, Reverse Engineering und Incident Response entwickelt wurde. Mit über 600 vorinstallierten Tools ist sie ein unverzichtbares Werkzeug für Security-Experten, Ermittler und forensische Analysten. Die Live-Boot-Funktion erlaubt es, Systeme ohne Spuren zu hinterlassen zu analysieren – ideal für forensische Untersuchungen.\u003C/p>\n\u003Ch2 id=\"installation\">Installation\u003C/h2>\n\u003Ch3 id=\"option-1-live-system-usbdvd\">Option 1: Live-System (USB/DVD)\u003C/h3>\n\u003Col>\n\u003Cli>ISO-Image von \u003Ca href=\"https://www.kali.org/get-kali/\">kali.org\u003C/a> herunterladen.\u003C/li>\n\u003Cli>Mit \u003Cstrong>Rufus\u003C/strong> oder \u003Cstrong>balenaEtcher\u003C/strong> auf einen USB-Stick schreiben.\u003C/li>\n\u003Cli>Vom USB-Stick booten (ggf. Boot-Reihenfolge im BIOS anpassen).\u003C/li>\n\u003Cli>Kali kann direkt ohne Installation im Live-Modus verwendet werden.\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"option-2-installation-auf-festplatte\">Option 2: Installation auf Festplatte\u003C/h3>\n\u003Col>\n\u003Cli>ISO-Image booten und \u003Cstrong>Graphical Install\u003C/strong> wählen.\u003C/li>\n\u003Cli>Schritt-für-Schritt durch den Installationsassistenten navigieren:\n\u003Cul>\n\u003Cli>Sprache, Zeitzone und Tastaturlayout auswählen\u003C/li>\n\u003Cli>Partitionierung konfigurieren (automatisch oder manuell)\u003C/li>\n\u003Cli>Benutzerkonten erstellen\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>Nach Installation Neustart durchführen.\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"option-3-virtuelle-maschine-vm\">Option 3: Virtuelle Maschine (VM)\u003C/h3>\n\u003Cul>\n\u003Cli>Offizielle VM-Images für VirtualBox und VMware von der \u003Ca href=\"https://www.kali.org/get-kali/#kali-virtual-machines\">Kali-Website\u003C/a>\u003C/li>\n\u003Cli>Importieren, ggf. Netzwerkbrücke und Shared Folders aktivieren\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"konfiguration\">Konfiguration\u003C/h2>\n\u003Ch3 id=\"netzwerkeinstellungen\">Netzwerkeinstellungen\u003C/h3>\n\u003Cul>\n\u003Cli>Konfiguration über \u003Ccode>nmtui\u003C/code> oder \u003Ccode>/etc/network/interfaces\u003C/code>\u003C/li>\n\u003Cli>VPN und Proxy-Integration über GUI oder Terminal\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"updates--paketquellen\">Updates & Paketquellen\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> update\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> && \u003C/span>\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> full-upgrade\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cblockquote>\n\u003Cp>Hinweis: \u003Ccode>kali-rolling\u003C/code> ist die Standard-Distribution für kontinuierliche Updates.\u003C/p>\n\u003C/blockquote>\n\u003Ch3 id=\"sprache--lokalisierung\">Sprache & Lokalisierung\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> dpkg-reconfigure\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> locales\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> dpkg-reconfigure\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> keyboard-configuration\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"verwendungsbeispiele\">Verwendungsbeispiele\u003C/h2>\n\u003Ch3 id=\"1-netzwerkscan-mit-nmap\">1. Netzwerkscan mit Nmap\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">nmap\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -sS\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -T4\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -A\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 192.168.1.0/24\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"2-passwort-cracking-mit-john-the-ripper\">2. Passwort-Cracking mit John the Ripper\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">john\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --wordlist=/usr/share/wordlists/rockyou.txt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> hashes.txt\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"3-forensik-mit-autopsy\">3. Forensik mit Autopsy\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">autopsy\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> &\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"4-android-analyse-mit-mobsf-in-docker\">4. Android-Analyse mit MobSF (in Docker)\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">docker\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pull\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> opensecurity/mobile-security-framework-mobsf\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">docker\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> run\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -it\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -p\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 8000:8000\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mobsf\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"best-practices\">Best Practices\u003C/h2>\n\u003Cul>\n\u003Cli>Nutze immer \u003Cstrong>aktuelle Snapshots\u003C/strong> oder VM-Clones vor gefährlichen Tests\u003C/li>\n\u003Cli>Verwende separate Netzwerke (z. B. Host-only oder NAT) für Tests\u003C/li>\n\u003Cli>Deaktiviere automatisches WLAN bei forensischen Analysen\u003C/li>\n\u003Cli>Prüfe und aktualisiere regelmäßig Toolsets (\u003Ccode>apt\u003C/code>, \u003Ccode>git\u003C/code>, \u003Ccode>pip\u003C/code>)\u003C/li>\n\u003Cli>Halte deine ISO-Images versioniert für forensische Reproduzierbarkeit\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"troubleshooting\">Troubleshooting\u003C/h2>\n\u003Ch3 id=\"problem-keine-internetverbindung-nach-installation\">Problem: Keine Internetverbindung nach Installation\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong> Netzwerkadapter prüfen, ggf. mit \u003Ccode>ifconfig\u003C/code> oder \u003Ccode>ip a\u003C/code> überprüfen, DHCP aktivieren.\u003C/p>\n\u003Ch3 id=\"problem-tools-fehlen-nach-update\">Problem: Tools fehlen nach Update\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong> Tool-Gruppen wie \u003Ccode>kali-linux-default\u003C/code> manuell nachinstallieren:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> kali-linux-default\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"problem-permission-denied-bei-tools\">Problem: „Permission Denied“ bei Tools\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong> Root-Rechte nutzen oder mit \u003Ccode>sudo\u003C/code> ausführen.\u003C/p>\n\u003Ch2 id=\"weiterführende-themen\">Weiterführende Themen\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Kustomisierung von Kali ISOs\u003C/strong> mit \u003Ccode>live-build\u003C/code>\u003C/li>\n\u003Cli>\u003Cstrong>NetHunter\u003C/strong>: Kali für mobile Geräte (Android)\u003C/li>\n\u003Cli>\u003Cstrong>Kali Purple\u003C/strong>: Defensive Security Suite\u003C/li>\n\u003Cli>Integration mit \u003Cstrong>Cloud-Infrastrukturen\u003C/strong> via WSL oder Azure\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Cp>\u003Cstrong>Links & Ressourcen:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Offizielle Website: \u003Ca href=\"https://kali.org/\">https://kali.org\u003C/a>\u003C/li>\n\u003Cli>Dokumentation: \u003Ca href=\"https://docs.kali.org/\">https://docs.kali.org/\u003C/a>\u003C/li>\n\u003Cli>GitLab Repo: \u003Ca href=\"https://gitlab.com/kalilinux\">https://gitlab.com/kalilinux\u003C/a>\u003C/li>\n\u003Cli>Discord-Community: \u003Ca href=\"https://discord.com/invite/kali-linux\">https://discord.com/invite/kali-linux\u003C/a>\u003C/li>\n\u003C/ul>",{"headings":184,"localImagePaths":231,"remoteImagePaths":232,"frontmatter":233,"imagePaths":238},[185,186,187,190,193,196,197,200,203,206,207,210,213,216,219,220,221,224,227,230],{"depth":43,"slug":44,"text":45},{"depth":47,"slug":111,"text":112},{"depth":51,"slug":188,"text":189},"option-1-live-system-usbdvd","Option 1: Live-System (USB/DVD)",{"depth":51,"slug":191,"text":192},"option-2-installation-auf-festplatte","Option 2: Installation auf Festplatte",{"depth":51,"slug":194,"text":195},"option-3-virtuelle-maschine-vm","Option 3: Virtuelle Maschine (VM)",{"depth":47,"slug":120,"text":121},{"depth":51,"slug":198,"text":199},"netzwerkeinstellungen","Netzwerkeinstellungen",{"depth":51,"slug":201,"text":202},"updates--paketquellen","Updates & Paketquellen",{"depth":51,"slug":204,"text":205},"sprache--lokalisierung","Sprache & Lokalisierung",{"depth":47,"slug":48,"text":49},{"depth":51,"slug":208,"text":209},"1-netzwerkscan-mit-nmap","1. Netzwerkscan mit Nmap",{"depth":51,"slug":211,"text":212},"2-passwort-cracking-mit-john-the-ripper","2. Passwort-Cracking mit John the Ripper",{"depth":51,"slug":214,"text":215},"3-forensik-mit-autopsy","3. Forensik mit Autopsy",{"depth":51,"slug":217,"text":218},"4-android-analyse-mit-mobsf-in-docker","4. Android-Analyse mit MobSF (in Docker)",{"depth":47,"slug":64,"text":65},{"depth":47,"slug":140,"text":141},{"depth":51,"slug":222,"text":223},"problem-keine-internetverbindung-nach-installation","Problem: Keine Internetverbindung nach Installation",{"depth":51,"slug":225,"text":226},"problem-tools-fehlen-nach-update","Problem: Tools fehlen nach Update",{"depth":51,"slug":228,"text":229},"problem-permission-denied-bei-tools","Problem: „Permission Denied“ bei Tools",{"depth":47,"slug":67,"text":68},[],[],{"title":164,"tool_name":165,"description":166,"last_updated":234,"author":18,"difficulty":19,"categories":235,"tags":236,"sections":237,"review_status":34},["Date","2025-07-20T00:00:00.000Z"],[21,169,170],[172,173,170,174,175,176],{"overview":32,"installation":32,"configuration":32,"usage_examples":32,"best_practices":32,"troubleshooting":32,"advanced_topics":32},[],"kali-linux.md","nextcloud",{"id":240,"data":242,"body":256,"filePath":257,"digest":258,"rendered":259,"legacyId":300},{"title":243,"tool_name":244,"description":245,"last_updated":246,"author":18,"difficulty":247,"categories":248,"tags":250,"sections":255,"review_status":34},"Nextcloud - Sichere Kollaborationsplattform","Nextcloud","Detaillierte Anleitung und Best Practices für Nextcloud in forensischen Einsatzszenarien",["Date","2025-07-20T00:00:00.000Z"],"novice",[249],"collaboration-general",[95,251,252,97,253,254],"collaboration","file-sharing","encryption","document-management",{"overview":32,"installation":32,"configuration":32,"usage_examples":32,"best_practices":32,"troubleshooting":32,"advanced_topics":33},"> **⚠️ Hinweis**: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\n\n\n# Übersicht\n\nNextcloud ist eine Open-Source-Cloud-Suite, die speziell für die sichere Zusammenarbeit entwickelt wurde. Sie eignet sich ideal für forensische Teams, da sie eine DSGVO-konforme Umgebung mit verschlüsselter Dateiablage, Office-Integration und Videokonferenzen bereitstellt. Zusätzlich bietet Nextcloud einen integrierten SSO-Provider, der das Identitätsmanagement für andere forensische Tools stark vereinfacht.\n\nSkalierbar von kleinen Raspberry-Pi-Installationen bis hin zu hochverfügbaren Multi-Node-Setups.\n\n- **Website:** [nextcloud.com](https://nextcloud.com/)\n- **Demo/Projektinstanz:** [cloud.cc24.dev](https://cloud.cc24.dev)\n- **Statusseite:** [Mikoshi Status](https://status.mikoshi.de/api/badge/11/status)\n- **Lizenz:** AGPL-3.0\n\n---\n\n## Installation\n\n### Voraussetzungen\n\n- Linux-Server oder Raspberry Pi\n- PHP 8.1 oder höher\n- MariaDB/PostgreSQL\n- Webserver (Apache/Nginx)\n- SSL-Zertifikat (empfohlen: Let's Encrypt)\n\n### Installationsschritte (Ubuntu Beispiel)\n\n```bash\nsudo apt update && sudo apt upgrade\nsudo apt install apache2 mariadb-server libapache2-mod-php php php-mysql \\\n php-gd php-xml php-mbstring php-curl php-zip php-intl php-bcmath unzip\n\nwget https://download.nextcloud.com/server/releases/latest.zip\nunzip latest.zip -d /var/www/\nchown -R www-data:www-data /var/www/nextcloud\n````\n\nDanach den Web-Installer im Browser aufrufen (`https://\u003Cyour-domain>/nextcloud`) und Setup abschließen.\n\n## Konfiguration\n\n* **Trusted Domains** in `config.php` definieren\n* SSO mit OpenID Connect aktivieren\n* Dateiverschlüsselung aktivieren (`Settings → Security`)\n* Benutzer und Gruppen über LDAP oder SAML integrieren\n\n## Verwendungsbeispiele\n\n### Gemeinsame Fallbearbeitung\n\n1. Ermittlungsordner als geteiltes Gruppenverzeichnis anlegen\n2. Versionierung und Kommentare zu forensischen Berichten aktivieren\n3. Vorschau für Office-Dateien, PDFs und Bilder direkt im Browser nutzen\n\n### Videokonferenzen mit \"Nextcloud Talk\"\n\n* Sichere Kommunikation zwischen Ermittlern und Sachverständigen\n* Ende-zu-Ende-verschlüsselt\n* Bildschirmfreigabe möglich\n\n### Automatischer Dateiimport per API\n\n* REST-Schnittstelle nutzen, um z. B. automatisch Logdateien oder Exportdaten hochzuladen\n* Ideal für Anbindung an SIEM, DLP oder Analyse-Pipelines\n\n## Best Practices\n\n* Zwei-Faktor-Authentifizierung aktivieren\n* Tägliche Backups der Datenbank und Datenstruktur\n* Nutzung von OnlyOffice oder Collabora für revisionssichere Dokumentenbearbeitung\n* Zugriff regelmäßig überprüfen, insbesondere bei externen Partnern\n\n## Troubleshooting\n\n### Problem: Langsame Performance\n\n**Lösung:** APCu aktivieren und Caching optimieren (`config.php → 'memcache.local'`).\n\n### Problem: Dateien erscheinen nicht im Sync\n\n**Lösung:** Cronjob für `files:scan` konfigurieren oder manuell ausführen:\n\n```bash\nsudo -u www-data php /var/www/nextcloud/occ files:scan --all\n```\n\n### Problem: Fehlermeldung \"Trusted domain not set\"\n\n**Lösung:** In `config/config.php` Eintrag `trusted_domains` korrekt konfigurieren:\n\n```php\n'trusted_domains' =>\n array (\n 0 => 'yourdomain.tld',\n 1 => 'cloud.cc24.dev',\n ),\n```\n\n## Weiterführende Themen\n\n* **Integration mit Forensik-Plattformen** (über WebDAV, API oder SSO)\n* **Custom Apps entwickeln** für spezielle Ermittlungs-Workflows\n* **Auditing aktivieren**: Nutzung und Änderungen nachvollziehen mit Protokollierungsfunktionen","src/content/knowledgebase/nextcloud.md","d2d5ca8769e0cd0b",{"html":260,"metadata":261},"\u003Cblockquote>\n\u003Cp>\u003Cstrong>⚠️ Hinweis\u003C/strong>: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\u003C/p>\n\u003C/blockquote>\n\u003Ch1 id=\"übersicht\">Übersicht\u003C/h1>\n\u003Cp>Nextcloud ist eine Open-Source-Cloud-Suite, die speziell für die sichere Zusammenarbeit entwickelt wurde. Sie eignet sich ideal für forensische Teams, da sie eine DSGVO-konforme Umgebung mit verschlüsselter Dateiablage, Office-Integration und Videokonferenzen bereitstellt. Zusätzlich bietet Nextcloud einen integrierten SSO-Provider, der das Identitätsmanagement für andere forensische Tools stark vereinfacht.\u003C/p>\n\u003Cp>Skalierbar von kleinen Raspberry-Pi-Installationen bis hin zu hochverfügbaren Multi-Node-Setups.\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Website:\u003C/strong> \u003Ca href=\"https://nextcloud.com/\">nextcloud.com\u003C/a>\u003C/li>\n\u003Cli>\u003Cstrong>Demo/Projektinstanz:\u003C/strong> \u003Ca href=\"https://cloud.cc24.dev\">cloud.cc24.dev\u003C/a>\u003C/li>\n\u003Cli>\u003Cstrong>Statusseite:\u003C/strong> \u003Ca href=\"https://status.mikoshi.de/api/badge/11/status\">Mikoshi Status\u003C/a>\u003C/li>\n\u003Cli>\u003Cstrong>Lizenz:\u003C/strong> AGPL-3.0\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"installation\">Installation\u003C/h2>\n\u003Ch3 id=\"voraussetzungen\">Voraussetzungen\u003C/h3>\n\u003Cul>\n\u003Cli>Linux-Server oder Raspberry Pi\u003C/li>\n\u003Cli>PHP 8.1 oder höher\u003C/li>\n\u003Cli>MariaDB/PostgreSQL\u003C/li>\n\u003Cli>Webserver (Apache/Nginx)\u003C/li>\n\u003Cli>SSL-Zertifikat (empfohlen: Let’s Encrypt)\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"installationsschritte-ubuntu-beispiel\">Installationsschritte (Ubuntu Beispiel)\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> update\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> && \u003C/span>\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> upgrade\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apache2\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mariadb-server\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> libapache2-mod-php\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php-mysql\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\"> php-gd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php-xml\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php-mbstring\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php-curl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php-zip\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php-intl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php-bcmath\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> unzip\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">wget\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://download.nextcloud.com/server/releases/latest.zip\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">unzip\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> latest.zip\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -d\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /var/www/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">chown\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -R\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> www-data:www-data\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /var/www/nextcloud\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Danach den Web-Installer im Browser aufrufen (\u003Ccode>https://<your-domain>/nextcloud\u003C/code>) und Setup abschließen.\u003C/p>\n\u003Ch2 id=\"konfiguration\">Konfiguration\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Trusted Domains\u003C/strong> in \u003Ccode>config.php\u003C/code> definieren\u003C/li>\n\u003Cli>SSO mit OpenID Connect aktivieren\u003C/li>\n\u003Cli>Dateiverschlüsselung aktivieren (\u003Ccode>Settings → Security\u003C/code>)\u003C/li>\n\u003Cli>Benutzer und Gruppen über LDAP oder SAML integrieren\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"verwendungsbeispiele\">Verwendungsbeispiele\u003C/h2>\n\u003Ch3 id=\"gemeinsame-fallbearbeitung\">Gemeinsame Fallbearbeitung\u003C/h3>\n\u003Col>\n\u003Cli>Ermittlungsordner als geteiltes Gruppenverzeichnis anlegen\u003C/li>\n\u003Cli>Versionierung und Kommentare zu forensischen Berichten aktivieren\u003C/li>\n\u003Cli>Vorschau für Office-Dateien, PDFs und Bilder direkt im Browser nutzen\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"videokonferenzen-mit-nextcloud-talk\">Videokonferenzen mit “Nextcloud Talk”\u003C/h3>\n\u003Cul>\n\u003Cli>Sichere Kommunikation zwischen Ermittlern und Sachverständigen\u003C/li>\n\u003Cli>Ende-zu-Ende-verschlüsselt\u003C/li>\n\u003Cli>Bildschirmfreigabe möglich\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"automatischer-dateiimport-per-api\">Automatischer Dateiimport per API\u003C/h3>\n\u003Cul>\n\u003Cli>REST-Schnittstelle nutzen, um z. B. automatisch Logdateien oder Exportdaten hochzuladen\u003C/li>\n\u003Cli>Ideal für Anbindung an SIEM, DLP oder Analyse-Pipelines\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"best-practices\">Best Practices\u003C/h2>\n\u003Cul>\n\u003Cli>Zwei-Faktor-Authentifizierung aktivieren\u003C/li>\n\u003Cli>Tägliche Backups der Datenbank und Datenstruktur\u003C/li>\n\u003Cli>Nutzung von OnlyOffice oder Collabora für revisionssichere Dokumentenbearbeitung\u003C/li>\n\u003Cli>Zugriff regelmäßig überprüfen, insbesondere bei externen Partnern\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"troubleshooting\">Troubleshooting\u003C/h2>\n\u003Ch3 id=\"problem-langsame-performance\">Problem: Langsame Performance\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong> APCu aktivieren und Caching optimieren (\u003Ccode>config.php → 'memcache.local'\u003C/code>).\u003C/p>\n\u003Ch3 id=\"problem-dateien-erscheinen-nicht-im-sync\">Problem: Dateien erscheinen nicht im Sync\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong> Cronjob für \u003Ccode>files:scan\u003C/code> konfigurieren oder manuell ausführen:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -u\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> www-data\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /var/www/nextcloud/occ\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> files:scan\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --all\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"problem-fehlermeldung-trusted-domain-not-set\">Problem: Fehlermeldung “Trusted domain not set”\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong> In \u003Ccode>config/config.php\u003C/code> Eintrag \u003Ccode>trusted_domains\u003C/code> korrekt konfigurieren:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"php\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">'trusted_domains'\u003C/span>\u003Cspan style=\"color:#F97583\"> =>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\"> array\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\"> 0\u003C/span>\u003Cspan style=\"color:#F97583\"> =>\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 'yourdomain.tld'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\"> 1\u003C/span>\u003Cspan style=\"color:#F97583\"> =>\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 'cloud.cc24.dev'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> ),\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"weiterführende-themen\">Weiterführende Themen\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Integration mit Forensik-Plattformen\u003C/strong> (über WebDAV, API oder SSO)\u003C/li>\n\u003Cli>\u003Cstrong>Custom Apps entwickeln\u003C/strong> für spezielle Ermittlungs-Workflows\u003C/li>\n\u003Cli>\u003Cstrong>Auditing aktivieren\u003C/strong>: Nutzung und Änderungen nachvollziehen mit Protokollierungsfunktionen\u003C/li>\n\u003C/ul>",{"headings":262,"localImagePaths":292,"remoteImagePaths":293,"frontmatter":294,"imagePaths":299},[263,264,265,266,269,270,271,274,277,280,281,282,285,288,291],{"depth":43,"slug":44,"text":45},{"depth":47,"slug":111,"text":112},{"depth":51,"slug":114,"text":115},{"depth":51,"slug":267,"text":268},"installationsschritte-ubuntu-beispiel","Installationsschritte (Ubuntu Beispiel)",{"depth":47,"slug":120,"text":121},{"depth":47,"slug":48,"text":49},{"depth":51,"slug":272,"text":273},"gemeinsame-fallbearbeitung","Gemeinsame Fallbearbeitung",{"depth":51,"slug":275,"text":276},"videokonferenzen-mit-nextcloud-talk","Videokonferenzen mit “Nextcloud Talk”",{"depth":51,"slug":278,"text":279},"automatischer-dateiimport-per-api","Automatischer Dateiimport per API",{"depth":47,"slug":64,"text":65},{"depth":47,"slug":140,"text":141},{"depth":51,"slug":283,"text":284},"problem-langsame-performance","Problem: Langsame Performance",{"depth":51,"slug":286,"text":287},"problem-dateien-erscheinen-nicht-im-sync","Problem: Dateien erscheinen nicht im Sync",{"depth":51,"slug":289,"text":290},"problem-fehlermeldung-trusted-domain-not-set","Problem: Fehlermeldung “Trusted domain not set”",{"depth":47,"slug":67,"text":68},[],[],{"title":243,"tool_name":244,"description":245,"last_updated":295,"author":18,"difficulty":247,"categories":296,"tags":297,"sections":298,"review_status":34},["Date","2025-07-20T00:00:00.000Z"],[249],[95,251,252,97,253,254],{"overview":32,"installation":32,"configuration":32,"usage_examples":32,"best_practices":32,"troubleshooting":32,"advanced_topics":33},[],"nextcloud.md","velociraptor",{"id":301,"data":303,"body":317,"filePath":318,"digest":319,"rendered":320,"legacyId":370},{"title":304,"tool_name":305,"description":306,"last_updated":307,"author":18,"difficulty":308,"categories":309,"tags":310,"sections":316,"review_status":34},"Velociraptor – Skalierbare Endpoint-Forensik mit VQL","Velociraptor","Detaillierte Anleitung und Best Practices für Velociraptor – Remote-Forensik der nächsten Generation",["Date","2025-07-20T00:00:00.000Z"],"advanced",[21,22,23],[95,311,312,313,314,315],"endpoint-monitoring","artifact-extraction","scripting","live-forensics","hunting",{"overview":32,"installation":32,"configuration":32,"usage_examples":32,"best_practices":32,"troubleshooting":32,"advanced_topics":32},"> **⚠️ Hinweis**: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\n\n\n# Übersicht\n\nVelociraptor ist ein Open-Source-Tool zur Endpoint-Forensik mit Fokus auf Skalierbarkeit, Präzision und Geschwindigkeit. Es ermöglicht die zielgerichtete Erfassung und Analyse digitaler Artefakte über eine eigene Query Language – VQL (Velociraptor Query Language). Die Architektur erlaubt remote Zugriff auf tausende Endpoints gleichzeitig, ohne dass vollständige Disk-Images erforderlich sind.\n\n## Hauptmerkmale\n\n- 🌐 Web-basierte Benutzeroberfläche\n- 💡 VQL – mächtige, SQL-ähnliche Abfragesprache\n- 🚀 Hochskalierbare Hunt-Funktionalität\n- 🔍 Artefaktbasierte Sammlung (ohne Full-Image)\n- 🖥️ Plattformunterstützung für Windows, macOS, Linux\n- 📦 Apache 2.0 Lizenz – Open Source\n\nWeitere Infos: [velociraptor.app](https://www.velociraptor.app/) \nProjektspiegel: [raptor.cc24.dev](https://raptor.cc24.dev) \nStatus: ![Status](https://status.mikoshi.de/api/badge/33/status)\n\n---\n\n## Installation\n\n### Voraussetzungen\n\n- Python ≥ 3.9\n- Adminrechte auf dem System\n- Firewall-Freigaben für Webport (Standard: 8000)\n\n### Installation unter Linux/macOS\n\n```bash\nwget https://github.com/Velocidex/velociraptor/releases/latest/download/velociraptor\nchmod +x velociraptor\nsudo mv velociraptor /usr/local/bin/\n````\n\n### Installation unter Windows\n\n1. Download der `.exe` von der [Release-Seite](https://github.com/Velocidex/velociraptor/releases)\n2. Ausführung in PowerShell mit Adminrechten:\n\n ```powershell\n .\\velociraptor.exe config generate > server.config.yaml\n ```\n\n---\n\n## Konfiguration\n\n### Server Setup\n\n1. Generiere die Konfigurationsdatei:\n\n ```bash\n velociraptor config generate > server.config.yaml\n ```\n2. Starte den Server:\n\n ```bash\n velociraptor --config server.config.yaml frontend\n ```\n3. Zugriff über Browser via `https://\u003Chostname>:8000`\n\n### Client Deployment\n\n* MSI/EXE für Windows, oder `deb/rpm` für Linux\n* Unterstützt automatische Registrierung am Server\n* Deployment über GPO, Puppet, Ansible etc. möglich\n\n---\n\n## Verwendungsbeispiele\n\n### 1. Live-Memory-Artefakte sammeln\n\n```vql\nSELECT * FROM Artifact.MemoryInfo()\n```\n\n### 2. Hunt starten auf verdächtige Prozesse\n\n```vql\nSELECT * FROM pslist()\nWHERE Name =~ \"mimikatz|cobaltstrike\"\n```\n\n### 3. Dateiinhalt extrahieren\n\n```vql\nSELECT * FROM glob(globs=\"C:\\\\Users\\\\*\\\\AppData\\\\*.dat\")\n```\n\n---\n\n## Best Practices\n\n* Erstelle eigene Artefakte für unternehmensspezifische Bedrohungsmodelle\n* Verwende \"Notebook\"-Funktion für strukturierte Analysen\n* Nutze \"Labels\", um Endpoints zu organisieren (z. B. `location:Berlin`)\n* Kombiniere Velociraptor mit SIEM/EDR-Systemen über REST API\n\n---\n\n## Troubleshooting\n\n### Problem: Keine Verbindung vom Client zum Server\n\n**Lösung:**\n\n* Ports freigegeben? (Default: 8000/tcp)\n* TLS-Zertifikate korrekt generiert?\n* `server.config.yaml` auf korrekte `public_ip` prüfen\n\n### Problem: Hunt hängt in Warteschleife\n\n**Lösung:**\n\n* Genügend Worker-Prozesse aktiv?\n* Endpoint online?\n* `log_level` auf `debug` setzen und Log analysieren\n\n---\n\n## Weiterführende Themen\n\n* Eigene Artefakte schreiben mit VQL\n* Integration mit ELK Stack\n* Automatisiertes Incident Response Playbook\n* Velociraptor als IR-as-a-Service einsetzen\n\n---\n\n🧠 **Tipp:** Die Lernkurve bei VQL ist steil – aber mit hohem ROI. Testumgebung aufsetzen und mit Community-Artefakten starten.\n\n📚 Weitere Ressourcen:\n\n* [Offizielle Doku](https://docs.velociraptor.app/)\n* [YouTube Channel](https://www.youtube.com/c/VelociraptorDFIR)\n* [Community auf Discord](https://www.velociraptor.app/community/)","src/content/knowledgebase/velociraptor.md","835bd74f7afd2c35",{"html":321,"metadata":322},"\u003Cblockquote>\n\u003Cp>\u003Cstrong>⚠️ Hinweis\u003C/strong>: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\u003C/p>\n\u003C/blockquote>\n\u003Ch1 id=\"übersicht\">Übersicht\u003C/h1>\n\u003Cp>Velociraptor ist ein Open-Source-Tool zur Endpoint-Forensik mit Fokus auf Skalierbarkeit, Präzision und Geschwindigkeit. Es ermöglicht die zielgerichtete Erfassung und Analyse digitaler Artefakte über eine eigene Query Language – VQL (Velociraptor Query Language). Die Architektur erlaubt remote Zugriff auf tausende Endpoints gleichzeitig, ohne dass vollständige Disk-Images erforderlich sind.\u003C/p>\n\u003Ch2 id=\"hauptmerkmale\">Hauptmerkmale\u003C/h2>\n\u003Cul>\n\u003Cli>🌐 Web-basierte Benutzeroberfläche\u003C/li>\n\u003Cli>💡 VQL – mächtige, SQL-ähnliche Abfragesprache\u003C/li>\n\u003Cli>🚀 Hochskalierbare Hunt-Funktionalität\u003C/li>\n\u003Cli>🔍 Artefaktbasierte Sammlung (ohne Full-Image)\u003C/li>\n\u003Cli>🖥️ Plattformunterstützung für Windows, macOS, Linux\u003C/li>\n\u003Cli>📦 Apache 2.0 Lizenz – Open Source\u003C/li>\n\u003C/ul>\n\u003Cp>Weitere Infos: \u003Ca href=\"https://www.velociraptor.app/\">velociraptor.app\u003C/a>\u003Cbr>\nProjektspiegel: \u003Ca href=\"https://raptor.cc24.dev\">raptor.cc24.dev\u003C/a>\u003Cbr>\nStatus: \u003Cimg src=\"https://status.mikoshi.de/api/badge/33/status\" alt=\"Status\">\u003C/p>\n\u003Chr>\n\u003Ch2 id=\"installation\">Installation\u003C/h2>\n\u003Ch3 id=\"voraussetzungen\">Voraussetzungen\u003C/h3>\n\u003Cul>\n\u003Cli>Python ≥ 3.9\u003C/li>\n\u003Cli>Adminrechte auf dem System\u003C/li>\n\u003Cli>Firewall-Freigaben für Webport (Standard: 8000)\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"installation-unter-linuxmacos\">Installation unter Linux/macOS\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">wget\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/Velocidex/velociraptor/releases/latest/download/velociraptor\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">chmod\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> +x\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> velociraptor\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mv\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> velociraptor\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /usr/local/bin/\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"installation-unter-windows\">Installation unter Windows\u003C/h3>\n\u003Col>\n\u003Cli>\n\u003Cp>Download der \u003Ccode>.exe\u003C/code> von der \u003Ca href=\"https://github.com/Velocidex/velociraptor/releases\">Release-Seite\u003C/a>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>Ausführung in PowerShell mit Adminrechten:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"powershell\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">.\\\u003C/span>\u003Cspan style=\"color:#79B8FF\">velociraptor.exe\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> config generate \u003C/span>\u003Cspan style=\"color:#F97583\">>\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> server.config.yaml\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003C/li>\n\u003C/ol>\n\u003Chr>\n\u003Ch2 id=\"konfiguration\">Konfiguration\u003C/h2>\n\u003Ch3 id=\"server-setup\">Server Setup\u003C/h3>\n\u003Col>\n\u003Cli>\n\u003Cp>Generiere die Konfigurationsdatei:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">velociraptor\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> config\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> generate\u003C/span>\u003Cspan style=\"color:#F97583\"> >\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> server.config.yaml\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003C/li>\n\u003Cli>\n\u003Cp>Starte den Server:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">velociraptor\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --config\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> server.config.yaml\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> frontend\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003C/li>\n\u003Cli>\n\u003Cp>Zugriff über Browser via \u003Ccode>https://<hostname>:8000\u003C/code>\u003C/p>\n\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"client-deployment\">Client Deployment\u003C/h3>\n\u003Cul>\n\u003Cli>MSI/EXE für Windows, oder \u003Ccode>deb/rpm\u003C/code> für Linux\u003C/li>\n\u003Cli>Unterstützt automatische Registrierung am Server\u003C/li>\n\u003Cli>Deployment über GPO, Puppet, Ansible etc. möglich\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"verwendungsbeispiele\">Verwendungsbeispiele\u003C/h2>\n\u003Ch3 id=\"1-live-memory-artefakte-sammeln\">1. Live-Memory-Artefakte sammeln\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>SELECT * FROM Artifact.MemoryInfo()\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"2-hunt-starten-auf-verdächtige-prozesse\">2. Hunt starten auf verdächtige Prozesse\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>SELECT * FROM pslist()\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>WHERE Name =~ \"mimikatz|cobaltstrike\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"3-dateiinhalt-extrahieren\">3. Dateiinhalt extrahieren\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>SELECT * FROM glob(globs=\"C:\\\\Users\\\\*\\\\AppData\\\\*.dat\")\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Chr>\n\u003Ch2 id=\"best-practices\">Best Practices\u003C/h2>\n\u003Cul>\n\u003Cli>Erstelle eigene Artefakte für unternehmensspezifische Bedrohungsmodelle\u003C/li>\n\u003Cli>Verwende “Notebook”-Funktion für strukturierte Analysen\u003C/li>\n\u003Cli>Nutze “Labels”, um Endpoints zu organisieren (z. B. \u003Ccode>location:Berlin\u003C/code>)\u003C/li>\n\u003Cli>Kombiniere Velociraptor mit SIEM/EDR-Systemen über REST API\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"troubleshooting\">Troubleshooting\u003C/h2>\n\u003Ch3 id=\"problem-keine-verbindung-vom-client-zum-server\">Problem: Keine Verbindung vom Client zum Server\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Ports freigegeben? (Default: 8000/tcp)\u003C/li>\n\u003Cli>TLS-Zertifikate korrekt generiert?\u003C/li>\n\u003Cli>\u003Ccode>server.config.yaml\u003C/code> auf korrekte \u003Ccode>public_ip\u003C/code> prüfen\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"problem-hunt-hängt-in-warteschleife\">Problem: Hunt hängt in Warteschleife\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Genügend Worker-Prozesse aktiv?\u003C/li>\n\u003Cli>Endpoint online?\u003C/li>\n\u003Cli>\u003Ccode>log_level\u003C/code> auf \u003Ccode>debug\u003C/code> setzen und Log analysieren\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"weiterführende-themen\">Weiterführende Themen\u003C/h2>\n\u003Cul>\n\u003Cli>Eigene Artefakte schreiben mit VQL\u003C/li>\n\u003Cli>Integration mit ELK Stack\u003C/li>\n\u003Cli>Automatisiertes Incident Response Playbook\u003C/li>\n\u003Cli>Velociraptor als IR-as-a-Service einsetzen\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Cp>🧠 \u003Cstrong>Tipp:\u003C/strong> Die Lernkurve bei VQL ist steil – aber mit hohem ROI. Testumgebung aufsetzen und mit Community-Artefakten starten.\u003C/p>\n\u003Cp>📚 Weitere Ressourcen:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https://docs.velociraptor.app/\">Offizielle Doku\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://www.youtube.com/c/VelociraptorDFIR\">YouTube Channel\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://www.velociraptor.app/community/\">Community auf Discord\u003C/a>\u003C/li>\n\u003C/ul>",{"headings":323,"localImagePaths":362,"remoteImagePaths":363,"frontmatter":364,"imagePaths":369},[324,325,328,329,330,333,336,337,340,343,344,347,350,353,354,355,358,361],{"depth":43,"slug":44,"text":45},{"depth":47,"slug":326,"text":327},"hauptmerkmale","Hauptmerkmale",{"depth":47,"slug":111,"text":112},{"depth":51,"slug":114,"text":115},{"depth":51,"slug":331,"text":332},"installation-unter-linuxmacos","Installation unter Linux/macOS",{"depth":51,"slug":334,"text":335},"installation-unter-windows","Installation unter Windows",{"depth":47,"slug":120,"text":121},{"depth":51,"slug":338,"text":339},"server-setup","Server Setup",{"depth":51,"slug":341,"text":342},"client-deployment","Client Deployment",{"depth":47,"slug":48,"text":49},{"depth":51,"slug":345,"text":346},"1-live-memory-artefakte-sammeln","1. Live-Memory-Artefakte sammeln",{"depth":51,"slug":348,"text":349},"2-hunt-starten-auf-verdächtige-prozesse","2. Hunt starten auf verdächtige Prozesse",{"depth":51,"slug":351,"text":352},"3-dateiinhalt-extrahieren","3. Dateiinhalt extrahieren",{"depth":47,"slug":64,"text":65},{"depth":47,"slug":140,"text":141},{"depth":51,"slug":356,"text":357},"problem-keine-verbindung-vom-client-zum-server","Problem: Keine Verbindung vom Client zum Server",{"depth":51,"slug":359,"text":360},"problem-hunt-hängt-in-warteschleife","Problem: Hunt hängt in Warteschleife",{"depth":47,"slug":67,"text":68},[],[],{"title":304,"tool_name":305,"description":306,"last_updated":365,"author":18,"difficulty":308,"categories":366,"tags":367,"sections":368,"review_status":34},["Date","2025-07-20T00:00:00.000Z"],[21,22,23],[95,311,312,313,314,315],{"overview":32,"installation":32,"configuration":32,"usage_examples":32,"best_practices":32,"troubleshooting":32,"advanced_topics":32},[],"velociraptor.md","android-logical-imaging",{"id":371,"data":373,"body":386,"filePath":387,"digest":388,"rendered":389,"legacyId":622},{"title":374,"tool_name":375,"description":376,"last_updated":377,"author":378,"difficulty":308,"categories":379,"tags":381,"sections":385,"review_status":34},"Extraktion logischer Dateisysteme alter Android-Smartphones - eine KI-Recherche","Android Logical Imaging","Wie man alte Android-Handys aufbekommen könnte - eine Recherche von Claude",["Date","2025-07-21T00:00:00.000Z"],"Claude 4 Sonnet (Research)",[380],"data-collection",[382,383,384],"imaging","filesystem","hardware-interface",{"overview":32,"installation":32,"configuration":32,"usage_examples":32,"best_practices":32,"troubleshooting":32,"advanced_topics":32},"# Übersicht\n\nOpen-Source Android Forensik bietet robuste Alternativen zu kommerziellen Lösungen wie Cellebrite UFED und Magnet AXIOM. Besonders für ältere Android-Geräte (5+ Jahre) existieren bewährte Methoden zur Datenextraktion und -analyse.\n\n## Kernkomponenten des Open-Source Forensik-Stacks\n\n**Autopsy Digital Forensics Platform** bildet das Fundament mit GUI-basierter Analyse und integrierten Android-Parsing-Fähigkeiten. Die Plattform unterstützt **ALEAPP (Android Logs Events And Protobuf Parser)**, das über 100 Artefakt-Kategorien aus Android-Extraktionen parst.\n\n**Mobile Verification Toolkit (MVT)** von Amnesty International bietet spezialisierte Command-Line-Tools für Android-Analyse mit Fokus auf Kompromittierungserkennung.\n\n**SIFT Workstation** stellt eine komplette Ubuntu-basierte forensische Umgebung mit 125+ vorinstallierten Tools bereit.\n\n## Erfolgsraten nach Gerätealter\n\n- **Pre-2017 Geräte**: 85-98% logische Extraktion, 30-70% physische Extraktion\n- **2017-2019 Geräte**: 80-95% logische Extraktion, 15-35% physische Extraktion \n- **2020+ Geräte**: 70-85% logische Extraktion, 5-15% physische Extraktion\n\n# Installation\n\n## SIFT Workstation Setup\n\n### Systemanforderungen\n- Quad-Core CPU 2.5GHz+\n- 16GB+ RAM\n- 500GB+ SSD Speicher\n- USB 3.0+ Anschlüsse\n\n### Installation\n1. Download von [SANS SIFT Workstation](https://www.sans.org/tools/sift-workstation/)\n2. VMware/VirtualBox Import der OVA-Datei\n3. VM-Konfiguration: 8GB+ RAM, 4+ CPU-Kerne\n\n```bash\n# Update nach Installation\nsudo apt update && sudo apt upgrade -y\nsudo sift update\n```\n\n## Autopsy Installation\n\n### Windows Installation\n1. Download von [autopsy.com](https://www.autopsy.com/)\n2. Java 8+ Installation erforderlich\n3. Installation mit Administratorrechten\n\n### Linux Installation\n```bash\n# Ubuntu/Debian\nsudo apt install autopsy sleuthkit\n# Oder manueller Download und Installation\nwget https://github.com/sleuthkit/autopsy/releases/latest\n```\n\n## Essential Tools Installation\n\n### Android Debug Bridge (ADB)\n```bash\n# Ubuntu/Debian\nsudo apt install android-tools-adb android-tools-fastboot\n\n# Windows - Download Android Platform Tools\n# https://developer.android.com/studio/releases/platform-tools\n```\n\n### ALEAPP Installation\n```bash\ngit clone https://github.com/abrignoni/ALEAPP.git\ncd ALEAPP\npip3 install -r requirements.txt\n```\n\n### Mobile Verification Toolkit (MVT)\n```bash\npip3 install mvt\n# Oder via GitHub für neueste Version\ngit clone https://github.com/mvt-project/mvt.git\ncd mvt && pip3 install .\n```\n\n### Andriller Installation\n```bash\ngit clone https://github.com/den4uk/andriller.git\ncd andriller\npip3 install -r requirements.txt\n```\n\n# Konfiguration\n\n## ADB Setup und Gerätevorbereitung\n\n### USB-Debugging aktivieren\n1. Entwickleroptionen freischalten (7x Build-Nummer antippen)\n2. USB-Debugging aktivieren\n3. Gerät via USB verbinden\n4. RSA-Fingerprint akzeptieren\n\n### ADB Verbindung testen\n```bash\nadb devices\n# Sollte Gerät mit \"device\" Status zeigen\nadb shell getprop ro.build.version.release # Android Version\nadb shell getprop ro.product.model # Gerätemodell\n```\n\n## Autopsy Projektkonfiguration\n\n### Case-Setup\n1. Neuen Fall erstellen\n2. Ermittler-Informationen eingeben\n3. Case-Verzeichnis festlegen (ausreichend Speicherplatz)\n\n### Android Analyzer Module aktivieren\n- Tools → Options → Modules\n- Android Analyzer aktivieren\n- ALEAPP Integration konfigurieren\n\n### Hash-Algorithmen konfigurieren\n- MD5, SHA-1, SHA-256 für Integritätsprüfung\n- Automatische Hash-Berechnung bei Import aktivieren\n\n## MVT Konfiguration\n\n### Konfigurationsdatei erstellen\n```yaml\n# ~/.mvt/config.yaml\nadb_path: \"/usr/bin/adb\"\noutput_folder: \"/home/user/mvt_output\"\n```\n\n# Verwendungsbeispiele\n\n## Fall 1: Logische Datenextraktion mit ADB\n\n### Geräteinformationen sammeln\n```bash\n# Systeminfo\nadb shell getprop > device_properties.txt\nadb shell cat /proc/version > kernel_info.txt\nadb shell mount > mount_info.txt\n\n# Installierte Apps\nadb shell pm list packages -f > installed_packages.txt\n```\n\n### Datenbank-Extraktion\n```bash\n# SMS/MMS Datenbank\nadb pull /data/data/com.android.providers.telephony/databases/mmssms.db\n\n# Kontakte\nadb pull /data/data/com.android.providers.contacts/databases/contacts2.db\n\n# Anrufliste \nadb pull /data/data/com.android.providers.contacts/databases/calllog.db\n```\n\n### WhatsApp Datenextraktion\n```bash\n# WhatsApp Datenbanken (Root erforderlich)\nadb shell su -c \"cp -r /data/data/com.whatsapp/ /sdcard/whatsapp_backup/\"\nadb pull /sdcard/whatsapp_backup/\n```\n\n## Fall 2: Android Backup-Analyse\n\n### Vollständiges Backup erstellen\n```bash\n# Umfassendes Backup (ohne Root)\nadb backup -all -system -apk -shared -f backup.ab\n\n# Backup entschlüsseln (falls verschlüsselt)\njava -jar abe.jar unpack backup.ab backup.tar\ntar -xf backup.tar\n```\n\n### Backup mit ALEAPP analysieren\n```bash\npython3 aleappGUI.py\n# Oder Command-Line\npython3 aleapp.py -t tar -i backup.tar -o output_folder\n```\n\n## Fall 3: MVT Kompromittierungsanalyse\n\n### Live-Geräteanalyse\n```bash\n# ADB-basierte Analyse\nmvt-android check-adb --output /path/to/output/\n\n# Backup-Analyse\nmvt-android check-backup --output /path/to/output/ backup.ab\n```\n\n### IOC-Suche mit Pegasus-Indikatoren\n```bash\n# Mit vorgefertigten IOCs\nmvt-android check-adb --iocs /path/to/pegasus.stix2 --output results/\n```\n\n## Fall 4: Physische Extraktion (Root erforderlich)\n\n### Device Rooting - MediaTek Geräte\n```bash\n# MTKClient für MediaTek-Chipsets\ngit clone https://github.com/bkerler/mtkclient.git\ncd mtkclient\npython3 mtk payload\n\n# Nach erfolgreichem Root\nadb shell su\n```\n\n### Vollständiges Memory Dump\n```bash\n# Partitionslayout ermitteln\nadb shell su -c \"cat /proc/partitions\"\nadb shell su -c \"ls -la /dev/block/\"\n\n# Vollständiges Device Image (Root erforderlich)\nadb shell su -c \"dd if=/dev/block/mmcblk0 of=/sdcard/full_device.img bs=4096\"\nadb pull /sdcard/full_device.img\n```\n\n# Best Practices\n\n## Rechtliche Compliance\n\n### Dokumentation und Chain of Custody\n- **Vollständige Dokumentation**: Wer, Was, Wann, Wo, Warum\n- **Hash-Verifikation**: MD5/SHA-256 für alle extrahierten Daten\n- **Nur forensische Kopien analysieren**, niemals Originaldaten\n- **Schriftliche Genehmigung** für Geräteanalyse einholen\n\n### Familiengeräte und Nachlässe\n- Genehmigung durch Nachlassverwalter erforderlich\n- Gerichtsbeschlüsse für Cloud-Zugang eventuell nötig\n- Drittpartei-Kommunikation kann weiterhin geschützt sein\n\n## Technische Best Practices\n\n### Hash-Integrität sicherstellen\n```bash\n# Hash vor und nach Transfer prüfen\nmd5sum original_file.db\nsha256sum original_file.db\n\n# Hash-Verifikation dokumentieren\necho \"$(date): MD5: $(md5sum file.db)\" >> chain_of_custody.log\n```\n\n### Sichere Arbeitsumgebung\n- Isolierte VM für Forensik-Arbeit\n- Netzwerk-Isolation während Analyse\n- Verschlüsselte Speicherung aller Evidenz\n- Regelmäßige Backups der Case-Datenbanken\n\n### Qualitätssicherung\n- Peer-Review kritischer Analysen\n- Standardisierte Arbeitsabläufe (SOPs)\n- Regelmäßige Tool-Validierung\n- Kontinuierliche Weiterbildung\n\n## Erfolgsmaximierung nach Gerätehersteller\n\n### MediaTek-Geräte (Höchste Erfolgsrate)\n- BootROM-Exploits für MT6735, MT6737, MT6750, MT6753, MT6797\n- MTKClient für Hardware-Level-Zugang\n- Erfolgsrate: 80%+ für Geräte 2015-2019\n\n### Samsung-Geräte\n- Ältere Knox-Implementierungen umgehbar\n- Emergency Dialer Exploits für Android 4.x\n- Erfolgsrate: 40-70% je nach Knox-Version\n\n### Pixel/Nexus-Geräte\n- Bootloader-Unlocking oft möglich\n- Fastboot-basierte Recovery-Installation\n- Erfolgsrate: 60-80% bei freigeschaltetem Bootloader\n\n# Troubleshooting\n\n## Problem: ADB erkennt Gerät nicht\n\n### Lösung: USB-Treiber und Berechtigungen\n```bash\n# Linux: USB-Berechtigungen prüfen\nlsusb | grep -i android\nsudo chmod 666 /dev/bus/usb/XXX/XXX\n\n# udev-Regeln erstellen\necho 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"18d1\", MODE=\"0666\", GROUP=\"plugdev\"' | sudo tee /etc/udev/rules.d/51-android.rules\nsudo udevadm control --reload-rules\n```\n\n### Windows: Treiber-Installation\n1. Geräte-Manager öffnen\n2. Android-Gerät mit Warnsymbol finden\n3. Treiber manuell installieren (Android USB Driver)\n\n## Problem: Verschlüsselte Android Backups\n\n### Lösung: Android Backup Extractor\n```bash\n# ADB Backup Extractor installieren\ngit clone https://github.com/nelenkov/android-backup-extractor.git\ncd android-backup-extractor\ngradle build\n\n# Backup entschlüsseln\njava -jar abe.jar unpack backup.ab backup.tar [password]\n```\n\n## Problem: Unzureichende Berechtigungen für Datenextraktion\n\n### Lösung: Alternative Extraktionsmethoden\n```bash\n# AFLogical OSE für begrenzte Extraktion ohne Root\n# WhatsApp Key/DB Extractor für spezifische Apps\n# Backup-basierte Extraktion als Fallback\n\n# Custom Recovery für erweiterten Zugang\nfastboot flash recovery twrp-device.img\n```\n\n## Problem: ALEAPP Parsing-Fehler\n\n### Lösung: Datenformat-Probleme beheben\n```bash\n# Log-Dateien prüfen\npython3 aleapp.py -t dir -i /path/to/data -o output --debug\n\n# Spezifische Parser deaktivieren\n# Manuelle SQLite-Analyse bei Parser-Fehlern\nsqlite3 database.db \".tables\"\nsqlite3 database.db \".schema table_name\"\n```\n\n# Erweiterte Techniken\n\n## Memory Forensics mit LiME\n\n### LiME für ARM-Devices kompilieren\n```bash\n# Cross-Compilation Setup\nexport ARCH=arm\nexport CROSS_COMPILE=arm-linux-gnueabi-\nexport KERNEL_DIR=/path/to/kernel/source\n\n# LiME Module kompilieren\ngit clone https://github.com/504ensicsLabs/LiME.git\ncd LiME/src\nmake\n\n# Memory Dump erstellen (Root erforderlich)\nadb push lime.ko /data/local/tmp/\nadb shell su -c \"insmod /data/local/tmp/lime.ko 'path=/sdcard/memory.lime format=lime'\"\n```\n\n### Volatility-Analyse von Android Memory\n```bash\n# Memory Dump analysieren\npython vol.py -f memory.lime --profile=Linux \u003Cprofile> linux.pslist\npython vol.py -f memory.lime --profile=Linux \u003Cprofile> linux.bash\npython vol.py -f memory.lime --profile=Linux \u003Cprofile> linux.netstat\n```\n\n## FRIDA-basierte Runtime-Analyse\n\n### FRIDA für Kryptographie-Hooks\n```javascript\n// crypto_hooks.js - SSL/TLS Traffic abfangen\nJava.perform(function() {\n var SSLContext = Java.use(\"javax.net.ssl.SSLContext\");\n SSLContext.init.overload('[Ljavax.net.ssl.KeyManager;', '[Ljavax.net.ssl.TrustManager;', 'java.security.SecureRandom').implementation = function(keyManagers, trustManagers, secureRandom) {\n console.log(\"[+] SSLContext.init() called\");\n this.init(keyManagers, trustManagers, secureRandom);\n };\n});\n```\n\n### FRIDA Installation und Verwendung\n```bash\n# FRIDA Server auf Android-Gerät installieren\nadb push frida-server /data/local/tmp/\nadb shell su -c \"chmod 755 /data/local/tmp/frida-server\"\nadb shell su -c \"/data/local/tmp/frida-server &\"\n\n# Script ausführen\nfrida -U -l crypto_hooks.js com.target.package\n```\n\n## Custom Recovery und Fastboot-Exploits\n\n### TWRP Installation für forensischen Zugang\n```bash\n# Bootloader entsperren (Herstellerabhängig)\nfastboot oem unlock\n# Oder\nfastboot flashing unlock\n\n# TWRP flashen\nfastboot flash recovery twrp-device.img\nfastboot boot twrp-device.img # Temporäre Installation\n\n# In TWRP: ADB-Zugang mit Root-Berechtigungen\nadb shell mount /system\nadb shell mount /data\n```\n\n### Partitions-Imaging mit dd\n```bash\n# Vollständige Partition-Liste\nadb shell cat /proc/partitions\n\n# Kritische Partitionen extrahieren\nadb shell dd if=/dev/block/bootdevice/by-name/system of=/external_sd/system.img\nadb shell dd if=/dev/block/bootdevice/by-name/userdata of=/external_sd/userdata.img\nadb shell dd if=/dev/block/bootdevice/by-name/boot of=/external_sd/boot.img\n```\n\n## SQLite Forensics und gelöschte Daten\n\n### Erweiterte SQLite-Analyse\n```bash\n# Freelist-Analyse für gelöschte Einträge\nsqlite3 database.db \"PRAGMA freelist_count;\"\nsqlite3 database.db \"PRAGMA page_size;\"\n\n# WAL-Datei Analyse\nsqlite3 database.db \"PRAGMA wal_checkpoint;\"\nstrings database.db-wal | grep -i \"search_term\"\n\n# Undark für Deleted Record Recovery\nundark database.db --freelist --export-csv\n```\n\n### Timeline-Rekonstruktion\n```bash\n# Autopsy Timeline-Generierung\n# Tools → Generate Timeline\n# Analyse von MAC-Times (Modified, Accessed, Created)\n\n# Plaso Timeline-Tools\nlog2timeline.py timeline.plaso /path/to/android/data/\npsort.py -o dynamic timeline.plaso\n```\n\n## Weiterführende Ressourcen\n\n### Dokumentation und Standards\n- [NIST SP 800-101 Rev. 1 - Mobile Device Forensics Guidelines](https://csrc.nist.gov/pubs/sp/800/101/r1/final)\n- [SANS FOR585 - Smartphone Forensics](https://www.sans.org/cyber-security-courses/advanced-smartphone-mobile-device-forensics/)\n- [ALEAPP GitHub Repository](https://github.com/abrignoni/ALEAPP)\n- [MVT Documentation](https://docs.mvt.re/en/latest/)\n\n### Community und Weiterbildung\n- [Autopsy User Documentation](https://sleuthkit.org/autopsy/docs/)\n- [Android Forensics References](https://github.com/impillar/AndroidReferences/blob/master/AndroidTools.md)\n- [Digital Forensics Framework Collection](https://github.com/mesquidar/ForensicsTools)\n\n### Spezialisierte Tools\n- [MTKClient für MediaTek Exploits](https://github.com/bkerler/mtkclient)\n- [Android Forensics Framework](https://github.com/nowsecure/android-forensics)\n- [Santoku Linux Mobile Forensics Distribution](https://santoku-linux.com/)\n\n---\n\n**Wichtiger Hinweis**: Diese Anleitung dient ausschließlich für autorisierte forensische Untersuchungen. Stellen Sie sicher, dass Sie über entsprechende rechtliche Befugnisse verfügen, bevor Sie diese Techniken anwenden. Bei Zweifeln konsultieren Sie Rechtsberatung.","src/content/knowledgebase/android-logical-imaging.md","0bb3f1d2c872d2bf",{"html":390,"metadata":391},"\u003Ch1 id=\"übersicht\">Übersicht\u003C/h1>\n\u003Cp>Open-Source Android Forensik bietet robuste Alternativen zu kommerziellen Lösungen wie Cellebrite UFED und Magnet AXIOM. Besonders für ältere Android-Geräte (5+ Jahre) existieren bewährte Methoden zur Datenextraktion und -analyse.\u003C/p>\n\u003Ch2 id=\"kernkomponenten-des-open-source-forensik-stacks\">Kernkomponenten des Open-Source Forensik-Stacks\u003C/h2>\n\u003Cp>\u003Cstrong>Autopsy Digital Forensics Platform\u003C/strong> bildet das Fundament mit GUI-basierter Analyse und integrierten Android-Parsing-Fähigkeiten. Die Plattform unterstützt \u003Cstrong>ALEAPP (Android Logs Events And Protobuf Parser)\u003C/strong>, das über 100 Artefakt-Kategorien aus Android-Extraktionen parst.\u003C/p>\n\u003Cp>\u003Cstrong>Mobile Verification Toolkit (MVT)\u003C/strong> von Amnesty International bietet spezialisierte Command-Line-Tools für Android-Analyse mit Fokus auf Kompromittierungserkennung.\u003C/p>\n\u003Cp>\u003Cstrong>SIFT Workstation\u003C/strong> stellt eine komplette Ubuntu-basierte forensische Umgebung mit 125+ vorinstallierten Tools bereit.\u003C/p>\n\u003Ch2 id=\"erfolgsraten-nach-gerätealter\">Erfolgsraten nach Gerätealter\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Pre-2017 Geräte\u003C/strong>: 85-98% logische Extraktion, 30-70% physische Extraktion\u003C/li>\n\u003Cli>\u003Cstrong>2017-2019 Geräte\u003C/strong>: 80-95% logische Extraktion, 15-35% physische Extraktion\u003C/li>\n\u003Cli>\u003Cstrong>2020+ Geräte\u003C/strong>: 70-85% logische Extraktion, 5-15% physische Extraktion\u003C/li>\n\u003C/ul>\n\u003Ch1 id=\"installation\">Installation\u003C/h1>\n\u003Ch2 id=\"sift-workstation-setup\">SIFT Workstation Setup\u003C/h2>\n\u003Ch3 id=\"systemanforderungen\">Systemanforderungen\u003C/h3>\n\u003Cul>\n\u003Cli>Quad-Core CPU 2.5GHz+\u003C/li>\n\u003Cli>16GB+ RAM\u003C/li>\n\u003Cli>500GB+ SSD Speicher\u003C/li>\n\u003Cli>USB 3.0+ Anschlüsse\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"installation-1\">Installation\u003C/h3>\n\u003Col>\n\u003Cli>Download von \u003Ca href=\"https://www.sans.org/tools/sift-workstation/\">SANS SIFT Workstation\u003C/a>\u003C/li>\n\u003Cli>VMware/VirtualBox Import der OVA-Datei\u003C/li>\n\u003Cli>VM-Konfiguration: 8GB+ RAM, 4+ CPU-Kerne\u003C/li>\n\u003C/ol>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Update nach Installation\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> update\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> && \u003C/span>\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> upgrade\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -y\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> sift\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> update\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"autopsy-installation\">Autopsy Installation\u003C/h2>\n\u003Ch3 id=\"windows-installation\">Windows Installation\u003C/h3>\n\u003Col>\n\u003Cli>Download von \u003Ca href=\"https://www.autopsy.com/\">autopsy.com\u003C/a>\u003C/li>\n\u003Cli>Java 8+ Installation erforderlich\u003C/li>\n\u003Cli>Installation mit Administratorrechten\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"linux-installation\">Linux Installation\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Ubuntu/Debian\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> autopsy\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> sleuthkit\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Oder manueller Download und Installation\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">wget\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/sleuthkit/autopsy/releases/latest\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"essential-tools-installation\">Essential Tools Installation\u003C/h2>\n\u003Ch3 id=\"android-debug-bridge-adb\">Android Debug Bridge (ADB)\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Ubuntu/Debian\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> android-tools-adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> android-tools-fastboot\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Windows - Download Android Platform Tools\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># https://developer.android.com/studio/releases/platform-tools\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"aleapp-installation\">ALEAPP Installation\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/abrignoni/ALEAPP.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> ALEAPP\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">pip3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -r\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> requirements.txt\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"mobile-verification-toolkit-mvt\">Mobile Verification Toolkit (MVT)\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">pip3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mvt\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Oder via GitHub für neueste Version\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/mvt-project/mvt.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mvt\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> && \u003C/span>\u003Cspan style=\"color:#B392F0\">pip3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> .\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"andriller-installation\">Andriller Installation\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/den4uk/andriller.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> andriller\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">pip3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -r\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> requirements.txt\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch1 id=\"konfiguration\">Konfiguration\u003C/h1>\n\u003Ch2 id=\"adb-setup-und-gerätevorbereitung\">ADB Setup und Gerätevorbereitung\u003C/h2>\n\u003Ch3 id=\"usb-debugging-aktivieren\">USB-Debugging aktivieren\u003C/h3>\n\u003Col>\n\u003Cli>Entwickleroptionen freischalten (7x Build-Nummer antippen)\u003C/li>\n\u003Cli>USB-Debugging aktivieren\u003C/li>\n\u003Cli>Gerät via USB verbinden\u003C/li>\n\u003Cli>RSA-Fingerprint akzeptieren\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"adb-verbindung-testen\">ADB Verbindung testen\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> devices\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Sollte Gerät mit \"device\" Status zeigen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> getprop\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> ro.build.version.release\u003C/span>\u003Cspan style=\"color:#6A737D\"> # Android Version\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> getprop\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> ro.product.model\u003C/span>\u003Cspan style=\"color:#6A737D\"> # Gerätemodell\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"autopsy-projektkonfiguration\">Autopsy Projektkonfiguration\u003C/h2>\n\u003Ch3 id=\"case-setup\">Case-Setup\u003C/h3>\n\u003Col>\n\u003Cli>Neuen Fall erstellen\u003C/li>\n\u003Cli>Ermittler-Informationen eingeben\u003C/li>\n\u003Cli>Case-Verzeichnis festlegen (ausreichend Speicherplatz)\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"android-analyzer-module-aktivieren\">Android Analyzer Module aktivieren\u003C/h3>\n\u003Cul>\n\u003Cli>Tools → Options → Modules\u003C/li>\n\u003Cli>Android Analyzer aktivieren\u003C/li>\n\u003Cli>ALEAPP Integration konfigurieren\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"hash-algorithmen-konfigurieren\">Hash-Algorithmen konfigurieren\u003C/h3>\n\u003Cul>\n\u003Cli>MD5, SHA-1, SHA-256 für Integritätsprüfung\u003C/li>\n\u003Cli>Automatische Hash-Berechnung bei Import aktivieren\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"mvt-konfiguration\">MVT Konfiguration\u003C/h2>\n\u003Ch3 id=\"konfigurationsdatei-erstellen\">Konfigurationsdatei erstellen\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"yaml\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># ~/.mvt/config.yaml\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">adb_path\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"/usr/bin/adb\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">output_folder\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"/home/user/mvt_output\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch1 id=\"verwendungsbeispiele\">Verwendungsbeispiele\u003C/h1>\n\u003Ch2 id=\"fall-1-logische-datenextraktion-mit-adb\">Fall 1: Logische Datenextraktion mit ADB\u003C/h2>\n\u003Ch3 id=\"geräteinformationen-sammeln\">Geräteinformationen sammeln\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Systeminfo\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> getprop\u003C/span>\u003Cspan style=\"color:#F97583\"> >\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> device_properties.txt\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> cat\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /proc/version\u003C/span>\u003Cspan style=\"color:#F97583\"> >\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> kernel_info.txt\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mount\u003C/span>\u003Cspan style=\"color:#F97583\"> >\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mount_info.txt\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Installierte Apps\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pm\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> list\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> packages\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -f\u003C/span>\u003Cspan style=\"color:#F97583\"> >\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> installed_packages.txt\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"datenbank-extraktion\">Datenbank-Extraktion\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># SMS/MMS Datenbank\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pull\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /data/data/com.android.providers.telephony/databases/mmssms.db\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Kontakte\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pull\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /data/data/com.android.providers.contacts/databases/contacts2.db\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Anrufliste \u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pull\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /data/data/com.android.providers.contacts/databases/calllog.db\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"whatsapp-datenextraktion\">WhatsApp Datenextraktion\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># WhatsApp Datenbanken (Root erforderlich)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -c\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"cp -r /data/data/com.whatsapp/ /sdcard/whatsapp_backup/\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pull\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /sdcard/whatsapp_backup/\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"fall-2-android-backup-analyse\">Fall 2: Android Backup-Analyse\u003C/h2>\n\u003Ch3 id=\"vollständiges-backup-erstellen\">Vollständiges Backup erstellen\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Umfassendes Backup (ohne Root)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -all\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -system\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -apk\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -shared\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -f\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.ab\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Backup entschlüsseln (falls verschlüsselt)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">java\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -jar\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> abe.jar\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> unpack\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.ab\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.tar\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">tar\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -xf\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.tar\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"backup-mit-aleapp-analysieren\">Backup mit ALEAPP analysieren\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">python3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> aleappGUI.py\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Oder Command-Line\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">python3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> aleapp.py\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -t\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> tar\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -i\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.tar\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -o\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> output_folder\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"fall-3-mvt-kompromittierungsanalyse\">Fall 3: MVT Kompromittierungsanalyse\u003C/h2>\n\u003Ch3 id=\"live-geräteanalyse\">Live-Geräteanalyse\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># ADB-basierte Analyse\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">mvt-android\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> check-adb\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --output\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /path/to/output/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Backup-Analyse\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">mvt-android\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> check-backup\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --output\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /path/to/output/\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.ab\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"ioc-suche-mit-pegasus-indikatoren\">IOC-Suche mit Pegasus-Indikatoren\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Mit vorgefertigten IOCs\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">mvt-android\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> check-adb\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --iocs\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /path/to/pegasus.stix2\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --output\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> results/\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"fall-4-physische-extraktion-root-erforderlich\">Fall 4: Physische Extraktion (Root erforderlich)\u003C/h2>\n\u003Ch3 id=\"device-rooting---mediatek-geräte\">Device Rooting - MediaTek Geräte\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># MTKClient für MediaTek-Chipsets\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/bkerler/mtkclient.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mtkclient\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">python3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mtk\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> payload\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Nach erfolgreichem Root\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"vollständiges-memory-dump\">Vollständiges Memory Dump\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Partitionslayout ermitteln\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -c\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"cat /proc/partitions\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -c\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"ls -la /dev/block/\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Vollständiges Device Image (Root erforderlich)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -c\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"dd if=/dev/block/mmcblk0 of=/sdcard/full_device.img bs=4096\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pull\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /sdcard/full_device.img\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch1 id=\"best-practices\">Best Practices\u003C/h1>\n\u003Ch2 id=\"rechtliche-compliance\">Rechtliche Compliance\u003C/h2>\n\u003Ch3 id=\"dokumentation-und-chain-of-custody\">Dokumentation und Chain of Custody\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Vollständige Dokumentation\u003C/strong>: Wer, Was, Wann, Wo, Warum\u003C/li>\n\u003Cli>\u003Cstrong>Hash-Verifikation\u003C/strong>: MD5/SHA-256 für alle extrahierten Daten\u003C/li>\n\u003Cli>\u003Cstrong>Nur forensische Kopien analysieren\u003C/strong>, niemals Originaldaten\u003C/li>\n\u003Cli>\u003Cstrong>Schriftliche Genehmigung\u003C/strong> für Geräteanalyse einholen\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"familiengeräte-und-nachlässe\">Familiengeräte und Nachlässe\u003C/h3>\n\u003Cul>\n\u003Cli>Genehmigung durch Nachlassverwalter erforderlich\u003C/li>\n\u003Cli>Gerichtsbeschlüsse für Cloud-Zugang eventuell nötig\u003C/li>\n\u003Cli>Drittpartei-Kommunikation kann weiterhin geschützt sein\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"technische-best-practices\">Technische Best Practices\u003C/h2>\n\u003Ch3 id=\"hash-integrität-sicherstellen\">Hash-Integrität sicherstellen\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Hash vor und nach Transfer prüfen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">md5sum\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> original_file.db\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sha256sum\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> original_file.db\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Hash-Verifikation dokumentieren\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">echo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"$(\u003C/span>\u003Cspan style=\"color:#B392F0\">date\u003C/span>\u003Cspan style=\"color:#9ECBFF\">): MD5: $(\u003C/span>\u003Cspan style=\"color:#B392F0\">md5sum\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> file.db)\"\u003C/span>\u003Cspan style=\"color:#F97583\"> >>\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> chain_of_custody.log\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"sichere-arbeitsumgebung\">Sichere Arbeitsumgebung\u003C/h3>\n\u003Cul>\n\u003Cli>Isolierte VM für Forensik-Arbeit\u003C/li>\n\u003Cli>Netzwerk-Isolation während Analyse\u003C/li>\n\u003Cli>Verschlüsselte Speicherung aller Evidenz\u003C/li>\n\u003Cli>Regelmäßige Backups der Case-Datenbanken\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"qualitätssicherung\">Qualitätssicherung\u003C/h3>\n\u003Cul>\n\u003Cli>Peer-Review kritischer Analysen\u003C/li>\n\u003Cli>Standardisierte Arbeitsabläufe (SOPs)\u003C/li>\n\u003Cli>Regelmäßige Tool-Validierung\u003C/li>\n\u003Cli>Kontinuierliche Weiterbildung\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"erfolgsmaximierung-nach-gerätehersteller\">Erfolgsmaximierung nach Gerätehersteller\u003C/h2>\n\u003Ch3 id=\"mediatek-geräte-höchste-erfolgsrate\">MediaTek-Geräte (Höchste Erfolgsrate)\u003C/h3>\n\u003Cul>\n\u003Cli>BootROM-Exploits für MT6735, MT6737, MT6750, MT6753, MT6797\u003C/li>\n\u003Cli>MTKClient für Hardware-Level-Zugang\u003C/li>\n\u003Cli>Erfolgsrate: 80%+ für Geräte 2015-2019\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"samsung-geräte\">Samsung-Geräte\u003C/h3>\n\u003Cul>\n\u003Cli>Ältere Knox-Implementierungen umgehbar\u003C/li>\n\u003Cli>Emergency Dialer Exploits für Android 4.x\u003C/li>\n\u003Cli>Erfolgsrate: 40-70% je nach Knox-Version\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"pixelnexus-geräte\">Pixel/Nexus-Geräte\u003C/h3>\n\u003Cul>\n\u003Cli>Bootloader-Unlocking oft möglich\u003C/li>\n\u003Cli>Fastboot-basierte Recovery-Installation\u003C/li>\n\u003Cli>Erfolgsrate: 60-80% bei freigeschaltetem Bootloader\u003C/li>\n\u003C/ul>\n\u003Ch1 id=\"troubleshooting\">Troubleshooting\u003C/h1>\n\u003Ch2 id=\"problem-adb-erkennt-gerät-nicht\">Problem: ADB erkennt Gerät nicht\u003C/h2>\n\u003Ch3 id=\"lösung-usb-treiber-und-berechtigungen\">Lösung: USB-Treiber und Berechtigungen\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Linux: USB-Berechtigungen prüfen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">lsusb\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#B392F0\"> grep\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -i\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> android\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> chmod\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 666\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /dev/bus/usb/XXX/XXX\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># udev-Regeln erstellen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">echo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"18d1\", MODE=\"0666\", GROUP=\"plugdev\"'\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#B392F0\"> sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> tee\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /etc/udev/rules.d/51-android.rules\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> udevadm\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> control\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --reload-rules\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"windows-treiber-installation\">Windows: Treiber-Installation\u003C/h3>\n\u003Col>\n\u003Cli>Geräte-Manager öffnen\u003C/li>\n\u003Cli>Android-Gerät mit Warnsymbol finden\u003C/li>\n\u003Cli>Treiber manuell installieren (Android USB Driver)\u003C/li>\n\u003C/ol>\n\u003Ch2 id=\"problem-verschlüsselte-android-backups\">Problem: Verschlüsselte Android Backups\u003C/h2>\n\u003Ch3 id=\"lösung-android-backup-extractor\">Lösung: Android Backup Extractor\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># ADB Backup Extractor installieren\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/nelenkov/android-backup-extractor.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> android-backup-extractor\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">gradle\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> build\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Backup entschlüsseln\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">java\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -jar\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> abe.jar\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> unpack\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.ab\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.tar\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> [password]\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"problem-unzureichende-berechtigungen-für-datenextraktion\">Problem: Unzureichende Berechtigungen für Datenextraktion\u003C/h2>\n\u003Ch3 id=\"lösung-alternative-extraktionsmethoden\">Lösung: Alternative Extraktionsmethoden\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># AFLogical OSE für begrenzte Extraktion ohne Root\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># WhatsApp Key/DB Extractor für spezifische Apps\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Backup-basierte Extraktion als Fallback\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Custom Recovery für erweiterten Zugang\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">fastboot\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> flash\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> recovery\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> twrp-device.img\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"problem-aleapp-parsing-fehler\">Problem: ALEAPP Parsing-Fehler\u003C/h2>\n\u003Ch3 id=\"lösung-datenformat-probleme-beheben\">Lösung: Datenformat-Probleme beheben\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Log-Dateien prüfen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">python3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> aleapp.py\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -t\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> dir\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -i\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /path/to/data\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -o\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> output\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --debug\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Spezifische Parser deaktivieren\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Manuelle SQLite-Analyse bei Parser-Fehlern\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sqlite3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> database.db\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \".tables\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sqlite3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> database.db\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \".schema table_name\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch1 id=\"erweiterte-techniken\">Erweiterte Techniken\u003C/h1>\n\u003Ch2 id=\"memory-forensics-mit-lime\">Memory Forensics mit LiME\u003C/h2>\n\u003Ch3 id=\"lime-für-arm-devices-kompilieren\">LiME für ARM-Devices kompilieren\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Cross-Compilation Setup\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> ARCH\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">arm\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> CROSS_COMPILE\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">arm-linux-gnueabi-\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> KERNEL_DIR\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">/path/to/kernel/source\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># LiME Module kompilieren\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/504ensicsLabs/LiME.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> LiME/src\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">make\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Memory Dump erstellen (Root erforderlich)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> push\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> lime.ko\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /data/local/tmp/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -c\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"insmod /data/local/tmp/lime.ko 'path=/sdcard/memory.lime format=lime'\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"volatility-analyse-von-android-memory\">Volatility-Analyse von Android Memory\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Memory Dump analysieren\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">python\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> vol.py\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -f\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> memory.lime\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --profile=Linux\u003C/span>\u003Cspan style=\"color:#F97583\"> <\u003C/span>\u003Cspan style=\"color:#9ECBFF\">profil\u003C/span>\u003Cspan style=\"color:#E1E4E8\">e\u003C/span>\u003Cspan style=\"color:#F97583\">>\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> linux.pslist\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">python\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> vol.py\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -f\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> memory.lime\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --profile=Linux\u003C/span>\u003Cspan style=\"color:#F97583\"> <\u003C/span>\u003Cspan style=\"color:#9ECBFF\">profil\u003C/span>\u003Cspan style=\"color:#E1E4E8\">e\u003C/span>\u003Cspan style=\"color:#F97583\">>\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> linux.bash\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">python\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> vol.py\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -f\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> memory.lime\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --profile=Linux\u003C/span>\u003Cspan style=\"color:#F97583\"> <\u003C/span>\u003Cspan style=\"color:#9ECBFF\">profil\u003C/span>\u003Cspan style=\"color:#E1E4E8\">e\u003C/span>\u003Cspan style=\"color:#F97583\">>\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> linux.netstat\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"frida-basierte-runtime-analyse\">FRIDA-basierte Runtime-Analyse\u003C/h2>\n\u003Ch3 id=\"frida-für-kryptographie-hooks\">FRIDA für Kryptographie-Hooks\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"javascript\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">// crypto_hooks.js - SSL/TLS Traffic abfangen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">Java.\u003C/span>\u003Cspan style=\"color:#B392F0\">perform\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#F97583\">function\u003C/span>\u003Cspan style=\"color:#E1E4E8\">() {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\"> var\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> SSLContext \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> Java.\u003C/span>\u003Cspan style=\"color:#B392F0\">use\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"javax.net.ssl.SSLContext\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">);\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> SSLContext.init.\u003C/span>\u003Cspan style=\"color:#B392F0\">overload\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">'[Ljavax.net.ssl.KeyManager;'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">'[Ljavax.net.ssl.TrustManager;'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">'java.security.SecureRandom'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">).\u003C/span>\u003Cspan style=\"color:#B392F0\">implementation\u003C/span>\u003Cspan style=\"color:#F97583\"> =\u003C/span>\u003Cspan style=\"color:#F97583\"> function\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#FFAB70\">keyManagers\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#FFAB70\">trustManagers\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#FFAB70\">secureRandom\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> console.\u003C/span>\u003Cspan style=\"color:#B392F0\">log\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"[+] SSLContext.init() called\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">);\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\"> this\u003C/span>\u003Cspan style=\"color:#E1E4E8\">.\u003C/span>\u003Cspan style=\"color:#B392F0\">init\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(keyManagers, trustManagers, secureRandom);\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> };\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">});\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"frida-installation-und-verwendung\">FRIDA Installation und Verwendung\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># FRIDA Server auf Android-Gerät installieren\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> push\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> frida-server\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /data/local/tmp/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -c\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"chmod 755 /data/local/tmp/frida-server\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -c\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"/data/local/tmp/frida-server &\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Script ausführen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">frida\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -U\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -l\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> crypto_hooks.js\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> com.target.package\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"custom-recovery-und-fastboot-exploits\">Custom Recovery und Fastboot-Exploits\u003C/h2>\n\u003Ch3 id=\"twrp-installation-für-forensischen-zugang\">TWRP Installation für forensischen Zugang\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Bootloader entsperren (Herstellerabhängig)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">fastboot\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> oem\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> unlock\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Oder\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">fastboot\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> flashing\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> unlock\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># TWRP flashen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">fastboot\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> flash\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> recovery\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> twrp-device.img\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">fastboot\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> boot\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> twrp-device.img\u003C/span>\u003Cspan style=\"color:#6A737D\"> # Temporäre Installation\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># In TWRP: ADB-Zugang mit Root-Berechtigungen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mount\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /system\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mount\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /data\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"partitions-imaging-mit-dd\">Partitions-Imaging mit dd\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Vollständige Partition-Liste\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> cat\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /proc/partitions\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Kritische Partitionen extrahieren\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> dd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> if=/dev/block/bootdevice/by-name/system\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> of=/external_sd/system.img\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> dd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> if=/dev/block/bootdevice/by-name/userdata\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> of=/external_sd/userdata.img\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> dd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> if=/dev/block/bootdevice/by-name/boot\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> of=/external_sd/boot.img\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"sqlite-forensics-und-gelöschte-daten\">SQLite Forensics und gelöschte Daten\u003C/h2>\n\u003Ch3 id=\"erweiterte-sqlite-analyse\">Erweiterte SQLite-Analyse\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Freelist-Analyse für gelöschte Einträge\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sqlite3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> database.db\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"PRAGMA freelist_count;\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sqlite3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> database.db\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"PRAGMA page_size;\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># WAL-Datei Analyse\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sqlite3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> database.db\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"PRAGMA wal_checkpoint;\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">strings\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> database.db-wal\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#B392F0\"> grep\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -i\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"search_term\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Undark für Deleted Record Recovery\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">undark\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> database.db\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --freelist\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --export-csv\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"timeline-rekonstruktion\">Timeline-Rekonstruktion\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Autopsy Timeline-Generierung\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Tools → Generate Timeline\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Analyse von MAC-Times (Modified, Accessed, Created)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Plaso Timeline-Tools\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">log2timeline.py\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> timeline.plaso\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /path/to/android/data/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">psort.py\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -o\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> dynamic\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> timeline.plaso\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"weiterführende-ressourcen\">Weiterführende Ressourcen\u003C/h2>\n\u003Ch3 id=\"dokumentation-und-standards\">Dokumentation und Standards\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https://csrc.nist.gov/pubs/sp/800/101/r1/final\">NIST SP 800-101 Rev. 1 - Mobile Device Forensics Guidelines\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://www.sans.org/cyber-security-courses/advanced-smartphone-mobile-device-forensics/\">SANS FOR585 - Smartphone Forensics\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://github.com/abrignoni/ALEAPP\">ALEAPP GitHub Repository\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://docs.mvt.re/en/latest/\">MVT Documentation\u003C/a>\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"community-und-weiterbildung\">Community und Weiterbildung\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https://sleuthkit.org/autopsy/docs/\">Autopsy User Documentation\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://github.com/impillar/AndroidReferences/blob/master/AndroidTools.md\">Android Forensics References\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://github.com/mesquidar/ForensicsTools\">Digital Forensics Framework Collection\u003C/a>\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"spezialisierte-tools\">Spezialisierte Tools\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https://github.com/bkerler/mtkclient\">MTKClient für MediaTek Exploits\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://github.com/nowsecure/android-forensics\">Android Forensics Framework\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://santoku-linux.com/\">Santoku Linux Mobile Forensics Distribution\u003C/a>\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Cp>\u003Cstrong>Wichtiger Hinweis\u003C/strong>: Diese Anleitung dient ausschließlich für autorisierte forensische Untersuchungen. Stellen Sie sicher, dass Sie über entsprechende rechtliche Befugnisse verfügen, bevor Sie diese Techniken anwenden. Bei Zweifeln konsultieren Sie Rechtsberatung.\u003C/p>",{"headings":392,"localImagePaths":614,"remoteImagePaths":615,"frontmatter":616,"imagePaths":621},[393,394,397,400,401,404,407,409,412,415,418,421,424,427,430,433,434,437,440,443,446,449,452,455,458,461,462,465,468,471,474,477,480,483,486,489,492,495,498,501,502,505,508,511,514,517,520,523,526,529,532,535,536,539,542,545,548,551,554,557,560,563,566,569,572,575,578,581,584,587,590,593,596,599,602,605,608,611],{"depth":43,"slug":44,"text":45},{"depth":47,"slug":395,"text":396},"kernkomponenten-des-open-source-forensik-stacks","Kernkomponenten des Open-Source Forensik-Stacks",{"depth":47,"slug":398,"text":399},"erfolgsraten-nach-gerätealter","Erfolgsraten nach Gerätealter",{"depth":43,"slug":111,"text":112},{"depth":47,"slug":402,"text":403},"sift-workstation-setup","SIFT Workstation Setup",{"depth":51,"slug":405,"text":406},"systemanforderungen","Systemanforderungen",{"depth":51,"slug":408,"text":112},"installation-1",{"depth":47,"slug":410,"text":411},"autopsy-installation","Autopsy Installation",{"depth":51,"slug":413,"text":414},"windows-installation","Windows Installation",{"depth":51,"slug":416,"text":417},"linux-installation","Linux Installation",{"depth":47,"slug":419,"text":420},"essential-tools-installation","Essential Tools Installation",{"depth":51,"slug":422,"text":423},"android-debug-bridge-adb","Android Debug Bridge (ADB)",{"depth":51,"slug":425,"text":426},"aleapp-installation","ALEAPP Installation",{"depth":51,"slug":428,"text":429},"mobile-verification-toolkit-mvt","Mobile Verification Toolkit (MVT)",{"depth":51,"slug":431,"text":432},"andriller-installation","Andriller Installation",{"depth":43,"slug":120,"text":121},{"depth":47,"slug":435,"text":436},"adb-setup-und-gerätevorbereitung","ADB Setup und Gerätevorbereitung",{"depth":51,"slug":438,"text":439},"usb-debugging-aktivieren","USB-Debugging aktivieren",{"depth":51,"slug":441,"text":442},"adb-verbindung-testen","ADB Verbindung testen",{"depth":47,"slug":444,"text":445},"autopsy-projektkonfiguration","Autopsy Projektkonfiguration",{"depth":51,"slug":447,"text":448},"case-setup","Case-Setup",{"depth":51,"slug":450,"text":451},"android-analyzer-module-aktivieren","Android Analyzer Module aktivieren",{"depth":51,"slug":453,"text":454},"hash-algorithmen-konfigurieren","Hash-Algorithmen konfigurieren",{"depth":47,"slug":456,"text":457},"mvt-konfiguration","MVT Konfiguration",{"depth":51,"slug":459,"text":460},"konfigurationsdatei-erstellen","Konfigurationsdatei erstellen",{"depth":43,"slug":48,"text":49},{"depth":47,"slug":463,"text":464},"fall-1-logische-datenextraktion-mit-adb","Fall 1: Logische Datenextraktion mit ADB",{"depth":51,"slug":466,"text":467},"geräteinformationen-sammeln","Geräteinformationen sammeln",{"depth":51,"slug":469,"text":470},"datenbank-extraktion","Datenbank-Extraktion",{"depth":51,"slug":472,"text":473},"whatsapp-datenextraktion","WhatsApp Datenextraktion",{"depth":47,"slug":475,"text":476},"fall-2-android-backup-analyse","Fall 2: Android Backup-Analyse",{"depth":51,"slug":478,"text":479},"vollständiges-backup-erstellen","Vollständiges Backup erstellen",{"depth":51,"slug":481,"text":482},"backup-mit-aleapp-analysieren","Backup mit ALEAPP analysieren",{"depth":47,"slug":484,"text":485},"fall-3-mvt-kompromittierungsanalyse","Fall 3: MVT Kompromittierungsanalyse",{"depth":51,"slug":487,"text":488},"live-geräteanalyse","Live-Geräteanalyse",{"depth":51,"slug":490,"text":491},"ioc-suche-mit-pegasus-indikatoren","IOC-Suche mit Pegasus-Indikatoren",{"depth":47,"slug":493,"text":494},"fall-4-physische-extraktion-root-erforderlich","Fall 4: Physische Extraktion (Root erforderlich)",{"depth":51,"slug":496,"text":497},"device-rooting---mediatek-geräte","Device Rooting - MediaTek Geräte",{"depth":51,"slug":499,"text":500},"vollständiges-memory-dump","Vollständiges Memory Dump",{"depth":43,"slug":64,"text":65},{"depth":47,"slug":503,"text":504},"rechtliche-compliance","Rechtliche Compliance",{"depth":51,"slug":506,"text":507},"dokumentation-und-chain-of-custody","Dokumentation und Chain of Custody",{"depth":51,"slug":509,"text":510},"familiengeräte-und-nachlässe","Familiengeräte und Nachlässe",{"depth":47,"slug":512,"text":513},"technische-best-practices","Technische Best Practices",{"depth":51,"slug":515,"text":516},"hash-integrität-sicherstellen","Hash-Integrität sicherstellen",{"depth":51,"slug":518,"text":519},"sichere-arbeitsumgebung","Sichere Arbeitsumgebung",{"depth":51,"slug":521,"text":522},"qualitätssicherung","Qualitätssicherung",{"depth":47,"slug":524,"text":525},"erfolgsmaximierung-nach-gerätehersteller","Erfolgsmaximierung nach Gerätehersteller",{"depth":51,"slug":527,"text":528},"mediatek-geräte-höchste-erfolgsrate","MediaTek-Geräte (Höchste Erfolgsrate)",{"depth":51,"slug":530,"text":531},"samsung-geräte","Samsung-Geräte",{"depth":51,"slug":533,"text":534},"pixelnexus-geräte","Pixel/Nexus-Geräte",{"depth":43,"slug":140,"text":141},{"depth":47,"slug":537,"text":538},"problem-adb-erkennt-gerät-nicht","Problem: ADB erkennt Gerät nicht",{"depth":51,"slug":540,"text":541},"lösung-usb-treiber-und-berechtigungen","Lösung: USB-Treiber und Berechtigungen",{"depth":51,"slug":543,"text":544},"windows-treiber-installation","Windows: Treiber-Installation",{"depth":47,"slug":546,"text":547},"problem-verschlüsselte-android-backups","Problem: Verschlüsselte Android Backups",{"depth":51,"slug":549,"text":550},"lösung-android-backup-extractor","Lösung: Android Backup Extractor",{"depth":47,"slug":552,"text":553},"problem-unzureichende-berechtigungen-für-datenextraktion","Problem: Unzureichende Berechtigungen für Datenextraktion",{"depth":51,"slug":555,"text":556},"lösung-alternative-extraktionsmethoden","Lösung: Alternative Extraktionsmethoden",{"depth":47,"slug":558,"text":559},"problem-aleapp-parsing-fehler","Problem: ALEAPP Parsing-Fehler",{"depth":51,"slug":561,"text":562},"lösung-datenformat-probleme-beheben","Lösung: Datenformat-Probleme beheben",{"depth":43,"slug":564,"text":565},"erweiterte-techniken","Erweiterte Techniken",{"depth":47,"slug":567,"text":568},"memory-forensics-mit-lime","Memory Forensics mit LiME",{"depth":51,"slug":570,"text":571},"lime-für-arm-devices-kompilieren","LiME für ARM-Devices kompilieren",{"depth":51,"slug":573,"text":574},"volatility-analyse-von-android-memory","Volatility-Analyse von Android Memory",{"depth":47,"slug":576,"text":577},"frida-basierte-runtime-analyse","FRIDA-basierte Runtime-Analyse",{"depth":51,"slug":579,"text":580},"frida-für-kryptographie-hooks","FRIDA für Kryptographie-Hooks",{"depth":51,"slug":582,"text":583},"frida-installation-und-verwendung","FRIDA Installation und Verwendung",{"depth":47,"slug":585,"text":586},"custom-recovery-und-fastboot-exploits","Custom Recovery und Fastboot-Exploits",{"depth":51,"slug":588,"text":589},"twrp-installation-für-forensischen-zugang","TWRP Installation für forensischen Zugang",{"depth":51,"slug":591,"text":592},"partitions-imaging-mit-dd","Partitions-Imaging mit dd",{"depth":47,"slug":594,"text":595},"sqlite-forensics-und-gelöschte-daten","SQLite Forensics und gelöschte Daten",{"depth":51,"slug":597,"text":598},"erweiterte-sqlite-analyse","Erweiterte SQLite-Analyse",{"depth":51,"slug":600,"text":601},"timeline-rekonstruktion","Timeline-Rekonstruktion",{"depth":47,"slug":603,"text":604},"weiterführende-ressourcen","Weiterführende Ressourcen",{"depth":51,"slug":606,"text":607},"dokumentation-und-standards","Dokumentation und Standards",{"depth":51,"slug":609,"text":610},"community-und-weiterbildung","Community und Weiterbildung",{"depth":51,"slug":612,"text":613},"spezialisierte-tools","Spezialisierte Tools",[],[],{"title":374,"tool_name":375,"description":376,"last_updated":617,"author":378,"difficulty":308,"categories":618,"tags":619,"sections":620,"review_status":34},["Date","2025-07-21T00:00:00.000Z"],[380],[382,383,384],{"overview":32,"installation":32,"configuration":32,"usage_examples":32,"best_practices":32,"troubleshooting":32,"advanced_topics":32},[],"android-logical-imaging.md"] \ No newline at end of file +[["Map",1,2,7,8],"meta::meta",["Map",3,4,5,6],"astro-version","5.12.3","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"server\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":true,\"port\":4321,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\",\"entrypoint\":\"astro/assets/endpoint/node\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false,\"liveContentCollections\":false,\"csp\":false,\"rawEnvValues\":false},\"legacy\":{\"collections\":false},\"session\":{\"driver\":\"fs-lite\",\"options\":{\"base\":\"/var/home/user01/Projekte/cc24-hub/node_modules/.astro/sessions\"}}}","knowledgebase",["Map",9,10,100,101,174,175,230,231,478,479,542,543],"misp",{"id":9,"data":11,"body":35,"filePath":36,"digest":37,"rendered":38,"legacyId":99},{"title":12,"tool_name":13,"description":14,"last_updated":15,"author":16,"difficulty":17,"categories":18,"tags":24,"sections":31,"review_status":34},"MISP - Plattform für Threat Intelligence Sharing","MISP","Das Rückgrat des modernen Threat-Intelligence-Sharings mit über 40.000 aktiven Instanzen weltweit.",["Date","2025-07-20T00:00:00.000Z"],"Claude 4 Sonnet","intermediate",[19,20,21,22,23],"incident-response","static-investigations","malware-analysis","network-forensics","cloud-forensics",[25,26,27,28,29,30],"web-based","threat-intelligence","api","correlation","ioc-sharing","automation",{"overview":32,"installation":32,"configuration":32,"usage_examples":32,"best_practices":32,"troubleshooting":32,"advanced_topics":33},true,false,"published","> **⚠️ Hinweis**: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\n\n\n# Übersicht\n\n**MISP (Malware Information Sharing Platform & Threat Sharing)** ist eine freie Open-Source-Plattform zur strukturierten Erfassung, Speicherung, Analyse und gemeinsamen Nutzung von Cyber-Bedrohungsdaten. Mit über 40.000 Instanzen weltweit ist MISP der De-facto-Standard für den Austausch von Indicators of Compromise (IoCs) und Threat Intelligence zwischen CERTs, SOCs, Strafverfolgungsbehörden und anderen sicherheitsrelevanten Organisationen.\n\nDie föderierte Architektur ermöglicht einen kontrollierten, dezentralen Austausch von Informationen über vertrauenswürdige Partner hinweg. Durch Taxonomien, Tags und integrierte APIs ist eine automatische Anreicherung, Korrelation und Verarbeitung von Informationen in SIEMs, Firewalls oder Endpoint-Lösungen möglich.\n\n## Installation\n\n### Voraussetzungen\n\n- **Server-Betriebssystem:** Linux (empfohlen: Debian/Ubuntu)\n- **Abhängigkeiten:** MariaDB/MySQL, PHP, Apache/Nginx, Redis\n- **Ressourcen:** Mindestens 4 GB RAM, SSD empfohlen\n\n### Installationsschritte\n\n```bash\n# Beispiel für Debian/Ubuntu:\nsudo apt update && sudo apt install -y curl gnupg git python3 python3-pip redis-server mariadb-server apache2 php libapache2-mod-php\n\n# MISP klonen\ngit clone https://github.com/MISP/MISP.git /var/www/MISP\n\n# Setup-Skript nutzen\ncd /var/www/MISP && bash INSTALL/INSTALL.debian.sh\n````\n\nWeitere Details: [Offizielle Installationsanleitung](https://misp.github.io/MISP/INSTALL.debian/)\n\n## Konfiguration\n\n### Webserver\n\n* HTTPS aktivieren (Let's Encrypt oder Reverse Proxy)\n* PHP-Konfiguration anpassen (`upload_max_filesize`, `memory_limit`, `post_max_size`)\n\n### Benutzerrollen\n\n* Administrator, Org-Admin, Analyst etc.\n* Zugriffsbeschränkungen nach Organisation/Feed definierbar\n\n### Feeds und Galaxies\n\n* Aktivierung von Feeds (z. B. CIRCL, Abuse.ch, OpenCTI)\n* Nutzung von Galaxies zur Klassifizierung (APT-Gruppen, Malware-Familien)\n\n## Verwendungsbeispiele\n\n### Beispiel 1: Import von IoCs aus externem Feed\n\n1. Feed aktivieren unter **Administration → List Feeds**\n2. Feed synchronisieren\n3. Ereignisse durchsuchen, analysieren, ggf. mit eigenen Daten korrelieren\n\n### Beispiel 2: Automatisierte Anbindung an SIEM\n\n* REST-API-Token erstellen\n* API-Calls zur Abfrage neuer Events (z. B. mit Python, Logstash oder MISP Workbench)\n* Integration in Security-Systeme über JSON/STIX export\n\n## Best Practices\n\n* Regelmäßige Backups der Datenbank\n* Taxonomien konsistent verwenden\n* Nutzung der Sighting-Funktion zur Validierung von IoCs\n* Vertrauensstufen (TLP, PAP) korrekt setzen\n* Nicht nur konsumieren – auch teilen!\n\n## Troubleshooting\n\n### Problem: MISP-Feeds laden nicht\n\n**Lösung:**\n\n* Internetverbindung prüfen\n* Cronjobs aktiv?\n* Logs prüfen: `/var/www/MISP/app/tmp/logs/error.log`\n\n### Problem: API gibt 403 zurück\n\n**Lösung:**\n\n* Ist der API-Key korrekt und aktiv?\n* Rechte des Benutzers überprüfen\n* IP-Filter im MISP-Backend beachten\n\n### Problem: Hohe Datenbanklast\n\n**Lösung:**\n\n* Indizes optimieren\n* Redis aktivieren\n* Alte Events regelmäßig archivieren oder löschen\n\n## Weiterführende Themen\n\n* STIX2-Import/Export\n* Erweiterungen mit MISP Modules (z. B. für Virustotal, YARA)\n* Föderierte Netzwerke und Community-Portale\n* Integration mit OpenCTI oder TheHive\n\n---\n\n**Links:**\n\n* 🌐 [Offizielle Projektseite](https://misp-project.org/)\n* 📦 [CC24-MISP-Instanz](https://misp.cc24.dev)\n* 📊 [Status-Monitoring](https://status.mikoshi.de/api/badge/34/status)\n\nLizenz: **AGPL-3.0**","src/content/knowledgebase/misp.md","35930fa919a46964",{"html":39,"metadata":40},"\u003Cblockquote>\n\u003Cp>\u003Cstrong>⚠️ Hinweis\u003C/strong>: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\u003C/p>\n\u003C/blockquote>\n\u003Ch1 id=\"übersicht\">Übersicht\u003C/h1>\n\u003Cp>\u003Cstrong>MISP (Malware Information Sharing Platform & Threat Sharing)\u003C/strong> ist eine freie Open-Source-Plattform zur strukturierten Erfassung, Speicherung, Analyse und gemeinsamen Nutzung von Cyber-Bedrohungsdaten. Mit über 40.000 Instanzen weltweit ist MISP der De-facto-Standard für den Austausch von Indicators of Compromise (IoCs) und Threat Intelligence zwischen CERTs, SOCs, Strafverfolgungsbehörden und anderen sicherheitsrelevanten Organisationen.\u003C/p>\n\u003Cp>Die föderierte Architektur ermöglicht einen kontrollierten, dezentralen Austausch von Informationen über vertrauenswürdige Partner hinweg. Durch Taxonomien, Tags und integrierte APIs ist eine automatische Anreicherung, Korrelation und Verarbeitung von Informationen in SIEMs, Firewalls oder Endpoint-Lösungen möglich.\u003C/p>\n\u003Ch2 id=\"installation\">Installation\u003C/h2>\n\u003Ch3 id=\"voraussetzungen\">Voraussetzungen\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Server-Betriebssystem:\u003C/strong> Linux (empfohlen: Debian/Ubuntu)\u003C/li>\n\u003Cli>\u003Cstrong>Abhängigkeiten:\u003C/strong> MariaDB/MySQL, PHP, Apache/Nginx, Redis\u003C/li>\n\u003Cli>\u003Cstrong>Ressourcen:\u003C/strong> Mindestens 4 GB RAM, SSD empfohlen\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"installationsschritte\">Installationsschritte\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Beispiel für Debian/Ubuntu:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> update\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> && \u003C/span>\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -y\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> curl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> gnupg\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> python3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> python3-pip\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> redis-server\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mariadb-server\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apache2\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> libapache2-mod-php\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># MISP klonen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/MISP/MISP.git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /var/www/MISP\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Setup-Skript nutzen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /var/www/MISP\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> && \u003C/span>\u003Cspan style=\"color:#B392F0\">bash\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> INSTALL/INSTALL.debian.sh\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Weitere Details: \u003Ca href=\"https://misp.github.io/MISP/INSTALL.debian/\">Offizielle Installationsanleitung\u003C/a>\u003C/p>\n\u003Ch2 id=\"konfiguration\">Konfiguration\u003C/h2>\n\u003Ch3 id=\"webserver\">Webserver\u003C/h3>\n\u003Cul>\n\u003Cli>HTTPS aktivieren (Let’s Encrypt oder Reverse Proxy)\u003C/li>\n\u003Cli>PHP-Konfiguration anpassen (\u003Ccode>upload_max_filesize\u003C/code>, \u003Ccode>memory_limit\u003C/code>, \u003Ccode>post_max_size\u003C/code>)\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"benutzerrollen\">Benutzerrollen\u003C/h3>\n\u003Cul>\n\u003Cli>Administrator, Org-Admin, Analyst etc.\u003C/li>\n\u003Cli>Zugriffsbeschränkungen nach Organisation/Feed definierbar\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"feeds-und-galaxies\">Feeds und Galaxies\u003C/h3>\n\u003Cul>\n\u003Cli>Aktivierung von Feeds (z. B. CIRCL, Abuse.ch, OpenCTI)\u003C/li>\n\u003Cli>Nutzung von Galaxies zur Klassifizierung (APT-Gruppen, Malware-Familien)\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"verwendungsbeispiele\">Verwendungsbeispiele\u003C/h2>\n\u003Ch3 id=\"beispiel-1-import-von-iocs-aus-externem-feed\">Beispiel 1: Import von IoCs aus externem Feed\u003C/h3>\n\u003Col>\n\u003Cli>Feed aktivieren unter \u003Cstrong>Administration → List Feeds\u003C/strong>\u003C/li>\n\u003Cli>Feed synchronisieren\u003C/li>\n\u003Cli>Ereignisse durchsuchen, analysieren, ggf. mit eigenen Daten korrelieren\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"beispiel-2-automatisierte-anbindung-an-siem\">Beispiel 2: Automatisierte Anbindung an SIEM\u003C/h3>\n\u003Cul>\n\u003Cli>REST-API-Token erstellen\u003C/li>\n\u003Cli>API-Calls zur Abfrage neuer Events (z. B. mit Python, Logstash oder MISP Workbench)\u003C/li>\n\u003Cli>Integration in Security-Systeme über JSON/STIX export\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"best-practices\">Best Practices\u003C/h2>\n\u003Cul>\n\u003Cli>Regelmäßige Backups der Datenbank\u003C/li>\n\u003Cli>Taxonomien konsistent verwenden\u003C/li>\n\u003Cli>Nutzung der Sighting-Funktion zur Validierung von IoCs\u003C/li>\n\u003Cli>Vertrauensstufen (TLP, PAP) korrekt setzen\u003C/li>\n\u003Cli>Nicht nur konsumieren – auch teilen!\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"troubleshooting\">Troubleshooting\u003C/h2>\n\u003Ch3 id=\"problem-misp-feeds-laden-nicht\">Problem: MISP-Feeds laden nicht\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Internetverbindung prüfen\u003C/li>\n\u003Cli>Cronjobs aktiv?\u003C/li>\n\u003Cli>Logs prüfen: \u003Ccode>/var/www/MISP/app/tmp/logs/error.log\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"problem-api-gibt-403-zurück\">Problem: API gibt 403 zurück\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Ist der API-Key korrekt und aktiv?\u003C/li>\n\u003Cli>Rechte des Benutzers überprüfen\u003C/li>\n\u003Cli>IP-Filter im MISP-Backend beachten\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"problem-hohe-datenbanklast\">Problem: Hohe Datenbanklast\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Indizes optimieren\u003C/li>\n\u003Cli>Redis aktivieren\u003C/li>\n\u003Cli>Alte Events regelmäßig archivieren oder löschen\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"weiterführende-themen\">Weiterführende Themen\u003C/h2>\n\u003Cul>\n\u003Cli>STIX2-Import/Export\u003C/li>\n\u003Cli>Erweiterungen mit MISP Modules (z. B. für Virustotal, YARA)\u003C/li>\n\u003Cli>Föderierte Netzwerke und Community-Portale\u003C/li>\n\u003Cli>Integration mit OpenCTI oder TheHive\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Cp>\u003Cstrong>Links:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>🌐 \u003Ca href=\"https://misp-project.org/\">Offizielle Projektseite\u003C/a>\u003C/li>\n\u003Cli>📦 \u003Ca href=\"https://misp.cc24.dev\">CC24-MISP-Instanz\u003C/a>\u003C/li>\n\u003Cli>📊 \u003Ca href=\"https://status.mikoshi.de/api/badge/34/status\">Status-Monitoring\u003C/a>\u003C/li>\n\u003C/ul>\n\u003Cp>Lizenz: \u003Cstrong>AGPL-3.0\u003C/strong>\u003C/p>",{"headings":41,"localImagePaths":96,"remoteImagePaths":97,"frontmatter":11,"imagePaths":98},[42,46,50,54,57,60,63,66,69,72,75,78,81,84,87,90,93],{"depth":43,"slug":44,"text":45},1,"übersicht","Übersicht",{"depth":47,"slug":48,"text":49},2,"installation","Installation",{"depth":51,"slug":52,"text":53},3,"voraussetzungen","Voraussetzungen",{"depth":51,"slug":55,"text":56},"installationsschritte","Installationsschritte",{"depth":47,"slug":58,"text":59},"konfiguration","Konfiguration",{"depth":51,"slug":61,"text":62},"webserver","Webserver",{"depth":51,"slug":64,"text":65},"benutzerrollen","Benutzerrollen",{"depth":51,"slug":67,"text":68},"feeds-und-galaxies","Feeds und Galaxies",{"depth":47,"slug":70,"text":71},"verwendungsbeispiele","Verwendungsbeispiele",{"depth":51,"slug":73,"text":74},"beispiel-1-import-von-iocs-aus-externem-feed","Beispiel 1: Import von IoCs aus externem Feed",{"depth":51,"slug":76,"text":77},"beispiel-2-automatisierte-anbindung-an-siem","Beispiel 2: Automatisierte Anbindung an SIEM",{"depth":47,"slug":79,"text":80},"best-practices","Best Practices",{"depth":47,"slug":82,"text":83},"troubleshooting","Troubleshooting",{"depth":51,"slug":85,"text":86},"problem-misp-feeds-laden-nicht","Problem: MISP-Feeds laden nicht",{"depth":51,"slug":88,"text":89},"problem-api-gibt-403-zurück","Problem: API gibt 403 zurück",{"depth":51,"slug":91,"text":92},"problem-hohe-datenbanklast","Problem: Hohe Datenbanklast",{"depth":47,"slug":94,"text":95},"weiterführende-themen","Weiterführende Themen",[],[],[],"misp.md","kali-linux",{"id":100,"data":102,"body":117,"filePath":118,"digest":119,"rendered":120,"legacyId":173},{"title":103,"tool_name":104,"description":105,"last_updated":106,"author":16,"difficulty":17,"categories":107,"tags":110,"sections":116,"review_status":34},"Kali Linux - Die Hacker-Distribution für Forensik & Penetration Testing","Kali Linux","Leitfaden zur Installation, Nutzung und Best Practices für Kali Linux – die All-in-One-Plattform für Security-Profis.",["Date","2025-07-20T00:00:00.000Z"],[19,108,109],"forensics","penetration-testing",[111,112,109,113,114,115],"live-boot","tool-collection","forensics-suite","virtualization","arm-support",{"overview":32,"installation":32,"configuration":32,"usage_examples":32,"best_practices":32,"troubleshooting":32,"advanced_topics":32},"> **⚠️ Hinweis**: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\n\n\n# Übersicht\n\nKali Linux ist eine auf Debian basierende Linux-Distribution, die speziell für Penetration Testing, digitale Forensik, Reverse Engineering und Incident Response entwickelt wurde. Mit über 600 vorinstallierten Tools ist sie ein unverzichtbares Werkzeug für Security-Experten, Ermittler und forensische Analysten. Die Live-Boot-Funktion erlaubt es, Systeme ohne Spuren zu hinterlassen zu analysieren – ideal für forensische Untersuchungen.\n\n## Installation\n\n### Option 1: Live-System (USB/DVD)\n\n1. ISO-Image von [kali.org](https://www.kali.org/get-kali/) herunterladen.\n2. Mit **Rufus** oder **balenaEtcher** auf einen USB-Stick schreiben.\n3. Vom USB-Stick booten (ggf. Boot-Reihenfolge im BIOS anpassen).\n4. Kali kann direkt ohne Installation im Live-Modus verwendet werden.\n\n### Option 2: Installation auf Festplatte\n\n1. ISO-Image booten und **Graphical Install** wählen.\n2. Schritt-für-Schritt durch den Installationsassistenten navigieren:\n - Sprache, Zeitzone und Tastaturlayout auswählen\n - Partitionierung konfigurieren (automatisch oder manuell)\n - Benutzerkonten erstellen\n3. Nach Installation Neustart durchführen.\n\n### Option 3: Virtuelle Maschine (VM)\n\n- Offizielle VM-Images für VirtualBox und VMware von der [Kali-Website](https://www.kali.org/get-kali/#kali-virtual-machines)\n- Importieren, ggf. Netzwerkbrücke und Shared Folders aktivieren\n\n## Konfiguration\n\n### Netzwerkeinstellungen\n\n- Konfiguration über `nmtui` oder `/etc/network/interfaces`\n- VPN und Proxy-Integration über GUI oder Terminal\n\n### Updates & Paketquellen\n\n```bash\nsudo apt update && sudo apt full-upgrade\n````\n\n> Hinweis: `kali-rolling` ist die Standard-Distribution für kontinuierliche Updates.\n\n### Sprache & Lokalisierung\n\n```bash\nsudo dpkg-reconfigure locales\nsudo dpkg-reconfigure keyboard-configuration\n```\n\n## Verwendungsbeispiele\n\n### 1. Netzwerkscan mit Nmap\n\n```bash\nnmap -sS -T4 -A 192.168.1.0/24\n```\n\n### 2. Passwort-Cracking mit John the Ripper\n\n```bash\njohn --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt\n```\n\n### 3. Forensik mit Autopsy\n\n```bash\nautopsy &\n```\n\n### 4. Android-Analyse mit MobSF (in Docker)\n\n```bash\ndocker pull opensecurity/mobile-security-framework-mobsf\ndocker run -it -p 8000:8000 mobsf\n```\n\n## Best Practices\n\n* Nutze immer **aktuelle Snapshots** oder VM-Clones vor gefährlichen Tests\n* Verwende separate Netzwerke (z. B. Host-only oder NAT) für Tests\n* Deaktiviere automatisches WLAN bei forensischen Analysen\n* Prüfe und aktualisiere regelmäßig Toolsets (`apt`, `git`, `pip`)\n* Halte deine ISO-Images versioniert für forensische Reproduzierbarkeit\n\n## Troubleshooting\n\n### Problem: Keine Internetverbindung nach Installation\n\n**Lösung:** Netzwerkadapter prüfen, ggf. mit `ifconfig` oder `ip a` überprüfen, DHCP aktivieren.\n\n### Problem: Tools fehlen nach Update\n\n**Lösung:** Tool-Gruppen wie `kali-linux-default` manuell nachinstallieren:\n\n```bash\nsudo apt install kali-linux-default\n```\n\n### Problem: „Permission Denied“ bei Tools\n\n**Lösung:** Root-Rechte nutzen oder mit `sudo` ausführen.\n\n## Weiterführende Themen\n\n* **Kustomisierung von Kali ISOs** mit `live-build`\n* **NetHunter**: Kali für mobile Geräte (Android)\n* **Kali Purple**: Defensive Security Suite\n* Integration mit **Cloud-Infrastrukturen** via WSL oder Azure\n\n---\n\n**Links & Ressourcen:**\n\n* Offizielle Website: [https://kali.org](https://kali.org/)\n* Dokumentation: [https://docs.kali.org/](https://docs.kali.org/)\n* GitLab Repo: [https://gitlab.com/kalilinux](https://gitlab.com/kalilinux)\n* Discord-Community: [https://discord.com/invite/kali-linux](https://discord.com/invite/kali-linux)","src/content/knowledgebase/kali-linux.md","09243ebc79d75dbc",{"html":121,"metadata":122},"\u003Cblockquote>\n\u003Cp>\u003Cstrong>⚠️ Hinweis\u003C/strong>: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\u003C/p>\n\u003C/blockquote>\n\u003Ch1 id=\"übersicht\">Übersicht\u003C/h1>\n\u003Cp>Kali Linux ist eine auf Debian basierende Linux-Distribution, die speziell für Penetration Testing, digitale Forensik, Reverse Engineering und Incident Response entwickelt wurde. Mit über 600 vorinstallierten Tools ist sie ein unverzichtbares Werkzeug für Security-Experten, Ermittler und forensische Analysten. Die Live-Boot-Funktion erlaubt es, Systeme ohne Spuren zu hinterlassen zu analysieren – ideal für forensische Untersuchungen.\u003C/p>\n\u003Ch2 id=\"installation\">Installation\u003C/h2>\n\u003Ch3 id=\"option-1-live-system-usbdvd\">Option 1: Live-System (USB/DVD)\u003C/h3>\n\u003Col>\n\u003Cli>ISO-Image von \u003Ca href=\"https://www.kali.org/get-kali/\">kali.org\u003C/a> herunterladen.\u003C/li>\n\u003Cli>Mit \u003Cstrong>Rufus\u003C/strong> oder \u003Cstrong>balenaEtcher\u003C/strong> auf einen USB-Stick schreiben.\u003C/li>\n\u003Cli>Vom USB-Stick booten (ggf. Boot-Reihenfolge im BIOS anpassen).\u003C/li>\n\u003Cli>Kali kann direkt ohne Installation im Live-Modus verwendet werden.\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"option-2-installation-auf-festplatte\">Option 2: Installation auf Festplatte\u003C/h3>\n\u003Col>\n\u003Cli>ISO-Image booten und \u003Cstrong>Graphical Install\u003C/strong> wählen.\u003C/li>\n\u003Cli>Schritt-für-Schritt durch den Installationsassistenten navigieren:\n\u003Cul>\n\u003Cli>Sprache, Zeitzone und Tastaturlayout auswählen\u003C/li>\n\u003Cli>Partitionierung konfigurieren (automatisch oder manuell)\u003C/li>\n\u003Cli>Benutzerkonten erstellen\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>Nach Installation Neustart durchführen.\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"option-3-virtuelle-maschine-vm\">Option 3: Virtuelle Maschine (VM)\u003C/h3>\n\u003Cul>\n\u003Cli>Offizielle VM-Images für VirtualBox und VMware von der \u003Ca href=\"https://www.kali.org/get-kali/#kali-virtual-machines\">Kali-Website\u003C/a>\u003C/li>\n\u003Cli>Importieren, ggf. Netzwerkbrücke und Shared Folders aktivieren\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"konfiguration\">Konfiguration\u003C/h2>\n\u003Ch3 id=\"netzwerkeinstellungen\">Netzwerkeinstellungen\u003C/h3>\n\u003Cul>\n\u003Cli>Konfiguration über \u003Ccode>nmtui\u003C/code> oder \u003Ccode>/etc/network/interfaces\u003C/code>\u003C/li>\n\u003Cli>VPN und Proxy-Integration über GUI oder Terminal\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"updates--paketquellen\">Updates & Paketquellen\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> update\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> && \u003C/span>\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> full-upgrade\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cblockquote>\n\u003Cp>Hinweis: \u003Ccode>kali-rolling\u003C/code> ist die Standard-Distribution für kontinuierliche Updates.\u003C/p>\n\u003C/blockquote>\n\u003Ch3 id=\"sprache--lokalisierung\">Sprache & Lokalisierung\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> dpkg-reconfigure\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> locales\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> dpkg-reconfigure\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> keyboard-configuration\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"verwendungsbeispiele\">Verwendungsbeispiele\u003C/h2>\n\u003Ch3 id=\"1-netzwerkscan-mit-nmap\">1. Netzwerkscan mit Nmap\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">nmap\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -sS\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -T4\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -A\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 192.168.1.0/24\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"2-passwort-cracking-mit-john-the-ripper\">2. Passwort-Cracking mit John the Ripper\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">john\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --wordlist=/usr/share/wordlists/rockyou.txt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> hashes.txt\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"3-forensik-mit-autopsy\">3. Forensik mit Autopsy\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">autopsy\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> &\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"4-android-analyse-mit-mobsf-in-docker\">4. Android-Analyse mit MobSF (in Docker)\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">docker\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pull\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> opensecurity/mobile-security-framework-mobsf\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">docker\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> run\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -it\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -p\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 8000:8000\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mobsf\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"best-practices\">Best Practices\u003C/h2>\n\u003Cul>\n\u003Cli>Nutze immer \u003Cstrong>aktuelle Snapshots\u003C/strong> oder VM-Clones vor gefährlichen Tests\u003C/li>\n\u003Cli>Verwende separate Netzwerke (z. B. Host-only oder NAT) für Tests\u003C/li>\n\u003Cli>Deaktiviere automatisches WLAN bei forensischen Analysen\u003C/li>\n\u003Cli>Prüfe und aktualisiere regelmäßig Toolsets (\u003Ccode>apt\u003C/code>, \u003Ccode>git\u003C/code>, \u003Ccode>pip\u003C/code>)\u003C/li>\n\u003Cli>Halte deine ISO-Images versioniert für forensische Reproduzierbarkeit\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"troubleshooting\">Troubleshooting\u003C/h2>\n\u003Ch3 id=\"problem-keine-internetverbindung-nach-installation\">Problem: Keine Internetverbindung nach Installation\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong> Netzwerkadapter prüfen, ggf. mit \u003Ccode>ifconfig\u003C/code> oder \u003Ccode>ip a\u003C/code> überprüfen, DHCP aktivieren.\u003C/p>\n\u003Ch3 id=\"problem-tools-fehlen-nach-update\">Problem: Tools fehlen nach Update\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong> Tool-Gruppen wie \u003Ccode>kali-linux-default\u003C/code> manuell nachinstallieren:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> kali-linux-default\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"problem-permission-denied-bei-tools\">Problem: „Permission Denied“ bei Tools\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong> Root-Rechte nutzen oder mit \u003Ccode>sudo\u003C/code> ausführen.\u003C/p>\n\u003Ch2 id=\"weiterführende-themen\">Weiterführende Themen\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Kustomisierung von Kali ISOs\u003C/strong> mit \u003Ccode>live-build\u003C/code>\u003C/li>\n\u003Cli>\u003Cstrong>NetHunter\u003C/strong>: Kali für mobile Geräte (Android)\u003C/li>\n\u003Cli>\u003Cstrong>Kali Purple\u003C/strong>: Defensive Security Suite\u003C/li>\n\u003Cli>Integration mit \u003Cstrong>Cloud-Infrastrukturen\u003C/strong> via WSL oder Azure\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Cp>\u003Cstrong>Links & Ressourcen:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Offizielle Website: \u003Ca href=\"https://kali.org/\">https://kali.org\u003C/a>\u003C/li>\n\u003Cli>Dokumentation: \u003Ca href=\"https://docs.kali.org/\">https://docs.kali.org/\u003C/a>\u003C/li>\n\u003Cli>GitLab Repo: \u003Ca href=\"https://gitlab.com/kalilinux\">https://gitlab.com/kalilinux\u003C/a>\u003C/li>\n\u003Cli>Discord-Community: \u003Ca href=\"https://discord.com/invite/kali-linux\">https://discord.com/invite/kali-linux\u003C/a>\u003C/li>\n\u003C/ul>",{"headings":123,"localImagePaths":170,"remoteImagePaths":171,"frontmatter":102,"imagePaths":172},[124,125,126,129,132,135,136,139,142,145,146,149,152,155,158,159,160,163,166,169],{"depth":43,"slug":44,"text":45},{"depth":47,"slug":48,"text":49},{"depth":51,"slug":127,"text":128},"option-1-live-system-usbdvd","Option 1: Live-System (USB/DVD)",{"depth":51,"slug":130,"text":131},"option-2-installation-auf-festplatte","Option 2: Installation auf Festplatte",{"depth":51,"slug":133,"text":134},"option-3-virtuelle-maschine-vm","Option 3: Virtuelle Maschine (VM)",{"depth":47,"slug":58,"text":59},{"depth":51,"slug":137,"text":138},"netzwerkeinstellungen","Netzwerkeinstellungen",{"depth":51,"slug":140,"text":141},"updates--paketquellen","Updates & Paketquellen",{"depth":51,"slug":143,"text":144},"sprache--lokalisierung","Sprache & Lokalisierung",{"depth":47,"slug":70,"text":71},{"depth":51,"slug":147,"text":148},"1-netzwerkscan-mit-nmap","1. Netzwerkscan mit Nmap",{"depth":51,"slug":150,"text":151},"2-passwort-cracking-mit-john-the-ripper","2. Passwort-Cracking mit John the Ripper",{"depth":51,"slug":153,"text":154},"3-forensik-mit-autopsy","3. Forensik mit Autopsy",{"depth":51,"slug":156,"text":157},"4-android-analyse-mit-mobsf-in-docker","4. Android-Analyse mit MobSF (in Docker)",{"depth":47,"slug":79,"text":80},{"depth":47,"slug":82,"text":83},{"depth":51,"slug":161,"text":162},"problem-keine-internetverbindung-nach-installation","Problem: Keine Internetverbindung nach Installation",{"depth":51,"slug":164,"text":165},"problem-tools-fehlen-nach-update","Problem: Tools fehlen nach Update",{"depth":51,"slug":167,"text":168},"problem-permission-denied-bei-tools","Problem: „Permission Denied“ bei Tools",{"depth":47,"slug":94,"text":95},[],[],[],"kali-linux.md","nextcloud",{"id":174,"data":176,"body":190,"filePath":191,"digest":192,"rendered":193,"legacyId":229},{"title":177,"tool_name":178,"description":179,"last_updated":180,"author":16,"difficulty":181,"categories":182,"tags":184,"sections":189,"review_status":34},"Nextcloud - Sichere Kollaborationsplattform","Nextcloud","Detaillierte Anleitung und Best Practices für Nextcloud in forensischen Einsatzszenarien",["Date","2025-07-20T00:00:00.000Z"],"novice",[183],"collaboration-general",[25,185,186,27,187,188],"collaboration","file-sharing","encryption","document-management",{"overview":32,"installation":32,"configuration":32,"usage_examples":32,"best_practices":32,"troubleshooting":32,"advanced_topics":33},"> **⚠️ Hinweis**: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\n\n\n# Übersicht\n\nNextcloud ist eine Open-Source-Cloud-Suite, die speziell für die sichere Zusammenarbeit entwickelt wurde. Sie eignet sich ideal für forensische Teams, da sie eine DSGVO-konforme Umgebung mit verschlüsselter Dateiablage, Office-Integration und Videokonferenzen bereitstellt. Zusätzlich bietet Nextcloud einen integrierten SSO-Provider, der das Identitätsmanagement für andere forensische Tools stark vereinfacht.\n\nSkalierbar von kleinen Raspberry-Pi-Installationen bis hin zu hochverfügbaren Multi-Node-Setups.\n\n- **Website:** [nextcloud.com](https://nextcloud.com/)\n- **Demo/Projektinstanz:** [cloud.cc24.dev](https://cloud.cc24.dev)\n- **Statusseite:** [Mikoshi Status](https://status.mikoshi.de/api/badge/11/status)\n- **Lizenz:** AGPL-3.0\n\n---\n\n## Installation\n\n### Voraussetzungen\n\n- Linux-Server oder Raspberry Pi\n- PHP 8.1 oder höher\n- MariaDB/PostgreSQL\n- Webserver (Apache/Nginx)\n- SSL-Zertifikat (empfohlen: Let's Encrypt)\n\n### Installationsschritte (Ubuntu Beispiel)\n\n```bash\nsudo apt update && sudo apt upgrade\nsudo apt install apache2 mariadb-server libapache2-mod-php php php-mysql \\\n php-gd php-xml php-mbstring php-curl php-zip php-intl php-bcmath unzip\n\nwget https://download.nextcloud.com/server/releases/latest.zip\nunzip latest.zip -d /var/www/\nchown -R www-data:www-data /var/www/nextcloud\n````\n\nDanach den Web-Installer im Browser aufrufen (`https://\u003Cyour-domain>/nextcloud`) und Setup abschließen.\n\n## Konfiguration\n\n* **Trusted Domains** in `config.php` definieren\n* SSO mit OpenID Connect aktivieren\n* Dateiverschlüsselung aktivieren (`Settings → Security`)\n* Benutzer und Gruppen über LDAP oder SAML integrieren\n\n## Verwendungsbeispiele\n\n### Gemeinsame Fallbearbeitung\n\n1. Ermittlungsordner als geteiltes Gruppenverzeichnis anlegen\n2. Versionierung und Kommentare zu forensischen Berichten aktivieren\n3. Vorschau für Office-Dateien, PDFs und Bilder direkt im Browser nutzen\n\n### Videokonferenzen mit \"Nextcloud Talk\"\n\n* Sichere Kommunikation zwischen Ermittlern und Sachverständigen\n* Ende-zu-Ende-verschlüsselt\n* Bildschirmfreigabe möglich\n\n### Automatischer Dateiimport per API\n\n* REST-Schnittstelle nutzen, um z. B. automatisch Logdateien oder Exportdaten hochzuladen\n* Ideal für Anbindung an SIEM, DLP oder Analyse-Pipelines\n\n## Best Practices\n\n* Zwei-Faktor-Authentifizierung aktivieren\n* Tägliche Backups der Datenbank und Datenstruktur\n* Nutzung von OnlyOffice oder Collabora für revisionssichere Dokumentenbearbeitung\n* Zugriff regelmäßig überprüfen, insbesondere bei externen Partnern\n\n## Troubleshooting\n\n### Problem: Langsame Performance\n\n**Lösung:** APCu aktivieren und Caching optimieren (`config.php → 'memcache.local'`).\n\n### Problem: Dateien erscheinen nicht im Sync\n\n**Lösung:** Cronjob für `files:scan` konfigurieren oder manuell ausführen:\n\n```bash\nsudo -u www-data php /var/www/nextcloud/occ files:scan --all\n```\n\n### Problem: Fehlermeldung \"Trusted domain not set\"\n\n**Lösung:** In `config/config.php` Eintrag `trusted_domains` korrekt konfigurieren:\n\n```php\n'trusted_domains' =>\n array (\n 0 => 'yourdomain.tld',\n 1 => 'cloud.cc24.dev',\n ),\n```\n\n## Weiterführende Themen\n\n* **Integration mit Forensik-Plattformen** (über WebDAV, API oder SSO)\n* **Custom Apps entwickeln** für spezielle Ermittlungs-Workflows\n* **Auditing aktivieren**: Nutzung und Änderungen nachvollziehen mit Protokollierungsfunktionen","src/content/knowledgebase/nextcloud.md","9294074e6083e37b",{"html":194,"metadata":195},"\u003Cblockquote>\n\u003Cp>\u003Cstrong>⚠️ Hinweis\u003C/strong>: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\u003C/p>\n\u003C/blockquote>\n\u003Ch1 id=\"übersicht\">Übersicht\u003C/h1>\n\u003Cp>Nextcloud ist eine Open-Source-Cloud-Suite, die speziell für die sichere Zusammenarbeit entwickelt wurde. Sie eignet sich ideal für forensische Teams, da sie eine DSGVO-konforme Umgebung mit verschlüsselter Dateiablage, Office-Integration und Videokonferenzen bereitstellt. Zusätzlich bietet Nextcloud einen integrierten SSO-Provider, der das Identitätsmanagement für andere forensische Tools stark vereinfacht.\u003C/p>\n\u003Cp>Skalierbar von kleinen Raspberry-Pi-Installationen bis hin zu hochverfügbaren Multi-Node-Setups.\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Website:\u003C/strong> \u003Ca href=\"https://nextcloud.com/\">nextcloud.com\u003C/a>\u003C/li>\n\u003Cli>\u003Cstrong>Demo/Projektinstanz:\u003C/strong> \u003Ca href=\"https://cloud.cc24.dev\">cloud.cc24.dev\u003C/a>\u003C/li>\n\u003Cli>\u003Cstrong>Statusseite:\u003C/strong> \u003Ca href=\"https://status.mikoshi.de/api/badge/11/status\">Mikoshi Status\u003C/a>\u003C/li>\n\u003Cli>\u003Cstrong>Lizenz:\u003C/strong> AGPL-3.0\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"installation\">Installation\u003C/h2>\n\u003Ch3 id=\"voraussetzungen\">Voraussetzungen\u003C/h3>\n\u003Cul>\n\u003Cli>Linux-Server oder Raspberry Pi\u003C/li>\n\u003Cli>PHP 8.1 oder höher\u003C/li>\n\u003Cli>MariaDB/PostgreSQL\u003C/li>\n\u003Cli>Webserver (Apache/Nginx)\u003C/li>\n\u003Cli>SSL-Zertifikat (empfohlen: Let’s Encrypt)\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"installationsschritte-ubuntu-beispiel\">Installationsschritte (Ubuntu Beispiel)\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> update\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> && \u003C/span>\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> upgrade\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apache2\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mariadb-server\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> libapache2-mod-php\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php-mysql\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\"> php-gd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php-xml\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php-mbstring\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php-curl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php-zip\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php-intl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php-bcmath\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> unzip\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">wget\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://download.nextcloud.com/server/releases/latest.zip\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">unzip\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> latest.zip\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -d\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /var/www/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">chown\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -R\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> www-data:www-data\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /var/www/nextcloud\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Danach den Web-Installer im Browser aufrufen (\u003Ccode>https://<your-domain>/nextcloud\u003C/code>) und Setup abschließen.\u003C/p>\n\u003Ch2 id=\"konfiguration\">Konfiguration\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Trusted Domains\u003C/strong> in \u003Ccode>config.php\u003C/code> definieren\u003C/li>\n\u003Cli>SSO mit OpenID Connect aktivieren\u003C/li>\n\u003Cli>Dateiverschlüsselung aktivieren (\u003Ccode>Settings → Security\u003C/code>)\u003C/li>\n\u003Cli>Benutzer und Gruppen über LDAP oder SAML integrieren\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"verwendungsbeispiele\">Verwendungsbeispiele\u003C/h2>\n\u003Ch3 id=\"gemeinsame-fallbearbeitung\">Gemeinsame Fallbearbeitung\u003C/h3>\n\u003Col>\n\u003Cli>Ermittlungsordner als geteiltes Gruppenverzeichnis anlegen\u003C/li>\n\u003Cli>Versionierung und Kommentare zu forensischen Berichten aktivieren\u003C/li>\n\u003Cli>Vorschau für Office-Dateien, PDFs und Bilder direkt im Browser nutzen\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"videokonferenzen-mit-nextcloud-talk\">Videokonferenzen mit “Nextcloud Talk”\u003C/h3>\n\u003Cul>\n\u003Cli>Sichere Kommunikation zwischen Ermittlern und Sachverständigen\u003C/li>\n\u003Cli>Ende-zu-Ende-verschlüsselt\u003C/li>\n\u003Cli>Bildschirmfreigabe möglich\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"automatischer-dateiimport-per-api\">Automatischer Dateiimport per API\u003C/h3>\n\u003Cul>\n\u003Cli>REST-Schnittstelle nutzen, um z. B. automatisch Logdateien oder Exportdaten hochzuladen\u003C/li>\n\u003Cli>Ideal für Anbindung an SIEM, DLP oder Analyse-Pipelines\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"best-practices\">Best Practices\u003C/h2>\n\u003Cul>\n\u003Cli>Zwei-Faktor-Authentifizierung aktivieren\u003C/li>\n\u003Cli>Tägliche Backups der Datenbank und Datenstruktur\u003C/li>\n\u003Cli>Nutzung von OnlyOffice oder Collabora für revisionssichere Dokumentenbearbeitung\u003C/li>\n\u003Cli>Zugriff regelmäßig überprüfen, insbesondere bei externen Partnern\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"troubleshooting\">Troubleshooting\u003C/h2>\n\u003Ch3 id=\"problem-langsame-performance\">Problem: Langsame Performance\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong> APCu aktivieren und Caching optimieren (\u003Ccode>config.php → 'memcache.local'\u003C/code>).\u003C/p>\n\u003Ch3 id=\"problem-dateien-erscheinen-nicht-im-sync\">Problem: Dateien erscheinen nicht im Sync\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong> Cronjob für \u003Ccode>files:scan\u003C/code> konfigurieren oder manuell ausführen:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -u\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> www-data\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> php\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /var/www/nextcloud/occ\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> files:scan\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --all\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"problem-fehlermeldung-trusted-domain-not-set\">Problem: Fehlermeldung “Trusted domain not set”\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong> In \u003Ccode>config/config.php\u003C/code> Eintrag \u003Ccode>trusted_domains\u003C/code> korrekt konfigurieren:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"php\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">'trusted_domains'\u003C/span>\u003Cspan style=\"color:#F97583\"> =>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\"> array\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\"> 0\u003C/span>\u003Cspan style=\"color:#F97583\"> =>\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 'yourdomain.tld'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\"> 1\u003C/span>\u003Cspan style=\"color:#F97583\"> =>\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 'cloud.cc24.dev'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> ),\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"weiterführende-themen\">Weiterführende Themen\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Integration mit Forensik-Plattformen\u003C/strong> (über WebDAV, API oder SSO)\u003C/li>\n\u003Cli>\u003Cstrong>Custom Apps entwickeln\u003C/strong> für spezielle Ermittlungs-Workflows\u003C/li>\n\u003Cli>\u003Cstrong>Auditing aktivieren\u003C/strong>: Nutzung und Änderungen nachvollziehen mit Protokollierungsfunktionen\u003C/li>\n\u003C/ul>",{"headings":196,"localImagePaths":226,"remoteImagePaths":227,"frontmatter":176,"imagePaths":228},[197,198,199,200,203,204,205,208,211,214,215,216,219,222,225],{"depth":43,"slug":44,"text":45},{"depth":47,"slug":48,"text":49},{"depth":51,"slug":52,"text":53},{"depth":51,"slug":201,"text":202},"installationsschritte-ubuntu-beispiel","Installationsschritte (Ubuntu Beispiel)",{"depth":47,"slug":58,"text":59},{"depth":47,"slug":70,"text":71},{"depth":51,"slug":206,"text":207},"gemeinsame-fallbearbeitung","Gemeinsame Fallbearbeitung",{"depth":51,"slug":209,"text":210},"videokonferenzen-mit-nextcloud-talk","Videokonferenzen mit “Nextcloud Talk”",{"depth":51,"slug":212,"text":213},"automatischer-dateiimport-per-api","Automatischer Dateiimport per API",{"depth":47,"slug":79,"text":80},{"depth":47,"slug":82,"text":83},{"depth":51,"slug":217,"text":218},"problem-langsame-performance","Problem: Langsame Performance",{"depth":51,"slug":220,"text":221},"problem-dateien-erscheinen-nicht-im-sync","Problem: Dateien erscheinen nicht im Sync",{"depth":51,"slug":223,"text":224},"problem-fehlermeldung-trusted-domain-not-set","Problem: Fehlermeldung “Trusted domain not set”",{"depth":47,"slug":94,"text":95},[],[],[],"nextcloud.md","android-logical-imaging",{"id":230,"data":232,"body":246,"filePath":247,"digest":248,"rendered":249,"legacyId":477},{"title":233,"tool_name":234,"description":235,"last_updated":236,"author":237,"difficulty":238,"categories":239,"tags":241,"sections":245,"review_status":34},"Extraktion logischer Dateisysteme alter Android-Smartphones - eine KI-Recherche","Android Logical Imaging","Wie man alte Android-Handys aufbekommen könnte - eine Recherche von Claude",["Date","2025-07-21T00:00:00.000Z"],"Claude 4 Sonnet (Research)","advanced",[240],"data-collection",[242,243,244],"imaging","filesystem","hardware-interface",{"overview":32,"installation":32,"configuration":32,"usage_examples":32,"best_practices":32,"troubleshooting":32,"advanced_topics":32},"# Übersicht\n\nOpen-Source Android Forensik bietet robuste Alternativen zu kommerziellen Lösungen wie Cellebrite UFED und Magnet AXIOM. Besonders für ältere Android-Geräte (5+ Jahre) existieren bewährte Methoden zur Datenextraktion und -analyse.\n\n## Kernkomponenten des Open-Source Forensik-Stacks\n\n**Autopsy Digital Forensics Platform** bildet das Fundament mit GUI-basierter Analyse und integrierten Android-Parsing-Fähigkeiten. Die Plattform unterstützt **ALEAPP (Android Logs Events And Protobuf Parser)**, das über 100 Artefakt-Kategorien aus Android-Extraktionen parst.\n\n**Mobile Verification Toolkit (MVT)** von Amnesty International bietet spezialisierte Command-Line-Tools für Android-Analyse mit Fokus auf Kompromittierungserkennung.\n\n**SIFT Workstation** stellt eine komplette Ubuntu-basierte forensische Umgebung mit 125+ vorinstallierten Tools bereit.\n\n## Erfolgsraten nach Gerätealter\n\n- **Pre-2017 Geräte**: 85-98% logische Extraktion, 30-70% physische Extraktion\n- **2017-2019 Geräte**: 80-95% logische Extraktion, 15-35% physische Extraktion \n- **2020+ Geräte**: 70-85% logische Extraktion, 5-15% physische Extraktion\n\n# Installation\n\n## SIFT Workstation Setup\n\n### Systemanforderungen\n- Quad-Core CPU 2.5GHz+\n- 16GB+ RAM\n- 500GB+ SSD Speicher\n- USB 3.0+ Anschlüsse\n\n### Installation\n1. Download von [SANS SIFT Workstation](https://www.sans.org/tools/sift-workstation/)\n2. VMware/VirtualBox Import der OVA-Datei\n3. VM-Konfiguration: 8GB+ RAM, 4+ CPU-Kerne\n\n```bash\n# Update nach Installation\nsudo apt update && sudo apt upgrade -y\nsudo sift update\n```\n\n## Autopsy Installation\n\n### Windows Installation\n1. Download von [autopsy.com](https://www.autopsy.com/)\n2. Java 8+ Installation erforderlich\n3. Installation mit Administratorrechten\n\n### Linux Installation\n```bash\n# Ubuntu/Debian\nsudo apt install autopsy sleuthkit\n# Oder manueller Download und Installation\nwget https://github.com/sleuthkit/autopsy/releases/latest\n```\n\n## Essential Tools Installation\n\n### Android Debug Bridge (ADB)\n```bash\n# Ubuntu/Debian\nsudo apt install android-tools-adb android-tools-fastboot\n\n# Windows - Download Android Platform Tools\n# https://developer.android.com/studio/releases/platform-tools\n```\n\n### ALEAPP Installation\n```bash\ngit clone https://github.com/abrignoni/ALEAPP.git\ncd ALEAPP\npip3 install -r requirements.txt\n```\n\n### Mobile Verification Toolkit (MVT)\n```bash\npip3 install mvt\n# Oder via GitHub für neueste Version\ngit clone https://github.com/mvt-project/mvt.git\ncd mvt && pip3 install .\n```\n\n### Andriller Installation\n```bash\ngit clone https://github.com/den4uk/andriller.git\ncd andriller\npip3 install -r requirements.txt\n```\n\n# Konfiguration\n\n## ADB Setup und Gerätevorbereitung\n\n### USB-Debugging aktivieren\n1. Entwickleroptionen freischalten (7x Build-Nummer antippen)\n2. USB-Debugging aktivieren\n3. Gerät via USB verbinden\n4. RSA-Fingerprint akzeptieren\n\n### ADB Verbindung testen\n```bash\nadb devices\n# Sollte Gerät mit \"device\" Status zeigen\nadb shell getprop ro.build.version.release # Android Version\nadb shell getprop ro.product.model # Gerätemodell\n```\n\n## Autopsy Projektkonfiguration\n\n### Case-Setup\n1. Neuen Fall erstellen\n2. Ermittler-Informationen eingeben\n3. Case-Verzeichnis festlegen (ausreichend Speicherplatz)\n\n### Android Analyzer Module aktivieren\n- Tools → Options → Modules\n- Android Analyzer aktivieren\n- ALEAPP Integration konfigurieren\n\n### Hash-Algorithmen konfigurieren\n- MD5, SHA-1, SHA-256 für Integritätsprüfung\n- Automatische Hash-Berechnung bei Import aktivieren\n\n## MVT Konfiguration\n\n### Konfigurationsdatei erstellen\n```yaml\n# ~/.mvt/config.yaml\nadb_path: \"/usr/bin/adb\"\noutput_folder: \"/home/user/mvt_output\"\n```\n\n# Verwendungsbeispiele\n\n## Fall 1: Logische Datenextraktion mit ADB\n\n### Geräteinformationen sammeln\n```bash\n# Systeminfo\nadb shell getprop > device_properties.txt\nadb shell cat /proc/version > kernel_info.txt\nadb shell mount > mount_info.txt\n\n# Installierte Apps\nadb shell pm list packages -f > installed_packages.txt\n```\n\n### Datenbank-Extraktion\n```bash\n# SMS/MMS Datenbank\nadb pull /data/data/com.android.providers.telephony/databases/mmssms.db\n\n# Kontakte\nadb pull /data/data/com.android.providers.contacts/databases/contacts2.db\n\n# Anrufliste \nadb pull /data/data/com.android.providers.contacts/databases/calllog.db\n```\n\n### WhatsApp Datenextraktion\n```bash\n# WhatsApp Datenbanken (Root erforderlich)\nadb shell su -c \"cp -r /data/data/com.whatsapp/ /sdcard/whatsapp_backup/\"\nadb pull /sdcard/whatsapp_backup/\n```\n\n## Fall 2: Android Backup-Analyse\n\n### Vollständiges Backup erstellen\n```bash\n# Umfassendes Backup (ohne Root)\nadb backup -all -system -apk -shared -f backup.ab\n\n# Backup entschlüsseln (falls verschlüsselt)\njava -jar abe.jar unpack backup.ab backup.tar\ntar -xf backup.tar\n```\n\n### Backup mit ALEAPP analysieren\n```bash\npython3 aleappGUI.py\n# Oder Command-Line\npython3 aleapp.py -t tar -i backup.tar -o output_folder\n```\n\n## Fall 3: MVT Kompromittierungsanalyse\n\n### Live-Geräteanalyse\n```bash\n# ADB-basierte Analyse\nmvt-android check-adb --output /path/to/output/\n\n# Backup-Analyse\nmvt-android check-backup --output /path/to/output/ backup.ab\n```\n\n### IOC-Suche mit Pegasus-Indikatoren\n```bash\n# Mit vorgefertigten IOCs\nmvt-android check-adb --iocs /path/to/pegasus.stix2 --output results/\n```\n\n## Fall 4: Physische Extraktion (Root erforderlich)\n\n### Device Rooting - MediaTek Geräte\n```bash\n# MTKClient für MediaTek-Chipsets\ngit clone https://github.com/bkerler/mtkclient.git\ncd mtkclient\npython3 mtk payload\n\n# Nach erfolgreichem Root\nadb shell su\n```\n\n### Vollständiges Memory Dump\n```bash\n# Partitionslayout ermitteln\nadb shell su -c \"cat /proc/partitions\"\nadb shell su -c \"ls -la /dev/block/\"\n\n# Vollständiges Device Image (Root erforderlich)\nadb shell su -c \"dd if=/dev/block/mmcblk0 of=/sdcard/full_device.img bs=4096\"\nadb pull /sdcard/full_device.img\n```\n\n# Best Practices\n\n## Rechtliche Compliance\n\n### Dokumentation und Chain of Custody\n- **Vollständige Dokumentation**: Wer, Was, Wann, Wo, Warum\n- **Hash-Verifikation**: MD5/SHA-256 für alle extrahierten Daten\n- **Nur forensische Kopien analysieren**, niemals Originaldaten\n- **Schriftliche Genehmigung** für Geräteanalyse einholen\n\n### Familiengeräte und Nachlässe\n- Genehmigung durch Nachlassverwalter erforderlich\n- Gerichtsbeschlüsse für Cloud-Zugang eventuell nötig\n- Drittpartei-Kommunikation kann weiterhin geschützt sein\n\n## Technische Best Practices\n\n### Hash-Integrität sicherstellen\n```bash\n# Hash vor und nach Transfer prüfen\nmd5sum original_file.db\nsha256sum original_file.db\n\n# Hash-Verifikation dokumentieren\necho \"$(date): MD5: $(md5sum file.db)\" >> chain_of_custody.log\n```\n\n### Sichere Arbeitsumgebung\n- Isolierte VM für Forensik-Arbeit\n- Netzwerk-Isolation während Analyse\n- Verschlüsselte Speicherung aller Evidenz\n- Regelmäßige Backups der Case-Datenbanken\n\n### Qualitätssicherung\n- Peer-Review kritischer Analysen\n- Standardisierte Arbeitsabläufe (SOPs)\n- Regelmäßige Tool-Validierung\n- Kontinuierliche Weiterbildung\n\n## Erfolgsmaximierung nach Gerätehersteller\n\n### MediaTek-Geräte (Höchste Erfolgsrate)\n- BootROM-Exploits für MT6735, MT6737, MT6750, MT6753, MT6797\n- MTKClient für Hardware-Level-Zugang\n- Erfolgsrate: 80%+ für Geräte 2015-2019\n\n### Samsung-Geräte\n- Ältere Knox-Implementierungen umgehbar\n- Emergency Dialer Exploits für Android 4.x\n- Erfolgsrate: 40-70% je nach Knox-Version\n\n### Pixel/Nexus-Geräte\n- Bootloader-Unlocking oft möglich\n- Fastboot-basierte Recovery-Installation\n- Erfolgsrate: 60-80% bei freigeschaltetem Bootloader\n\n# Troubleshooting\n\n## Problem: ADB erkennt Gerät nicht\n\n### Lösung: USB-Treiber und Berechtigungen\n```bash\n# Linux: USB-Berechtigungen prüfen\nlsusb | grep -i android\nsudo chmod 666 /dev/bus/usb/XXX/XXX\n\n# udev-Regeln erstellen\necho 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"18d1\", MODE=\"0666\", GROUP=\"plugdev\"' | sudo tee /etc/udev/rules.d/51-android.rules\nsudo udevadm control --reload-rules\n```\n\n### Windows: Treiber-Installation\n1. Geräte-Manager öffnen\n2. Android-Gerät mit Warnsymbol finden\n3. Treiber manuell installieren (Android USB Driver)\n\n## Problem: Verschlüsselte Android Backups\n\n### Lösung: Android Backup Extractor\n```bash\n# ADB Backup Extractor installieren\ngit clone https://github.com/nelenkov/android-backup-extractor.git\ncd android-backup-extractor\ngradle build\n\n# Backup entschlüsseln\njava -jar abe.jar unpack backup.ab backup.tar [password]\n```\n\n## Problem: Unzureichende Berechtigungen für Datenextraktion\n\n### Lösung: Alternative Extraktionsmethoden\n```bash\n# AFLogical OSE für begrenzte Extraktion ohne Root\n# WhatsApp Key/DB Extractor für spezifische Apps\n# Backup-basierte Extraktion als Fallback\n\n# Custom Recovery für erweiterten Zugang\nfastboot flash recovery twrp-device.img\n```\n\n## Problem: ALEAPP Parsing-Fehler\n\n### Lösung: Datenformat-Probleme beheben\n```bash\n# Log-Dateien prüfen\npython3 aleapp.py -t dir -i /path/to/data -o output --debug\n\n# Spezifische Parser deaktivieren\n# Manuelle SQLite-Analyse bei Parser-Fehlern\nsqlite3 database.db \".tables\"\nsqlite3 database.db \".schema table_name\"\n```\n\n# Erweiterte Techniken\n\n## Memory Forensics mit LiME\n\n### LiME für ARM-Devices kompilieren\n```bash\n# Cross-Compilation Setup\nexport ARCH=arm\nexport CROSS_COMPILE=arm-linux-gnueabi-\nexport KERNEL_DIR=/path/to/kernel/source\n\n# LiME Module kompilieren\ngit clone https://github.com/504ensicsLabs/LiME.git\ncd LiME/src\nmake\n\n# Memory Dump erstellen (Root erforderlich)\nadb push lime.ko /data/local/tmp/\nadb shell su -c \"insmod /data/local/tmp/lime.ko 'path=/sdcard/memory.lime format=lime'\"\n```\n\n### Volatility-Analyse von Android Memory\n```bash\n# Memory Dump analysieren\npython vol.py -f memory.lime --profile=Linux \u003Cprofile> linux.pslist\npython vol.py -f memory.lime --profile=Linux \u003Cprofile> linux.bash\npython vol.py -f memory.lime --profile=Linux \u003Cprofile> linux.netstat\n```\n\n## FRIDA-basierte Runtime-Analyse\n\n### FRIDA für Kryptographie-Hooks\n```javascript\n// crypto_hooks.js - SSL/TLS Traffic abfangen\nJava.perform(function() {\n var SSLContext = Java.use(\"javax.net.ssl.SSLContext\");\n SSLContext.init.overload('[Ljavax.net.ssl.KeyManager;', '[Ljavax.net.ssl.TrustManager;', 'java.security.SecureRandom').implementation = function(keyManagers, trustManagers, secureRandom) {\n console.log(\"[+] SSLContext.init() called\");\n this.init(keyManagers, trustManagers, secureRandom);\n };\n});\n```\n\n### FRIDA Installation und Verwendung\n```bash\n# FRIDA Server auf Android-Gerät installieren\nadb push frida-server /data/local/tmp/\nadb shell su -c \"chmod 755 /data/local/tmp/frida-server\"\nadb shell su -c \"/data/local/tmp/frida-server &\"\n\n# Script ausführen\nfrida -U -l crypto_hooks.js com.target.package\n```\n\n## Custom Recovery und Fastboot-Exploits\n\n### TWRP Installation für forensischen Zugang\n```bash\n# Bootloader entsperren (Herstellerabhängig)\nfastboot oem unlock\n# Oder\nfastboot flashing unlock\n\n# TWRP flashen\nfastboot flash recovery twrp-device.img\nfastboot boot twrp-device.img # Temporäre Installation\n\n# In TWRP: ADB-Zugang mit Root-Berechtigungen\nadb shell mount /system\nadb shell mount /data\n```\n\n### Partitions-Imaging mit dd\n```bash\n# Vollständige Partition-Liste\nadb shell cat /proc/partitions\n\n# Kritische Partitionen extrahieren\nadb shell dd if=/dev/block/bootdevice/by-name/system of=/external_sd/system.img\nadb shell dd if=/dev/block/bootdevice/by-name/userdata of=/external_sd/userdata.img\nadb shell dd if=/dev/block/bootdevice/by-name/boot of=/external_sd/boot.img\n```\n\n## SQLite Forensics und gelöschte Daten\n\n### Erweiterte SQLite-Analyse\n```bash\n# Freelist-Analyse für gelöschte Einträge\nsqlite3 database.db \"PRAGMA freelist_count;\"\nsqlite3 database.db \"PRAGMA page_size;\"\n\n# WAL-Datei Analyse\nsqlite3 database.db \"PRAGMA wal_checkpoint;\"\nstrings database.db-wal | grep -i \"search_term\"\n\n# Undark für Deleted Record Recovery\nundark database.db --freelist --export-csv\n```\n\n### Timeline-Rekonstruktion\n```bash\n# Autopsy Timeline-Generierung\n# Tools → Generate Timeline\n# Analyse von MAC-Times (Modified, Accessed, Created)\n\n# Plaso Timeline-Tools\nlog2timeline.py timeline.plaso /path/to/android/data/\npsort.py -o dynamic timeline.plaso\n```\n\n## Weiterführende Ressourcen\n\n### Dokumentation und Standards\n- [NIST SP 800-101 Rev. 1 - Mobile Device Forensics Guidelines](https://csrc.nist.gov/pubs/sp/800/101/r1/final)\n- [SANS FOR585 - Smartphone Forensics](https://www.sans.org/cyber-security-courses/advanced-smartphone-mobile-device-forensics/)\n- [ALEAPP GitHub Repository](https://github.com/abrignoni/ALEAPP)\n- [MVT Documentation](https://docs.mvt.re/en/latest/)\n\n### Community und Weiterbildung\n- [Autopsy User Documentation](https://sleuthkit.org/autopsy/docs/)\n- [Android Forensics References](https://github.com/impillar/AndroidReferences/blob/master/AndroidTools.md)\n- [Digital Forensics Framework Collection](https://github.com/mesquidar/ForensicsTools)\n\n### Spezialisierte Tools\n- [MTKClient für MediaTek Exploits](https://github.com/bkerler/mtkclient)\n- [Android Forensics Framework](https://github.com/nowsecure/android-forensics)\n- [Santoku Linux Mobile Forensics Distribution](https://santoku-linux.com/)\n\n---\n\n**Wichtiger Hinweis**: Diese Anleitung dient ausschließlich für autorisierte forensische Untersuchungen. Stellen Sie sicher, dass Sie über entsprechende rechtliche Befugnisse verfügen, bevor Sie diese Techniken anwenden. Bei Zweifeln konsultieren Sie Rechtsberatung.","src/content/knowledgebase/android-logical-imaging.md","0bb3f1d2c872d2bf",{"html":250,"metadata":251},"\u003Ch1 id=\"übersicht\">Übersicht\u003C/h1>\n\u003Cp>Open-Source Android Forensik bietet robuste Alternativen zu kommerziellen Lösungen wie Cellebrite UFED und Magnet AXIOM. Besonders für ältere Android-Geräte (5+ Jahre) existieren bewährte Methoden zur Datenextraktion und -analyse.\u003C/p>\n\u003Ch2 id=\"kernkomponenten-des-open-source-forensik-stacks\">Kernkomponenten des Open-Source Forensik-Stacks\u003C/h2>\n\u003Cp>\u003Cstrong>Autopsy Digital Forensics Platform\u003C/strong> bildet das Fundament mit GUI-basierter Analyse und integrierten Android-Parsing-Fähigkeiten. Die Plattform unterstützt \u003Cstrong>ALEAPP (Android Logs Events And Protobuf Parser)\u003C/strong>, das über 100 Artefakt-Kategorien aus Android-Extraktionen parst.\u003C/p>\n\u003Cp>\u003Cstrong>Mobile Verification Toolkit (MVT)\u003C/strong> von Amnesty International bietet spezialisierte Command-Line-Tools für Android-Analyse mit Fokus auf Kompromittierungserkennung.\u003C/p>\n\u003Cp>\u003Cstrong>SIFT Workstation\u003C/strong> stellt eine komplette Ubuntu-basierte forensische Umgebung mit 125+ vorinstallierten Tools bereit.\u003C/p>\n\u003Ch2 id=\"erfolgsraten-nach-gerätealter\">Erfolgsraten nach Gerätealter\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Pre-2017 Geräte\u003C/strong>: 85-98% logische Extraktion, 30-70% physische Extraktion\u003C/li>\n\u003Cli>\u003Cstrong>2017-2019 Geräte\u003C/strong>: 80-95% logische Extraktion, 15-35% physische Extraktion\u003C/li>\n\u003Cli>\u003Cstrong>2020+ Geräte\u003C/strong>: 70-85% logische Extraktion, 5-15% physische Extraktion\u003C/li>\n\u003C/ul>\n\u003Ch1 id=\"installation\">Installation\u003C/h1>\n\u003Ch2 id=\"sift-workstation-setup\">SIFT Workstation Setup\u003C/h2>\n\u003Ch3 id=\"systemanforderungen\">Systemanforderungen\u003C/h3>\n\u003Cul>\n\u003Cli>Quad-Core CPU 2.5GHz+\u003C/li>\n\u003Cli>16GB+ RAM\u003C/li>\n\u003Cli>500GB+ SSD Speicher\u003C/li>\n\u003Cli>USB 3.0+ Anschlüsse\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"installation-1\">Installation\u003C/h3>\n\u003Col>\n\u003Cli>Download von \u003Ca href=\"https://www.sans.org/tools/sift-workstation/\">SANS SIFT Workstation\u003C/a>\u003C/li>\n\u003Cli>VMware/VirtualBox Import der OVA-Datei\u003C/li>\n\u003Cli>VM-Konfiguration: 8GB+ RAM, 4+ CPU-Kerne\u003C/li>\n\u003C/ol>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Update nach Installation\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> update\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> && \u003C/span>\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> upgrade\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -y\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> sift\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> update\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"autopsy-installation\">Autopsy Installation\u003C/h2>\n\u003Ch3 id=\"windows-installation\">Windows Installation\u003C/h3>\n\u003Col>\n\u003Cli>Download von \u003Ca href=\"https://www.autopsy.com/\">autopsy.com\u003C/a>\u003C/li>\n\u003Cli>Java 8+ Installation erforderlich\u003C/li>\n\u003Cli>Installation mit Administratorrechten\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"linux-installation\">Linux Installation\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Ubuntu/Debian\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> autopsy\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> sleuthkit\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Oder manueller Download und Installation\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">wget\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/sleuthkit/autopsy/releases/latest\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"essential-tools-installation\">Essential Tools Installation\u003C/h2>\n\u003Ch3 id=\"android-debug-bridge-adb\">Android Debug Bridge (ADB)\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Ubuntu/Debian\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apt\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> android-tools-adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> android-tools-fastboot\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Windows - Download Android Platform Tools\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># https://developer.android.com/studio/releases/platform-tools\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"aleapp-installation\">ALEAPP Installation\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/abrignoni/ALEAPP.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> ALEAPP\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">pip3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -r\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> requirements.txt\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"mobile-verification-toolkit-mvt\">Mobile Verification Toolkit (MVT)\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">pip3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mvt\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Oder via GitHub für neueste Version\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/mvt-project/mvt.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mvt\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> && \u003C/span>\u003Cspan style=\"color:#B392F0\">pip3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> .\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"andriller-installation\">Andriller Installation\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/den4uk/andriller.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> andriller\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">pip3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -r\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> requirements.txt\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch1 id=\"konfiguration\">Konfiguration\u003C/h1>\n\u003Ch2 id=\"adb-setup-und-gerätevorbereitung\">ADB Setup und Gerätevorbereitung\u003C/h2>\n\u003Ch3 id=\"usb-debugging-aktivieren\">USB-Debugging aktivieren\u003C/h3>\n\u003Col>\n\u003Cli>Entwickleroptionen freischalten (7x Build-Nummer antippen)\u003C/li>\n\u003Cli>USB-Debugging aktivieren\u003C/li>\n\u003Cli>Gerät via USB verbinden\u003C/li>\n\u003Cli>RSA-Fingerprint akzeptieren\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"adb-verbindung-testen\">ADB Verbindung testen\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> devices\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Sollte Gerät mit \"device\" Status zeigen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> getprop\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> ro.build.version.release\u003C/span>\u003Cspan style=\"color:#6A737D\"> # Android Version\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> getprop\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> ro.product.model\u003C/span>\u003Cspan style=\"color:#6A737D\"> # Gerätemodell\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"autopsy-projektkonfiguration\">Autopsy Projektkonfiguration\u003C/h2>\n\u003Ch3 id=\"case-setup\">Case-Setup\u003C/h3>\n\u003Col>\n\u003Cli>Neuen Fall erstellen\u003C/li>\n\u003Cli>Ermittler-Informationen eingeben\u003C/li>\n\u003Cli>Case-Verzeichnis festlegen (ausreichend Speicherplatz)\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"android-analyzer-module-aktivieren\">Android Analyzer Module aktivieren\u003C/h3>\n\u003Cul>\n\u003Cli>Tools → Options → Modules\u003C/li>\n\u003Cli>Android Analyzer aktivieren\u003C/li>\n\u003Cli>ALEAPP Integration konfigurieren\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"hash-algorithmen-konfigurieren\">Hash-Algorithmen konfigurieren\u003C/h3>\n\u003Cul>\n\u003Cli>MD5, SHA-1, SHA-256 für Integritätsprüfung\u003C/li>\n\u003Cli>Automatische Hash-Berechnung bei Import aktivieren\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"mvt-konfiguration\">MVT Konfiguration\u003C/h2>\n\u003Ch3 id=\"konfigurationsdatei-erstellen\">Konfigurationsdatei erstellen\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"yaml\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># ~/.mvt/config.yaml\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">adb_path\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"/usr/bin/adb\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">output_folder\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"/home/user/mvt_output\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch1 id=\"verwendungsbeispiele\">Verwendungsbeispiele\u003C/h1>\n\u003Ch2 id=\"fall-1-logische-datenextraktion-mit-adb\">Fall 1: Logische Datenextraktion mit ADB\u003C/h2>\n\u003Ch3 id=\"geräteinformationen-sammeln\">Geräteinformationen sammeln\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Systeminfo\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> getprop\u003C/span>\u003Cspan style=\"color:#F97583\"> >\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> device_properties.txt\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> cat\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /proc/version\u003C/span>\u003Cspan style=\"color:#F97583\"> >\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> kernel_info.txt\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mount\u003C/span>\u003Cspan style=\"color:#F97583\"> >\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mount_info.txt\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Installierte Apps\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pm\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> list\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> packages\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -f\u003C/span>\u003Cspan style=\"color:#F97583\"> >\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> installed_packages.txt\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"datenbank-extraktion\">Datenbank-Extraktion\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># SMS/MMS Datenbank\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pull\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /data/data/com.android.providers.telephony/databases/mmssms.db\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Kontakte\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pull\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /data/data/com.android.providers.contacts/databases/contacts2.db\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Anrufliste \u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pull\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /data/data/com.android.providers.contacts/databases/calllog.db\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"whatsapp-datenextraktion\">WhatsApp Datenextraktion\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># WhatsApp Datenbanken (Root erforderlich)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -c\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"cp -r /data/data/com.whatsapp/ /sdcard/whatsapp_backup/\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pull\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /sdcard/whatsapp_backup/\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"fall-2-android-backup-analyse\">Fall 2: Android Backup-Analyse\u003C/h2>\n\u003Ch3 id=\"vollständiges-backup-erstellen\">Vollständiges Backup erstellen\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Umfassendes Backup (ohne Root)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -all\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -system\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -apk\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -shared\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -f\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.ab\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Backup entschlüsseln (falls verschlüsselt)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">java\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -jar\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> abe.jar\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> unpack\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.ab\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.tar\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">tar\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -xf\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.tar\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"backup-mit-aleapp-analysieren\">Backup mit ALEAPP analysieren\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">python3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> aleappGUI.py\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Oder Command-Line\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">python3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> aleapp.py\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -t\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> tar\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -i\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.tar\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -o\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> output_folder\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"fall-3-mvt-kompromittierungsanalyse\">Fall 3: MVT Kompromittierungsanalyse\u003C/h2>\n\u003Ch3 id=\"live-geräteanalyse\">Live-Geräteanalyse\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># ADB-basierte Analyse\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">mvt-android\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> check-adb\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --output\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /path/to/output/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Backup-Analyse\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">mvt-android\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> check-backup\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --output\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /path/to/output/\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.ab\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"ioc-suche-mit-pegasus-indikatoren\">IOC-Suche mit Pegasus-Indikatoren\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Mit vorgefertigten IOCs\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">mvt-android\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> check-adb\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --iocs\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /path/to/pegasus.stix2\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --output\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> results/\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"fall-4-physische-extraktion-root-erforderlich\">Fall 4: Physische Extraktion (Root erforderlich)\u003C/h2>\n\u003Ch3 id=\"device-rooting---mediatek-geräte\">Device Rooting - MediaTek Geräte\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># MTKClient für MediaTek-Chipsets\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/bkerler/mtkclient.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mtkclient\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">python3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mtk\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> payload\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Nach erfolgreichem Root\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"vollständiges-memory-dump\">Vollständiges Memory Dump\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Partitionslayout ermitteln\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -c\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"cat /proc/partitions\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -c\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"ls -la /dev/block/\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Vollständiges Device Image (Root erforderlich)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -c\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"dd if=/dev/block/mmcblk0 of=/sdcard/full_device.img bs=4096\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pull\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /sdcard/full_device.img\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch1 id=\"best-practices\">Best Practices\u003C/h1>\n\u003Ch2 id=\"rechtliche-compliance\">Rechtliche Compliance\u003C/h2>\n\u003Ch3 id=\"dokumentation-und-chain-of-custody\">Dokumentation und Chain of Custody\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Vollständige Dokumentation\u003C/strong>: Wer, Was, Wann, Wo, Warum\u003C/li>\n\u003Cli>\u003Cstrong>Hash-Verifikation\u003C/strong>: MD5/SHA-256 für alle extrahierten Daten\u003C/li>\n\u003Cli>\u003Cstrong>Nur forensische Kopien analysieren\u003C/strong>, niemals Originaldaten\u003C/li>\n\u003Cli>\u003Cstrong>Schriftliche Genehmigung\u003C/strong> für Geräteanalyse einholen\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"familiengeräte-und-nachlässe\">Familiengeräte und Nachlässe\u003C/h3>\n\u003Cul>\n\u003Cli>Genehmigung durch Nachlassverwalter erforderlich\u003C/li>\n\u003Cli>Gerichtsbeschlüsse für Cloud-Zugang eventuell nötig\u003C/li>\n\u003Cli>Drittpartei-Kommunikation kann weiterhin geschützt sein\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"technische-best-practices\">Technische Best Practices\u003C/h2>\n\u003Ch3 id=\"hash-integrität-sicherstellen\">Hash-Integrität sicherstellen\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Hash vor und nach Transfer prüfen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">md5sum\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> original_file.db\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sha256sum\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> original_file.db\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Hash-Verifikation dokumentieren\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">echo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"$(\u003C/span>\u003Cspan style=\"color:#B392F0\">date\u003C/span>\u003Cspan style=\"color:#9ECBFF\">): MD5: $(\u003C/span>\u003Cspan style=\"color:#B392F0\">md5sum\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> file.db)\"\u003C/span>\u003Cspan style=\"color:#F97583\"> >>\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> chain_of_custody.log\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"sichere-arbeitsumgebung\">Sichere Arbeitsumgebung\u003C/h3>\n\u003Cul>\n\u003Cli>Isolierte VM für Forensik-Arbeit\u003C/li>\n\u003Cli>Netzwerk-Isolation während Analyse\u003C/li>\n\u003Cli>Verschlüsselte Speicherung aller Evidenz\u003C/li>\n\u003Cli>Regelmäßige Backups der Case-Datenbanken\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"qualitätssicherung\">Qualitätssicherung\u003C/h3>\n\u003Cul>\n\u003Cli>Peer-Review kritischer Analysen\u003C/li>\n\u003Cli>Standardisierte Arbeitsabläufe (SOPs)\u003C/li>\n\u003Cli>Regelmäßige Tool-Validierung\u003C/li>\n\u003Cli>Kontinuierliche Weiterbildung\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"erfolgsmaximierung-nach-gerätehersteller\">Erfolgsmaximierung nach Gerätehersteller\u003C/h2>\n\u003Ch3 id=\"mediatek-geräte-höchste-erfolgsrate\">MediaTek-Geräte (Höchste Erfolgsrate)\u003C/h3>\n\u003Cul>\n\u003Cli>BootROM-Exploits für MT6735, MT6737, MT6750, MT6753, MT6797\u003C/li>\n\u003Cli>MTKClient für Hardware-Level-Zugang\u003C/li>\n\u003Cli>Erfolgsrate: 80%+ für Geräte 2015-2019\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"samsung-geräte\">Samsung-Geräte\u003C/h3>\n\u003Cul>\n\u003Cli>Ältere Knox-Implementierungen umgehbar\u003C/li>\n\u003Cli>Emergency Dialer Exploits für Android 4.x\u003C/li>\n\u003Cli>Erfolgsrate: 40-70% je nach Knox-Version\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"pixelnexus-geräte\">Pixel/Nexus-Geräte\u003C/h3>\n\u003Cul>\n\u003Cli>Bootloader-Unlocking oft möglich\u003C/li>\n\u003Cli>Fastboot-basierte Recovery-Installation\u003C/li>\n\u003Cli>Erfolgsrate: 60-80% bei freigeschaltetem Bootloader\u003C/li>\n\u003C/ul>\n\u003Ch1 id=\"troubleshooting\">Troubleshooting\u003C/h1>\n\u003Ch2 id=\"problem-adb-erkennt-gerät-nicht\">Problem: ADB erkennt Gerät nicht\u003C/h2>\n\u003Ch3 id=\"lösung-usb-treiber-und-berechtigungen\">Lösung: USB-Treiber und Berechtigungen\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Linux: USB-Berechtigungen prüfen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">lsusb\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#B392F0\"> grep\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -i\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> android\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> chmod\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 666\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /dev/bus/usb/XXX/XXX\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># udev-Regeln erstellen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">echo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"18d1\", MODE=\"0666\", GROUP=\"plugdev\"'\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#B392F0\"> sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> tee\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /etc/udev/rules.d/51-android.rules\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> udevadm\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> control\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --reload-rules\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"windows-treiber-installation\">Windows: Treiber-Installation\u003C/h3>\n\u003Col>\n\u003Cli>Geräte-Manager öffnen\u003C/li>\n\u003Cli>Android-Gerät mit Warnsymbol finden\u003C/li>\n\u003Cli>Treiber manuell installieren (Android USB Driver)\u003C/li>\n\u003C/ol>\n\u003Ch2 id=\"problem-verschlüsselte-android-backups\">Problem: Verschlüsselte Android Backups\u003C/h2>\n\u003Ch3 id=\"lösung-android-backup-extractor\">Lösung: Android Backup Extractor\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># ADB Backup Extractor installieren\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/nelenkov/android-backup-extractor.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> android-backup-extractor\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">gradle\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> build\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Backup entschlüsseln\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">java\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -jar\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> abe.jar\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> unpack\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.ab\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> backup.tar\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> [password]\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"problem-unzureichende-berechtigungen-für-datenextraktion\">Problem: Unzureichende Berechtigungen für Datenextraktion\u003C/h2>\n\u003Ch3 id=\"lösung-alternative-extraktionsmethoden\">Lösung: Alternative Extraktionsmethoden\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># AFLogical OSE für begrenzte Extraktion ohne Root\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># WhatsApp Key/DB Extractor für spezifische Apps\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Backup-basierte Extraktion als Fallback\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Custom Recovery für erweiterten Zugang\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">fastboot\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> flash\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> recovery\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> twrp-device.img\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"problem-aleapp-parsing-fehler\">Problem: ALEAPP Parsing-Fehler\u003C/h2>\n\u003Ch3 id=\"lösung-datenformat-probleme-beheben\">Lösung: Datenformat-Probleme beheben\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Log-Dateien prüfen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">python3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> aleapp.py\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -t\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> dir\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -i\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /path/to/data\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -o\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> output\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --debug\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Spezifische Parser deaktivieren\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Manuelle SQLite-Analyse bei Parser-Fehlern\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sqlite3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> database.db\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \".tables\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sqlite3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> database.db\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \".schema table_name\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch1 id=\"erweiterte-techniken\">Erweiterte Techniken\u003C/h1>\n\u003Ch2 id=\"memory-forensics-mit-lime\">Memory Forensics mit LiME\u003C/h2>\n\u003Ch3 id=\"lime-für-arm-devices-kompilieren\">LiME für ARM-Devices kompilieren\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Cross-Compilation Setup\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> ARCH\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">arm\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> CROSS_COMPILE\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">arm-linux-gnueabi-\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> KERNEL_DIR\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">/path/to/kernel/source\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># LiME Module kompilieren\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/504ensicsLabs/LiME.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> LiME/src\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">make\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Memory Dump erstellen (Root erforderlich)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> push\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> lime.ko\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /data/local/tmp/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -c\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"insmod /data/local/tmp/lime.ko 'path=/sdcard/memory.lime format=lime'\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"volatility-analyse-von-android-memory\">Volatility-Analyse von Android Memory\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Memory Dump analysieren\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">python\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> vol.py\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -f\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> memory.lime\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --profile=Linux\u003C/span>\u003Cspan style=\"color:#F97583\"> <\u003C/span>\u003Cspan style=\"color:#9ECBFF\">profil\u003C/span>\u003Cspan style=\"color:#E1E4E8\">e\u003C/span>\u003Cspan style=\"color:#F97583\">>\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> linux.pslist\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">python\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> vol.py\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -f\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> memory.lime\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --profile=Linux\u003C/span>\u003Cspan style=\"color:#F97583\"> <\u003C/span>\u003Cspan style=\"color:#9ECBFF\">profil\u003C/span>\u003Cspan style=\"color:#E1E4E8\">e\u003C/span>\u003Cspan style=\"color:#F97583\">>\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> linux.bash\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">python\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> vol.py\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -f\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> memory.lime\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --profile=Linux\u003C/span>\u003Cspan style=\"color:#F97583\"> <\u003C/span>\u003Cspan style=\"color:#9ECBFF\">profil\u003C/span>\u003Cspan style=\"color:#E1E4E8\">e\u003C/span>\u003Cspan style=\"color:#F97583\">>\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> linux.netstat\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"frida-basierte-runtime-analyse\">FRIDA-basierte Runtime-Analyse\u003C/h2>\n\u003Ch3 id=\"frida-für-kryptographie-hooks\">FRIDA für Kryptographie-Hooks\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"javascript\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">// crypto_hooks.js - SSL/TLS Traffic abfangen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">Java.\u003C/span>\u003Cspan style=\"color:#B392F0\">perform\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#F97583\">function\u003C/span>\u003Cspan style=\"color:#E1E4E8\">() {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\"> var\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> SSLContext \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> Java.\u003C/span>\u003Cspan style=\"color:#B392F0\">use\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"javax.net.ssl.SSLContext\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">);\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> SSLContext.init.\u003C/span>\u003Cspan style=\"color:#B392F0\">overload\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">'[Ljavax.net.ssl.KeyManager;'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">'[Ljavax.net.ssl.TrustManager;'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">'java.security.SecureRandom'\u003C/span>\u003Cspan style=\"color:#E1E4E8\">).\u003C/span>\u003Cspan style=\"color:#B392F0\">implementation\u003C/span>\u003Cspan style=\"color:#F97583\"> =\u003C/span>\u003Cspan style=\"color:#F97583\"> function\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#FFAB70\">keyManagers\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#FFAB70\">trustManagers\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#FFAB70\">secureRandom\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> console.\u003C/span>\u003Cspan style=\"color:#B392F0\">log\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"[+] SSLContext.init() called\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">);\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\"> this\u003C/span>\u003Cspan style=\"color:#E1E4E8\">.\u003C/span>\u003Cspan style=\"color:#B392F0\">init\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(keyManagers, trustManagers, secureRandom);\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\"> };\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">});\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"frida-installation-und-verwendung\">FRIDA Installation und Verwendung\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># FRIDA Server auf Android-Gerät installieren\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> push\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> frida-server\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /data/local/tmp/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -c\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"chmod 755 /data/local/tmp/frida-server\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> su\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -c\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"/data/local/tmp/frida-server &\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Script ausführen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">frida\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -U\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -l\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> crypto_hooks.js\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> com.target.package\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"custom-recovery-und-fastboot-exploits\">Custom Recovery und Fastboot-Exploits\u003C/h2>\n\u003Ch3 id=\"twrp-installation-für-forensischen-zugang\">TWRP Installation für forensischen Zugang\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Bootloader entsperren (Herstellerabhängig)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">fastboot\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> oem\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> unlock\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Oder\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">fastboot\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> flashing\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> unlock\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># TWRP flashen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">fastboot\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> flash\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> recovery\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> twrp-device.img\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">fastboot\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> boot\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> twrp-device.img\u003C/span>\u003Cspan style=\"color:#6A737D\"> # Temporäre Installation\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># In TWRP: ADB-Zugang mit Root-Berechtigungen\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mount\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /system\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mount\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /data\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"partitions-imaging-mit-dd\">Partitions-Imaging mit dd\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Vollständige Partition-Liste\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> cat\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /proc/partitions\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Kritische Partitionen extrahieren\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> dd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> if=/dev/block/bootdevice/by-name/system\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> of=/external_sd/system.img\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> dd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> if=/dev/block/bootdevice/by-name/userdata\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> of=/external_sd/userdata.img\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">adb\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> shell\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> dd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> if=/dev/block/bootdevice/by-name/boot\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> of=/external_sd/boot.img\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"sqlite-forensics-und-gelöschte-daten\">SQLite Forensics und gelöschte Daten\u003C/h2>\n\u003Ch3 id=\"erweiterte-sqlite-analyse\">Erweiterte SQLite-Analyse\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Freelist-Analyse für gelöschte Einträge\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sqlite3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> database.db\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"PRAGMA freelist_count;\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sqlite3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> database.db\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"PRAGMA page_size;\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># WAL-Datei Analyse\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sqlite3\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> database.db\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"PRAGMA wal_checkpoint;\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">strings\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> database.db-wal\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#B392F0\"> grep\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -i\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"search_term\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Undark für Deleted Record Recovery\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">undark\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> database.db\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --freelist\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --export-csv\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"timeline-rekonstruktion\">Timeline-Rekonstruktion\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Autopsy Timeline-Generierung\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Tools → Generate Timeline\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Analyse von MAC-Times (Modified, Accessed, Created)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Plaso Timeline-Tools\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">log2timeline.py\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> timeline.plaso\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /path/to/android/data/\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">psort.py\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -o\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> dynamic\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> timeline.plaso\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"weiterführende-ressourcen\">Weiterführende Ressourcen\u003C/h2>\n\u003Ch3 id=\"dokumentation-und-standards\">Dokumentation und Standards\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https://csrc.nist.gov/pubs/sp/800/101/r1/final\">NIST SP 800-101 Rev. 1 - Mobile Device Forensics Guidelines\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://www.sans.org/cyber-security-courses/advanced-smartphone-mobile-device-forensics/\">SANS FOR585 - Smartphone Forensics\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://github.com/abrignoni/ALEAPP\">ALEAPP GitHub Repository\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://docs.mvt.re/en/latest/\">MVT Documentation\u003C/a>\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"community-und-weiterbildung\">Community und Weiterbildung\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https://sleuthkit.org/autopsy/docs/\">Autopsy User Documentation\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://github.com/impillar/AndroidReferences/blob/master/AndroidTools.md\">Android Forensics References\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://github.com/mesquidar/ForensicsTools\">Digital Forensics Framework Collection\u003C/a>\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"spezialisierte-tools\">Spezialisierte Tools\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https://github.com/bkerler/mtkclient\">MTKClient für MediaTek Exploits\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://github.com/nowsecure/android-forensics\">Android Forensics Framework\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://santoku-linux.com/\">Santoku Linux Mobile Forensics Distribution\u003C/a>\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Cp>\u003Cstrong>Wichtiger Hinweis\u003C/strong>: Diese Anleitung dient ausschließlich für autorisierte forensische Untersuchungen. Stellen Sie sicher, dass Sie über entsprechende rechtliche Befugnisse verfügen, bevor Sie diese Techniken anwenden. Bei Zweifeln konsultieren Sie Rechtsberatung.\u003C/p>",{"headings":252,"localImagePaths":474,"remoteImagePaths":475,"frontmatter":232,"imagePaths":476},[253,254,257,260,261,264,267,269,272,275,278,281,284,287,290,293,294,297,300,303,306,309,312,315,318,321,322,325,328,331,334,337,340,343,346,349,352,355,358,361,362,365,368,371,374,377,380,383,386,389,392,395,396,399,402,405,408,411,414,417,420,423,426,429,432,435,438,441,444,447,450,453,456,459,462,465,468,471],{"depth":43,"slug":44,"text":45},{"depth":47,"slug":255,"text":256},"kernkomponenten-des-open-source-forensik-stacks","Kernkomponenten des Open-Source Forensik-Stacks",{"depth":47,"slug":258,"text":259},"erfolgsraten-nach-gerätealter","Erfolgsraten nach Gerätealter",{"depth":43,"slug":48,"text":49},{"depth":47,"slug":262,"text":263},"sift-workstation-setup","SIFT Workstation Setup",{"depth":51,"slug":265,"text":266},"systemanforderungen","Systemanforderungen",{"depth":51,"slug":268,"text":49},"installation-1",{"depth":47,"slug":270,"text":271},"autopsy-installation","Autopsy Installation",{"depth":51,"slug":273,"text":274},"windows-installation","Windows Installation",{"depth":51,"slug":276,"text":277},"linux-installation","Linux Installation",{"depth":47,"slug":279,"text":280},"essential-tools-installation","Essential Tools Installation",{"depth":51,"slug":282,"text":283},"android-debug-bridge-adb","Android Debug Bridge (ADB)",{"depth":51,"slug":285,"text":286},"aleapp-installation","ALEAPP Installation",{"depth":51,"slug":288,"text":289},"mobile-verification-toolkit-mvt","Mobile Verification Toolkit (MVT)",{"depth":51,"slug":291,"text":292},"andriller-installation","Andriller Installation",{"depth":43,"slug":58,"text":59},{"depth":47,"slug":295,"text":296},"adb-setup-und-gerätevorbereitung","ADB Setup und Gerätevorbereitung",{"depth":51,"slug":298,"text":299},"usb-debugging-aktivieren","USB-Debugging aktivieren",{"depth":51,"slug":301,"text":302},"adb-verbindung-testen","ADB Verbindung testen",{"depth":47,"slug":304,"text":305},"autopsy-projektkonfiguration","Autopsy Projektkonfiguration",{"depth":51,"slug":307,"text":308},"case-setup","Case-Setup",{"depth":51,"slug":310,"text":311},"android-analyzer-module-aktivieren","Android Analyzer Module aktivieren",{"depth":51,"slug":313,"text":314},"hash-algorithmen-konfigurieren","Hash-Algorithmen konfigurieren",{"depth":47,"slug":316,"text":317},"mvt-konfiguration","MVT Konfiguration",{"depth":51,"slug":319,"text":320},"konfigurationsdatei-erstellen","Konfigurationsdatei erstellen",{"depth":43,"slug":70,"text":71},{"depth":47,"slug":323,"text":324},"fall-1-logische-datenextraktion-mit-adb","Fall 1: Logische Datenextraktion mit ADB",{"depth":51,"slug":326,"text":327},"geräteinformationen-sammeln","Geräteinformationen sammeln",{"depth":51,"slug":329,"text":330},"datenbank-extraktion","Datenbank-Extraktion",{"depth":51,"slug":332,"text":333},"whatsapp-datenextraktion","WhatsApp Datenextraktion",{"depth":47,"slug":335,"text":336},"fall-2-android-backup-analyse","Fall 2: Android Backup-Analyse",{"depth":51,"slug":338,"text":339},"vollständiges-backup-erstellen","Vollständiges Backup erstellen",{"depth":51,"slug":341,"text":342},"backup-mit-aleapp-analysieren","Backup mit ALEAPP analysieren",{"depth":47,"slug":344,"text":345},"fall-3-mvt-kompromittierungsanalyse","Fall 3: MVT Kompromittierungsanalyse",{"depth":51,"slug":347,"text":348},"live-geräteanalyse","Live-Geräteanalyse",{"depth":51,"slug":350,"text":351},"ioc-suche-mit-pegasus-indikatoren","IOC-Suche mit Pegasus-Indikatoren",{"depth":47,"slug":353,"text":354},"fall-4-physische-extraktion-root-erforderlich","Fall 4: Physische Extraktion (Root erforderlich)",{"depth":51,"slug":356,"text":357},"device-rooting---mediatek-geräte","Device Rooting - MediaTek Geräte",{"depth":51,"slug":359,"text":360},"vollständiges-memory-dump","Vollständiges Memory Dump",{"depth":43,"slug":79,"text":80},{"depth":47,"slug":363,"text":364},"rechtliche-compliance","Rechtliche Compliance",{"depth":51,"slug":366,"text":367},"dokumentation-und-chain-of-custody","Dokumentation und Chain of Custody",{"depth":51,"slug":369,"text":370},"familiengeräte-und-nachlässe","Familiengeräte und Nachlässe",{"depth":47,"slug":372,"text":373},"technische-best-practices","Technische Best Practices",{"depth":51,"slug":375,"text":376},"hash-integrität-sicherstellen","Hash-Integrität sicherstellen",{"depth":51,"slug":378,"text":379},"sichere-arbeitsumgebung","Sichere Arbeitsumgebung",{"depth":51,"slug":381,"text":382},"qualitätssicherung","Qualitätssicherung",{"depth":47,"slug":384,"text":385},"erfolgsmaximierung-nach-gerätehersteller","Erfolgsmaximierung nach Gerätehersteller",{"depth":51,"slug":387,"text":388},"mediatek-geräte-höchste-erfolgsrate","MediaTek-Geräte (Höchste Erfolgsrate)",{"depth":51,"slug":390,"text":391},"samsung-geräte","Samsung-Geräte",{"depth":51,"slug":393,"text":394},"pixelnexus-geräte","Pixel/Nexus-Geräte",{"depth":43,"slug":82,"text":83},{"depth":47,"slug":397,"text":398},"problem-adb-erkennt-gerät-nicht","Problem: ADB erkennt Gerät nicht",{"depth":51,"slug":400,"text":401},"lösung-usb-treiber-und-berechtigungen","Lösung: USB-Treiber und Berechtigungen",{"depth":51,"slug":403,"text":404},"windows-treiber-installation","Windows: Treiber-Installation",{"depth":47,"slug":406,"text":407},"problem-verschlüsselte-android-backups","Problem: Verschlüsselte Android Backups",{"depth":51,"slug":409,"text":410},"lösung-android-backup-extractor","Lösung: Android Backup Extractor",{"depth":47,"slug":412,"text":413},"problem-unzureichende-berechtigungen-für-datenextraktion","Problem: Unzureichende Berechtigungen für Datenextraktion",{"depth":51,"slug":415,"text":416},"lösung-alternative-extraktionsmethoden","Lösung: Alternative Extraktionsmethoden",{"depth":47,"slug":418,"text":419},"problem-aleapp-parsing-fehler","Problem: ALEAPP Parsing-Fehler",{"depth":51,"slug":421,"text":422},"lösung-datenformat-probleme-beheben","Lösung: Datenformat-Probleme beheben",{"depth":43,"slug":424,"text":425},"erweiterte-techniken","Erweiterte Techniken",{"depth":47,"slug":427,"text":428},"memory-forensics-mit-lime","Memory Forensics mit LiME",{"depth":51,"slug":430,"text":431},"lime-für-arm-devices-kompilieren","LiME für ARM-Devices kompilieren",{"depth":51,"slug":433,"text":434},"volatility-analyse-von-android-memory","Volatility-Analyse von Android Memory",{"depth":47,"slug":436,"text":437},"frida-basierte-runtime-analyse","FRIDA-basierte Runtime-Analyse",{"depth":51,"slug":439,"text":440},"frida-für-kryptographie-hooks","FRIDA für Kryptographie-Hooks",{"depth":51,"slug":442,"text":443},"frida-installation-und-verwendung","FRIDA Installation und Verwendung",{"depth":47,"slug":445,"text":446},"custom-recovery-und-fastboot-exploits","Custom Recovery und Fastboot-Exploits",{"depth":51,"slug":448,"text":449},"twrp-installation-für-forensischen-zugang","TWRP Installation für forensischen Zugang",{"depth":51,"slug":451,"text":452},"partitions-imaging-mit-dd","Partitions-Imaging mit dd",{"depth":47,"slug":454,"text":455},"sqlite-forensics-und-gelöschte-daten","SQLite Forensics und gelöschte Daten",{"depth":51,"slug":457,"text":458},"erweiterte-sqlite-analyse","Erweiterte SQLite-Analyse",{"depth":51,"slug":460,"text":461},"timeline-rekonstruktion","Timeline-Rekonstruktion",{"depth":47,"slug":463,"text":464},"weiterführende-ressourcen","Weiterführende Ressourcen",{"depth":51,"slug":466,"text":467},"dokumentation-und-standards","Dokumentation und Standards",{"depth":51,"slug":469,"text":470},"community-und-weiterbildung","Community und Weiterbildung",{"depth":51,"slug":472,"text":473},"spezialisierte-tools","Spezialisierte Tools",[],[],[],"android-logical-imaging.md","velociraptor",{"id":478,"data":480,"body":493,"filePath":494,"digest":495,"rendered":496,"legacyId":541},{"title":481,"tool_name":482,"description":483,"last_updated":484,"author":16,"difficulty":238,"categories":485,"tags":486,"sections":492,"review_status":34},"Velociraptor – Skalierbare Endpoint-Forensik mit VQL","Velociraptor","Detaillierte Anleitung und Best Practices für Velociraptor – Remote-Forensik der nächsten Generation",["Date","2025-07-20T00:00:00.000Z"],[19,21,22],[25,487,488,489,490,491],"endpoint-monitoring","artifact-extraction","scripting","live-forensics","hunting",{"overview":32,"installation":32,"configuration":32,"usage_examples":32,"best_practices":32,"troubleshooting":32,"advanced_topics":32},"> **⚠️ Hinweis**: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\n\n\n# Übersicht\n\nVelociraptor ist ein Open-Source-Tool zur Endpoint-Forensik mit Fokus auf Skalierbarkeit, Präzision und Geschwindigkeit. Es ermöglicht die zielgerichtete Erfassung und Analyse digitaler Artefakte über eine eigene Query Language – VQL (Velociraptor Query Language). Die Architektur erlaubt remote Zugriff auf tausende Endpoints gleichzeitig, ohne dass vollständige Disk-Images erforderlich sind.\n\n## Hauptmerkmale\n\n- 🌐 Web-basierte Benutzeroberfläche\n- 💡 VQL – mächtige, SQL-ähnliche Abfragesprache\n- 🚀 Hochskalierbare Hunt-Funktionalität\n- 🔍 Artefaktbasierte Sammlung (ohne Full-Image)\n- 🖥️ Plattformunterstützung für Windows, macOS, Linux\n- 📦 Apache 2.0 Lizenz – Open Source\n\nWeitere Infos: [velociraptor.app](https://www.velociraptor.app/) \nProjektspiegel: [raptor.cc24.dev](https://raptor.cc24.dev) \nStatus: ![Status](https://status.mikoshi.de/api/badge/33/status)\n\n---\n\n## Installation\n\n### Voraussetzungen\n\n- Python ≥ 3.9\n- Adminrechte auf dem System\n- Firewall-Freigaben für Webport (Standard: 8000)\n\n### Installation unter Linux/macOS\n\n```bash\nwget https://github.com/Velocidex/velociraptor/releases/latest/download/velociraptor\nchmod +x velociraptor\nsudo mv velociraptor /usr/local/bin/\n````\n\n### Installation unter Windows\n\n1. Download der `.exe` von der [Release-Seite](https://github.com/Velocidex/velociraptor/releases)\n2. Ausführung in PowerShell mit Adminrechten:\n\n ```powershell\n .\\velociraptor.exe config generate > server.config.yaml\n ```\n\n---\n\n## Konfiguration\n\n### Server Setup\n\n1. Generiere die Konfigurationsdatei:\n\n ```bash\n velociraptor config generate > server.config.yaml\n ```\n2. Starte den Server:\n\n ```bash\n velociraptor --config server.config.yaml frontend\n ```\n3. Zugriff über Browser via `https://\u003Chostname>:8000`\n\n### Client Deployment\n\n* MSI/EXE für Windows, oder `deb/rpm` für Linux\n* Unterstützt automatische Registrierung am Server\n* Deployment über GPO, Puppet, Ansible etc. möglich\n\n---\n\n## Verwendungsbeispiele\n\n### 1. Live-Memory-Artefakte sammeln\n\n```vql\nSELECT * FROM Artifact.MemoryInfo()\n```\n\n### 2. Hunt starten auf verdächtige Prozesse\n\n```vql\nSELECT * FROM pslist()\nWHERE Name =~ \"mimikatz|cobaltstrike\"\n```\n\n### 3. Dateiinhalt extrahieren\n\n```vql\nSELECT * FROM glob(globs=\"C:\\\\Users\\\\*\\\\AppData\\\\*.dat\")\n```\n\n---\n\n## Best Practices\n\n* Erstelle eigene Artefakte für unternehmensspezifische Bedrohungsmodelle\n* Verwende \"Notebook\"-Funktion für strukturierte Analysen\n* Nutze \"Labels\", um Endpoints zu organisieren (z. B. `location:Berlin`)\n* Kombiniere Velociraptor mit SIEM/EDR-Systemen über REST API\n\n---\n\n## Troubleshooting\n\n### Problem: Keine Verbindung vom Client zum Server\n\n**Lösung:**\n\n* Ports freigegeben? (Default: 8000/tcp)\n* TLS-Zertifikate korrekt generiert?\n* `server.config.yaml` auf korrekte `public_ip` prüfen\n\n### Problem: Hunt hängt in Warteschleife\n\n**Lösung:**\n\n* Genügend Worker-Prozesse aktiv?\n* Endpoint online?\n* `log_level` auf `debug` setzen und Log analysieren\n\n---\n\n## Weiterführende Themen\n\n* Eigene Artefakte schreiben mit VQL\n* Integration mit ELK Stack\n* Automatisiertes Incident Response Playbook\n* Velociraptor als IR-as-a-Service einsetzen\n\n---\n\n🧠 **Tipp:** Die Lernkurve bei VQL ist steil – aber mit hohem ROI. Testumgebung aufsetzen und mit Community-Artefakten starten.\n\n📚 Weitere Ressourcen:\n\n* [Offizielle Doku](https://docs.velociraptor.app/)\n* [YouTube Channel](https://www.youtube.com/c/VelociraptorDFIR)\n* [Community auf Discord](https://www.velociraptor.app/community/)","src/content/knowledgebase/velociraptor.md","05636b9b97e61d17",{"html":497,"metadata":498},"\u003Cblockquote>\n\u003Cp>\u003Cstrong>⚠️ Hinweis\u003C/strong>: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\u003C/p>\n\u003C/blockquote>\n\u003Ch1 id=\"übersicht\">Übersicht\u003C/h1>\n\u003Cp>Velociraptor ist ein Open-Source-Tool zur Endpoint-Forensik mit Fokus auf Skalierbarkeit, Präzision und Geschwindigkeit. Es ermöglicht die zielgerichtete Erfassung und Analyse digitaler Artefakte über eine eigene Query Language – VQL (Velociraptor Query Language). Die Architektur erlaubt remote Zugriff auf tausende Endpoints gleichzeitig, ohne dass vollständige Disk-Images erforderlich sind.\u003C/p>\n\u003Ch2 id=\"hauptmerkmale\">Hauptmerkmale\u003C/h2>\n\u003Cul>\n\u003Cli>🌐 Web-basierte Benutzeroberfläche\u003C/li>\n\u003Cli>💡 VQL – mächtige, SQL-ähnliche Abfragesprache\u003C/li>\n\u003Cli>🚀 Hochskalierbare Hunt-Funktionalität\u003C/li>\n\u003Cli>🔍 Artefaktbasierte Sammlung (ohne Full-Image)\u003C/li>\n\u003Cli>🖥️ Plattformunterstützung für Windows, macOS, Linux\u003C/li>\n\u003Cli>📦 Apache 2.0 Lizenz – Open Source\u003C/li>\n\u003C/ul>\n\u003Cp>Weitere Infos: \u003Ca href=\"https://www.velociraptor.app/\">velociraptor.app\u003C/a>\u003Cbr>\nProjektspiegel: \u003Ca href=\"https://raptor.cc24.dev\">raptor.cc24.dev\u003C/a>\u003Cbr>\nStatus: \u003Cimg src=\"https://status.mikoshi.de/api/badge/33/status\" alt=\"Status\">\u003C/p>\n\u003Chr>\n\u003Ch2 id=\"installation\">Installation\u003C/h2>\n\u003Ch3 id=\"voraussetzungen\">Voraussetzungen\u003C/h3>\n\u003Cul>\n\u003Cli>Python ≥ 3.9\u003C/li>\n\u003Cli>Adminrechte auf dem System\u003C/li>\n\u003Cli>Firewall-Freigaben für Webport (Standard: 8000)\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"installation-unter-linuxmacos\">Installation unter Linux/macOS\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">wget\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/Velocidex/velociraptor/releases/latest/download/velociraptor\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">chmod\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> +x\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> velociraptor\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">sudo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mv\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> velociraptor\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> /usr/local/bin/\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"installation-unter-windows\">Installation unter Windows\u003C/h3>\n\u003Col>\n\u003Cli>\n\u003Cp>Download der \u003Ccode>.exe\u003C/code> von der \u003Ca href=\"https://github.com/Velocidex/velociraptor/releases\">Release-Seite\u003C/a>\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>Ausführung in PowerShell mit Adminrechten:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"powershell\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">.\\\u003C/span>\u003Cspan style=\"color:#79B8FF\">velociraptor.exe\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> config generate \u003C/span>\u003Cspan style=\"color:#F97583\">>\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> server.config.yaml\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003C/li>\n\u003C/ol>\n\u003Chr>\n\u003Ch2 id=\"konfiguration\">Konfiguration\u003C/h2>\n\u003Ch3 id=\"server-setup\">Server Setup\u003C/h3>\n\u003Col>\n\u003Cli>\n\u003Cp>Generiere die Konfigurationsdatei:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">velociraptor\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> config\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> generate\u003C/span>\u003Cspan style=\"color:#F97583\"> >\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> server.config.yaml\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003C/li>\n\u003Cli>\n\u003Cp>Starte den Server:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">velociraptor\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --config\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> server.config.yaml\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> frontend\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003C/li>\n\u003Cli>\n\u003Cp>Zugriff über Browser via \u003Ccode>https://<hostname>:8000\u003C/code>\u003C/p>\n\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"client-deployment\">Client Deployment\u003C/h3>\n\u003Cul>\n\u003Cli>MSI/EXE für Windows, oder \u003Ccode>deb/rpm\u003C/code> für Linux\u003C/li>\n\u003Cli>Unterstützt automatische Registrierung am Server\u003C/li>\n\u003Cli>Deployment über GPO, Puppet, Ansible etc. möglich\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"verwendungsbeispiele\">Verwendungsbeispiele\u003C/h2>\n\u003Ch3 id=\"1-live-memory-artefakte-sammeln\">1. Live-Memory-Artefakte sammeln\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>SELECT * FROM Artifact.MemoryInfo()\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"2-hunt-starten-auf-verdächtige-prozesse\">2. Hunt starten auf verdächtige Prozesse\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>SELECT * FROM pslist()\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>WHERE Name =~ \"mimikatz|cobaltstrike\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"3-dateiinhalt-extrahieren\">3. Dateiinhalt extrahieren\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>SELECT * FROM glob(globs=\"C:\\\\Users\\\\*\\\\AppData\\\\*.dat\")\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Chr>\n\u003Ch2 id=\"best-practices\">Best Practices\u003C/h2>\n\u003Cul>\n\u003Cli>Erstelle eigene Artefakte für unternehmensspezifische Bedrohungsmodelle\u003C/li>\n\u003Cli>Verwende “Notebook”-Funktion für strukturierte Analysen\u003C/li>\n\u003Cli>Nutze “Labels”, um Endpoints zu organisieren (z. B. \u003Ccode>location:Berlin\u003C/code>)\u003C/li>\n\u003Cli>Kombiniere Velociraptor mit SIEM/EDR-Systemen über REST API\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"troubleshooting\">Troubleshooting\u003C/h2>\n\u003Ch3 id=\"problem-keine-verbindung-vom-client-zum-server\">Problem: Keine Verbindung vom Client zum Server\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Ports freigegeben? (Default: 8000/tcp)\u003C/li>\n\u003Cli>TLS-Zertifikate korrekt generiert?\u003C/li>\n\u003Cli>\u003Ccode>server.config.yaml\u003C/code> auf korrekte \u003Ccode>public_ip\u003C/code> prüfen\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"problem-hunt-hängt-in-warteschleife\">Problem: Hunt hängt in Warteschleife\u003C/h3>\n\u003Cp>\u003Cstrong>Lösung:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Genügend Worker-Prozesse aktiv?\u003C/li>\n\u003Cli>Endpoint online?\u003C/li>\n\u003Cli>\u003Ccode>log_level\u003C/code> auf \u003Ccode>debug\u003C/code> setzen und Log analysieren\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2 id=\"weiterführende-themen\">Weiterführende Themen\u003C/h2>\n\u003Cul>\n\u003Cli>Eigene Artefakte schreiben mit VQL\u003C/li>\n\u003Cli>Integration mit ELK Stack\u003C/li>\n\u003Cli>Automatisiertes Incident Response Playbook\u003C/li>\n\u003Cli>Velociraptor als IR-as-a-Service einsetzen\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Cp>🧠 \u003Cstrong>Tipp:\u003C/strong> Die Lernkurve bei VQL ist steil – aber mit hohem ROI. Testumgebung aufsetzen und mit Community-Artefakten starten.\u003C/p>\n\u003Cp>📚 Weitere Ressourcen:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https://docs.velociraptor.app/\">Offizielle Doku\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://www.youtube.com/c/VelociraptorDFIR\">YouTube Channel\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"https://www.velociraptor.app/community/\">Community auf Discord\u003C/a>\u003C/li>\n\u003C/ul>",{"headings":499,"localImagePaths":538,"remoteImagePaths":539,"frontmatter":480,"imagePaths":540},[500,501,504,505,506,509,512,513,516,519,520,523,526,529,530,531,534,537],{"depth":43,"slug":44,"text":45},{"depth":47,"slug":502,"text":503},"hauptmerkmale","Hauptmerkmale",{"depth":47,"slug":48,"text":49},{"depth":51,"slug":52,"text":53},{"depth":51,"slug":507,"text":508},"installation-unter-linuxmacos","Installation unter Linux/macOS",{"depth":51,"slug":510,"text":511},"installation-unter-windows","Installation unter Windows",{"depth":47,"slug":58,"text":59},{"depth":51,"slug":514,"text":515},"server-setup","Server Setup",{"depth":51,"slug":517,"text":518},"client-deployment","Client Deployment",{"depth":47,"slug":70,"text":71},{"depth":51,"slug":521,"text":522},"1-live-memory-artefakte-sammeln","1. Live-Memory-Artefakte sammeln",{"depth":51,"slug":524,"text":525},"2-hunt-starten-auf-verdächtige-prozesse","2. Hunt starten auf verdächtige Prozesse",{"depth":51,"slug":527,"text":528},"3-dateiinhalt-extrahieren","3. Dateiinhalt extrahieren",{"depth":47,"slug":79,"text":80},{"depth":47,"slug":82,"text":83},{"depth":51,"slug":532,"text":533},"problem-keine-verbindung-vom-client-zum-server","Problem: Keine Verbindung vom Client zum Server",{"depth":51,"slug":535,"text":536},"problem-hunt-hängt-in-warteschleife","Problem: Hunt hängt in Warteschleife",{"depth":47,"slug":94,"text":95},[],[],[],"velociraptor.md","regular-expressions-regex",{"id":542,"data":544,"body":558,"filePath":559,"digest":560,"rendered":561,"legacyId":590},{"title":545,"tool_name":546,"description":547,"last_updated":548,"author":16,"difficulty":17,"categories":549,"tags":551,"sections":557,"review_status":34},"Regular Expressions (Regex) – Musterbasierte Textanalyse","Regular Expressions (Regex)","Pattern matching language für Suche, Extraktion und Manipulation von Text in forensischen Analysen.",["Date","2025-07-20T00:00:00.000Z"],[19,21,22,550],"fraud-investigation",[552,553,554,555,556],"pattern-matching","text-processing","log-analysis","string-manipulation","search-algorithms",{"overview":32,"installation":33,"configuration":33,"usage_examples":32,"best_practices":32,"troubleshooting":33,"advanced_topics":32},"> **⚠️ Hinweis**: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\n\n\n# Übersicht\n\n**Regular Expressions (Regex)** sind ein leistungsfähiges Werkzeug zur Erkennung, Extraktion und Transformation von Zeichenfolgen anhand vordefinierter Muster. In der digitalen Forensik sind Regex-Ausdrücke unverzichtbar: Sie helfen beim Auffinden von IP-Adressen, Hash-Werten, Dateipfaden, Malware-Signaturen oder Kreditkartennummern in großen Mengen unstrukturierter Daten wie Logdateien, Netzwerktraces oder Memory Dumps.\n\nRegex ist nicht auf eine bestimmte Plattform oder Software beschränkt – es wird in nahezu allen gängigen Programmiersprachen, Texteditoren und forensischen Tools unterstützt.\n\n## Verwendungsbeispiele\n\n### 1. IP-Adressen extrahieren\n\n```regex\n\\b(?:\\d{1,3}\\.){3}\\d{1,3}\\b\n````\n\nVerwendung:\n\n* Finden von IP-Adressen in Firewall-Logs oder Packet Captures.\n* Beispiel-Zeile:\n\n ```\n Connection from 192.168.1.101 to port 443 established\n ```\n\n### 2. E-Mail-Adressen identifizieren\n\n```regex\n[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}\n```\n\nVerwendung:\n\n* Erkennung von kompromittierten Accounts in Phishing-E-Mails.\n* Analyse von Useraktivitäten oder Kommunikationsverläufen.\n\n### 3. Hash-Werte erkennen (z. B. SHA-256)\n\n```regex\n\\b[A-Fa-f0-9]{64}\\b\n```\n\nVerwendung:\n\n* Extraktion von Malware-Hashes aus Memory Dumps oder YARA-Logs.\n\n### 4. Zeitstempel in Logdateien extrahieren\n\n```regex\n\\d{4}-\\d{2}-\\d{2}[ T]\\d{2}:\\d{2}:\\d{2}\n```\n\nVerwendung:\n\n* Zeitsensitive Korrelationsanalysen (z. B. bei Intrusion Detection oder Timeline-Rekonstruktionen).\n\n## Best Practices\n\n* **Regex testen**: Nutze Plattformen wie [regexr.com](https://regexr.com/) oder [regex101.com](https://regex101.com/) zur Validierung.\n* **Performance beachten**: Komplexe Ausdrücke können ineffizient sein und Systeme verlangsamen – verwende Lazy Quantifiers (`*?`, `+?`) bei Bedarf.\n* **Escape-Zeichen korrekt anwenden**: Spezielle Zeichen wie `.` oder `\\` müssen bei Bedarf mit `\\\\` oder `\\.` maskiert werden.\n* **Portabilität prüfen**: Unterschiedliche Regex-Engines (z. B. Python `re`, PCRE, JavaScript) interpretieren manche Syntax leicht unterschiedlich.\n* **Lesbarkeit fördern**: Verwende benannte Gruppen (`(?P\u003Cname>...)`) und Kommentare (`(?x)`), um reguläre Ausdrücke besser wartbar zu machen.\n\n## Weiterführende Themen\n\n### Lookaheads und Lookbehinds\n\nMit **Lookaheads** (`(?=...)`) und **Lookbehinds** (`(?\u003C=...)`) können Bedingungen formuliert werden, ohne dass der Text Teil des Matchs wird.\n\nBeispiel: Alle `.exe`-Dateinamen **ohne** das Wort `safe` davor matchen:\n\n```regex\n(?\u003C!safe\\s)[\\w-]+\\.exe\n```\n\n### Regex in Forensik-Tools\n\n* **YARA**: Unterstützt Regex zur Erstellung von Malware-Signaturen.\n* **Wireshark**: Filtert Payloads anhand von Regex-ähnlicher Syntax.\n* **Splunk & ELK**: Verwenden Regex für Logparsing und Visualisierung.\n* **Volatility Plugins**: Extrahieren Artefakte mit Regex-basierten Scans.\n\n---\n\n> 🔤 **Regex ist ein universelles Werkzeug für Analysten, Ermittler und Entwickler, um versteckte Informationen schnell und flexibel aufzuspüren.**\n>\n> Nutze es überall dort, wo Textdaten eine Rolle spielen.","src/content/knowledgebase/regular-expressions-regex.md","247bcf48ebdc9ba0",{"html":562,"metadata":563},"\u003Cblockquote>\n\u003Cp>\u003Cstrong>⚠️ Hinweis\u003C/strong>: Dies ist ein vorläufiger, KI-generierter Knowledgebase-Eintrag. Wir freuen uns über Verbesserungen und Ergänzungen durch die Community!\u003C/p>\n\u003C/blockquote>\n\u003Ch1 id=\"übersicht\">Übersicht\u003C/h1>\n\u003Cp>\u003Cstrong>Regular Expressions (Regex)\u003C/strong> sind ein leistungsfähiges Werkzeug zur Erkennung, Extraktion und Transformation von Zeichenfolgen anhand vordefinierter Muster. In der digitalen Forensik sind Regex-Ausdrücke unverzichtbar: Sie helfen beim Auffinden von IP-Adressen, Hash-Werten, Dateipfaden, Malware-Signaturen oder Kreditkartennummern in großen Mengen unstrukturierter Daten wie Logdateien, Netzwerktraces oder Memory Dumps.\u003C/p>\n\u003Cp>Regex ist nicht auf eine bestimmte Plattform oder Software beschränkt – es wird in nahezu allen gängigen Programmiersprachen, Texteditoren und forensischen Tools unterstützt.\u003C/p>\n\u003Ch2 id=\"verwendungsbeispiele\">Verwendungsbeispiele\u003C/h2>\n\u003Ch3 id=\"1-ip-adressen-extrahieren\">1. IP-Adressen extrahieren\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"regex\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">\\b(?:\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{1,3}\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\.)\u003C/span>\u003Cspan style=\"color:#F97583\">{3}\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{1,3}\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\b\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Verwendung:\u003C/p>\n\u003Cul>\n\u003Cli>\n\u003Cp>Finden von IP-Adressen in Firewall-Logs oder Packet Captures.\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>Beispiel-Zeile:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>Connection from 192.168.1.101 to port 443 established\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"2-e-mail-adressen-identifizieren\">2. E-Mail-Adressen identifizieren\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"regex\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">[a-zA-Z0-9._%+-]\u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#DBEDFF\">@\u003C/span>\u003Cspan style=\"color:#79B8FF\">[a-zA-Z0-9.-]\u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\.[a-zA-Z]\u003C/span>\u003Cspan style=\"color:#F97583\">{2,}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Verwendung:\u003C/p>\n\u003Cul>\n\u003Cli>Erkennung von kompromittierten Accounts in Phishing-E-Mails.\u003C/li>\n\u003Cli>Analyse von Useraktivitäten oder Kommunikationsverläufen.\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"3-hash-werte-erkennen-zb-sha-256\">3. Hash-Werte erkennen (z. B. SHA-256)\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"regex\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">\\b[A-Fa-f0-9]\u003C/span>\u003Cspan style=\"color:#F97583\">{64}\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\b\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Verwendung:\u003C/p>\n\u003Cul>\n\u003Cli>Extraktion von Malware-Hashes aus Memory Dumps oder YARA-Logs.\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"4-zeitstempel-in-logdateien-extrahieren\">4. Zeitstempel in Logdateien extrahieren\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"regex\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{4}\u003C/span>\u003Cspan style=\"color:#DBEDFF\">-\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{2}\u003C/span>\u003Cspan style=\"color:#DBEDFF\">-\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{2}\u003C/span>\u003Cspan style=\"color:#79B8FF\">[ T]\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{2}\u003C/span>\u003Cspan style=\"color:#DBEDFF\">:\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{2}\u003C/span>\u003Cspan style=\"color:#DBEDFF\">:\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\d\u003C/span>\u003Cspan style=\"color:#F97583\">{2}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Verwendung:\u003C/p>\n\u003Cul>\n\u003Cli>Zeitsensitive Korrelationsanalysen (z. B. bei Intrusion Detection oder Timeline-Rekonstruktionen).\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"best-practices\">Best Practices\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Regex testen\u003C/strong>: Nutze Plattformen wie \u003Ca href=\"https://regexr.com/\">regexr.com\u003C/a> oder \u003Ca href=\"https://regex101.com/\">regex101.com\u003C/a> zur Validierung.\u003C/li>\n\u003Cli>\u003Cstrong>Performance beachten\u003C/strong>: Komplexe Ausdrücke können ineffizient sein und Systeme verlangsamen – verwende Lazy Quantifiers (\u003Ccode>*?\u003C/code>, \u003Ccode>+?\u003C/code>) bei Bedarf.\u003C/li>\n\u003Cli>\u003Cstrong>Escape-Zeichen korrekt anwenden\u003C/strong>: Spezielle Zeichen wie \u003Ccode>.\u003C/code> oder \u003Ccode>\\\u003C/code> müssen bei Bedarf mit \u003Ccode>\\\\\u003C/code> oder \u003Ccode>\\.\u003C/code> maskiert werden.\u003C/li>\n\u003Cli>\u003Cstrong>Portabilität prüfen\u003C/strong>: Unterschiedliche Regex-Engines (z. B. Python \u003Ccode>re\u003C/code>, PCRE, JavaScript) interpretieren manche Syntax leicht unterschiedlich.\u003C/li>\n\u003Cli>\u003Cstrong>Lesbarkeit fördern\u003C/strong>: Verwende benannte Gruppen (\u003Ccode>(?P<name>...)\u003C/code>) und Kommentare (\u003Ccode>(?x)\u003C/code>), um reguläre Ausdrücke besser wartbar zu machen.\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"weiterführende-themen\">Weiterführende Themen\u003C/h2>\n\u003Ch3 id=\"lookaheads-und-lookbehinds\">Lookaheads und Lookbehinds\u003C/h3>\n\u003Cp>Mit \u003Cstrong>Lookaheads\u003C/strong> (\u003Ccode>(?=...)\u003C/code>) und \u003Cstrong>Lookbehinds\u003C/strong> (\u003Ccode>(?<=...)\u003C/code>) können Bedingungen formuliert werden, ohne dass der Text Teil des Matchs wird.\u003C/p>\n\u003Cp>Beispiel: Alle \u003Ccode>.exe\u003C/code>-Dateinamen \u003Cstrong>ohne\u003C/strong> das Wort \u003Ccode>safe\u003C/code> davor matchen:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"regex\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">(?<!\u003C/span>\u003Cspan style=\"color:#DBEDFF\">safe\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\s\u003C/span>\u003Cspan style=\"color:#F97583\">)\u003C/span>\u003Cspan style=\"color:#79B8FF\">[\\w-]\u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#79B8FF\">\\.\u003C/span>\u003Cspan style=\"color:#DBEDFF\">exe\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"regex-in-forensik-tools\">Regex in Forensik-Tools\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Cstrong>YARA\u003C/strong>: Unterstützt Regex zur Erstellung von Malware-Signaturen.\u003C/li>\n\u003Cli>\u003Cstrong>Wireshark\u003C/strong>: Filtert Payloads anhand von Regex-ähnlicher Syntax.\u003C/li>\n\u003Cli>\u003Cstrong>Splunk & ELK\u003C/strong>: Verwenden Regex für Logparsing und Visualisierung.\u003C/li>\n\u003Cli>\u003Cstrong>Volatility Plugins\u003C/strong>: Extrahieren Artefakte mit Regex-basierten Scans.\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Cblockquote>\n\u003Cp>🔤 \u003Cstrong>Regex ist ein universelles Werkzeug für Analysten, Ermittler und Entwickler, um versteckte Informationen schnell und flexibel aufzuspüren.\u003C/strong>\u003C/p>\n\u003Cp>Nutze es überall dort, wo Textdaten eine Rolle spielen.\u003C/p>\n\u003C/blockquote>",{"headings":564,"localImagePaths":587,"remoteImagePaths":588,"frontmatter":544,"imagePaths":589},[565,566,567,570,573,576,579,580,581,584],{"depth":43,"slug":44,"text":45},{"depth":47,"slug":70,"text":71},{"depth":51,"slug":568,"text":569},"1-ip-adressen-extrahieren","1. IP-Adressen extrahieren",{"depth":51,"slug":571,"text":572},"2-e-mail-adressen-identifizieren","2. E-Mail-Adressen identifizieren",{"depth":51,"slug":574,"text":575},"3-hash-werte-erkennen-zb-sha-256","3. Hash-Werte erkennen (z. B. SHA-256)",{"depth":51,"slug":577,"text":578},"4-zeitstempel-in-logdateien-extrahieren","4. Zeitstempel in Logdateien extrahieren",{"depth":47,"slug":79,"text":80},{"depth":47,"slug":94,"text":95},{"depth":51,"slug":582,"text":583},"lookaheads-und-lookbehinds","Lookaheads und Lookbehinds",{"depth":51,"slug":585,"text":586},"regex-in-forensik-tools","Regex in Forensik-Tools",[],[],[],"regular-expressions-regex.md"] \ No newline at end of file diff --git a/.astro/settings.json b/.astro/settings.json index fdc9041..8f5d41e 100644 --- a/.astro/settings.json +++ b/.astro/settings.json @@ -1,5 +1,5 @@ { "_variables": { - "lastUpdateCheck": 1752478949435 + "lastUpdateCheck": 1753528124767 } } \ No newline at end of file diff --git a/.env.example b/.env.example index 1af7bd7..6ff8470 100644 --- a/.env.example +++ b/.env.example @@ -1,18 +1,39 @@ -# AI Configuration -AI_API_ENDPOINT=https://aiendpoint.org -AI_API_KEY=your_apikey_here -AI_MODEL='ai_model_name_here' +# =========================================== +# ForensicPathways Environment Configuration +# =========================================== -# OIDC Configuration -OIDC_ENDPOINT=https://oidc-provider.org -OIDC_CLIENT_ID=your_oidc_client_id -OIDC_CLIENT_SECRET=your_oidc_client_secret -AUTH_SECRET=your_super_secret_jwt_key_that_should_be_at_least_32_characters_long_for_security +# Authentication & OIDC (Required) +AUTH_SECRET=change-this-to-a-strong-secret-key-in-production +OIDC_ENDPOINT=https://your-oidc-provider.com +OIDC_CLIENT_ID=your-oidc-client-id +OIDC_CLIENT_SECRET=your-oidc-client-secret -AUTHENTICATION_NECESSARY=false # Always set this to true in prod +# Auth Scopes - set to true in prod +AUTHENTICATION_NECESSARY_CONTRIBUTIONS=true +AUTHENTICATION_NECESSARY_AI=true +# Application Configuration (Required) +PUBLIC_BASE_URL=https://your-domain.com +NODE_ENV=production -# Application -PUBLIC_BASE_URL=http://localhost:4321 +# AI Service Configuration (Required for AI features) +AI_MODEL=mistral-large-latest +AI_API_ENDPOINT=https://api.mistral.ai +AI_API_KEY=your-mistral-api-key +AI_RATE_LIMIT_DELAY_MS=1000 -NODE_ENV=development \ No newline at end of file +# Git Integration (Required for contributions) +GIT_REPO_URL=https://git.cc24.dev/mstoeck3/cc24-hub +GIT_PROVIDER=gitea +GIT_API_ENDPOINT=https://git.cc24.dev/api/v1 +GIT_API_TOKEN=your-git-api-token + +# File Upload Configuration (Optional) +LOCAL_UPLOAD_PATH=./public/uploads + +# Nextcloud Integration (Optional) +NEXTCLOUD_ENDPOINT=https://your-nextcloud.com +NEXTCLOUD_USERNAME=your-username +NEXTCLOUD_PASSWORD=your-password +NEXTCLOUD_UPLOAD_PATH=/kb-media +NEXTCLOUD_PUBLIC_URL=https://your-nextcloud.com/s/ \ No newline at end of file diff --git a/.gitignore b/.gitignore index 614f941..3aed3a2 100644 --- a/.gitignore +++ b/.gitignore @@ -81,3 +81,6 @@ src/_data/config.local.yaml tmp/ temp/ .astro/data-store.json +.astro/settings.json +.astro/data-store.json +.astro/content.d.ts diff --git a/README.md b/README.md index 04f95c1..1ff4a7e 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,78 @@ -# CC24-Hub +# ForensicPathways -Ein kuratiertes Verzeichnis für digitale Forensik- und Incident-Response-Tools mit KI-gestützten Empfehlungen, entwickelt für die Seminargruppe CC24-w1. +Ein kuratiertes Verzeichnis für Digital Forensics und Incident Response (DFIR) Tools, Methoden und Konzepte mit KI-gestützten Workflow-Empfehlungen. -## 🎯 Projektübersicht +## ✨ Funktionen -CC24-Hub bietet eine strukturierte Übersicht über bewährte DFIR-Tools, -Methoden und -Konzepte mit intelligenten Empfehlungsfunktionen. Das Projekt orientiert sich am NIST-Framework (SP 800-86) und kategorisiert nach forensischen Domänen und Untersuchungsphasen. +### 🎯 Hauptansichten +- **Kachelansicht (Grid View):** Übersichtliche Kartenansicht aller Tools/Methoden +- **Matrix-Ansicht:** Interaktive Matrix nach forensischen Domänen und Untersuchungsphasen (NIST Framework) +- **KI-Empfehlungen:** AI-gestützte Workflow-Empfehlungen basierend auf Szenario-Beschreibungen -### Hauptfunktionen +### 🔍 Navigation & Filterung +- **Tag-System:** Intelligente Filterung nach Kategorien und Eigenschaften +- **Volltext-Suche:** Durchsuchen von Namen, Beschreibungen und Tags +- **Domain/Phase-Filter:** Filterung nach forensischen Bereichen und Ermittlungsphasen -- **KI-gestützte Empfehlungen**: Workflow- und Tool-Vorschläge basierend auf forensischen Szenarien -- **Drei Kategorien**: Software-Tools, forensische Methoden UND Grundlagenkonzepte -- **Matrix-Ansicht**: Visualisierung nach Domänen × Prozess-Phasen -- **Erweiterte Filter**: Suche nach Name, Tags, Domäne, Phase, Lizenz -- **CC24-Server Integration**: Direkte SSO-Links zu gehosteten Instanzen -- **Knowledgebase**: Erweiterte Dokumentation mit praktischen Erkenntnissen -- **Konzept-Verlinkung**: Automatische Verknüpfung zwischen Tools und Grundlagenkonzepten -- **Status-Monitoring**: Live-Überwachung verfügbarer Services -- **Responsive Design**: Dark/Light Mode, Mobile-optimiert +### 📚 Inhaltstypen +- **Software/Tools:** Open Source und proprietäre forensische Software +- **Methoden:** Bewährte forensische Verfahren und Prozesse +- **Konzepte:** Grundlegendes Fachwissen und theoretische Grundlagen -## 🛠️ Technischer Stack +### 📖 Knowledgebase +- **Erweiterte Dokumentation:** Detaillierte Artikel zu Tools und Methoden +- **Praktische Anleitungen:** Installation, Konfiguration und Best Practices +- **Markdown-basiert:** Einfache Erstellung und Wartung von Inhalten -- **Framework**: [Astro](https://astro.build/) mit Server-Side Rendering -- **Backend**: Node.js mit API-Routen für KI und Authentifizierung -- **Styling**: Vanilla CSS mit CSS Custom Properties -- **Datenformat**: YAML für Tool-/Methoden-/Konzept-Definitionen -- **KI-Integration**: Mistral AI über OpenAI-kompatible API -- **Authentifizierung**: OIDC (OpenID Connect) mit JWT-Sessions -- **Node.js**: >=18.0.0 +### 🤝 Contribution-System +- **Tool/Methoden-Beiträge:** Webformular für neue Einträge +- **Knowledgebase-Artikel:** Artikel-Editor mit Datei-Upload +- **Git-Integration:** Automatische Issue-Erstellung für Review-Prozess +- **File-Management:** Nextcloud-Integration für Medien-Uploads -## 🚀 Installation & Deployment +### 🔐 Authentifizierung +- **OIDC-Integration:** Single Sign-On mit OpenID Connect +- **Berechtigungssteuerung:** Schutz für AI-Features und Contribution-System +- **Session-Management:** Sichere JWT-basierte Sessions + +## 🛠 Technische Grundlage + +- **Framework:** Astro 4.x mit TypeScript +- **Styling:** CSS Custom Properties mit Dark/Light Mode +- **API:** Node.js Backend mit Astro API Routes +- **Datenbank:** YAML-basierte Konfiguration (tools.yaml) + +## 📋 Voraussetzungen + +- **Node.js:** Version 18.x oder höher +- **npm:** Version 8.x oder höher +- **Nginx:** Für Reverse Proxy (Produktion) + +## 🔧 Externe Abhängigkeiten (Optional) + +### OIDC Provider +- **Zweck:** Benutzerauthentifizierung +- **Beispiel:** Nextcloud, Keycloak, Auth0 +- **Konfiguration:** `OIDC_ENDPOINT`, `OIDC_CLIENT_ID`, `OIDC_CLIENT_SECRET` + +### Nextcloud +- **Zweck:** File-Upload für Knowledgebase-Beiträge +- **Features:** Medien-Management, öffentliche Links +- **Konfiguration:** `NEXTCLOUD_ENDPOINT`, `NEXTCLOUD_USERNAME`, `NEXTCLOUD_PASSWORD` + +### AI Service (Mistral/OpenAI-kompatibel) +- **Zweck:** KI-gestützte Tool-Empfehlungen +- **Konfiguration:** `AI_API_ENDPOINT`, `AI_API_KEY`, `AI_MODEL` + +### Uptime Kuma +- **Zweck:** Status-Monitoring für gehostete Services +- **Integration:** Status-Badges in der Service-Übersicht + +### Git Provider (Gitea/GitHub/GitLab) +- **Zweck:** Issue-Erstellung für Contributions +- **Konfiguration:** `GIT_PROVIDER`, `GIT_API_ENDPOINT`, `GIT_API_TOKEN` + +## 🚀 Installation ### Lokale Entwicklung @@ -40,6 +84,10 @@ cd cc24-hub # Dependencies installieren npm install +# Umgebungsvariablen konfigurieren +cp .env.example .env +# .env bearbeiten (siehe Konfiguration unten) + # Development Server starten npm run dev ``` @@ -48,150 +96,128 @@ Die Seite ist dann unter `http://localhost:4321` verfügbar. ### Produktions-Deployment -#### Voraussetzungen +#### 1. System vorbereiten -- Ubuntu/Debian server -- Node.js 18+ -- Nginx -- Domain -- SSL Zertifikat +```bash +# System-Updates +sudo apt update && sudo apt upgrade -y -#### Installationsschritte +# Node.js installieren (Ubuntu/Debian) +curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - +sudo apt-get install -y nodejs -##### 1. Vorbereitung +# Nginx installieren +sudo apt install nginx -y + +# Systemd für Service-Management +sudo systemctl enable nginx +``` + +#### 2. Anwendung installieren ```bash # Klonen des Repositorys -git clone https://git.cc24.dev/mstoeck3/cc24-hub -cd cc24-hub +sudo git clone https://git.cc24.dev/mstoeck3/cc24-hub /opt/cc24-hub +cd /opt/cc24-hub # Abhängigkeiten installieren -npm install +sudo npm install -# Production-Build anstoßen -npm run build -``` - -##### 2. Webroot vorbereiten - -```bash -# Webroot erstellen und Berechtigungen setzen -sudo mkdir -p /var/www/cc24-hub -sudo chown -R $USER:$USER /var/www/cc24-hub - -# Build in Webroot kopieren -sudo cp -r ./dist/* /var/www/cc24-hub/ -sudo cp ./src/data/tools.yaml /var/www/cc24-hub/src/data/ -sudo cp package.json /var/www/cc24-hub/ - -# Prod-Abhängigkeiten installieren -cd /var/www/cc24-hub -npm install --omit=dev +# Production-Build erstellen +sudo npm run build # Berechtigungen setzen -sudo chown -R www-data:www-data /var/www/cc24-hub +sudo chown -R www-data:www-data /opt/cc24-hub ``` -##### 3. Umgebungsvariablen setzen +#### 3. Umgebungsvariablen konfigurieren -Erstelle `/var/www/cc24-hub/.env`: +Erstelle `/opt/cc24-hub/.env`: ```bash -# AI Konfiguration -AI_API_ENDPOINT=https://llm.mikoshi.de # hier geeigneten Endpunkt setzen -AI_API_KEY=your_ai_api_key -AI_MODEL=mistral/mistral-small-latest # hier geeignetes KI-Modell wählen +# === GRUNDKONFIGURATION === +NODE_ENV=production +PUBLIC_BASE_URL=https://ihre-domain.de -# Authentifizierung ("false" setzen für Tests, oder wenn kostenlose KI verwendet wird) +# === AI-KONFIGURATION (Optional) === +AI_API_ENDPOINT=https://api.mistral.ai/v1 +AI_API_KEY=your_mistral_api_key +AI_MODEL=mistral-small-latest +AI_RATE_LIMIT_DELAY_MS=2000 + +# === AUTHENTIFIZIERUNG === AUTHENTICATION_NECESSARY=true -OIDC_ENDPOINT=https://cloud.cc24.dev -OIDC_CLIENT_ID=your_oidc_client_id -OIDC_CLIENT_SECRET=your_oidc_client_secret -AUTH_SECRET=your_super_secret_jwt_key_min_32_chars +OIDC_ENDPOINT=https://ihr-oidc-provider.de +OIDC_CLIENT_ID=cc24-hub-client +OIDC_CLIENT_SECRET=your_super_secret_client_secret +AUTH_SECRET=your_jwt_secret_min_32_characters_long -# Public Configuration -PUBLIC_BASE_URL=https://your-domain.com # hier die URL setzen, mit der von außen zugegriffen wird +# === NEXTCLOUD (Optional) === +NEXTCLOUD_ENDPOINT=https://ihre-nextcloud.de +NEXTCLOUD_USERNAME=cc24-hub-user +NEXTCLOUD_PASSWORD=nextcloud_app_password +NEXTCLOUD_UPLOAD_PATH=/kb-media +NEXTCLOUD_PUBLIC_URL=https://ihre-nextcloud.de/s + +# === GIT-INTEGRATION (Optional) === +GIT_PROVIDER=gitea +GIT_API_ENDPOINT=https://ihr-git-server.de/api/v1 +GIT_API_TOKEN=your_git_api_token +GIT_REPO_URL=https://ihr-git-server.de/user/cc24-hub + +# === UPLOAD-KONFIGURATION === +LOCAL_UPLOAD_PATH=/opt/cc24-hub/public/uploads ``` ```bash -# .env sichern -sudo chmod 600 /var/www/cc24-hub/.env -sudo chown www-data:www-data /var/www/cc24-hub/.env +# Berechtigungen sichern +sudo chmod 600 /opt/cc24-hub/.env +sudo chown www-data:www-data /opt/cc24-hub/.env ``` -##### 4. Systemd-Service erstellen - -Create `/etc/systemd/system/cc24-hub.service`: - -```ini -[Unit] -Description=CC24-Hub DFIR Tool Directory -After=network.target -Wants=network.target - -[Service] -Type=simple -User=www-data -Group=www-data -WorkingDirectory=/var/www/cc24-hub -ExecStart=/usr/bin/node server/entry.mjs -Restart=always -RestartSec=5 -StartLimitInterval=60s -StartLimitBurst=3 - -# Environment -Environment=NODE_ENV=production -Environment=PORT=3000 - -# Security -NoNewPrivileges=true -PrivateTmp=true -ProtectSystem=strict -ReadWritePaths=/var/www/cc24-hub - -# Logging -StandardOutput=journal -StandardError=journal -SyslogIdentifier=cc24-hub - -[Install] -WantedBy=multi-user.target -``` - -##### 5. Nginx Reverse Proxy konfigurieren +#### 4. Nginx konfigurieren Erstelle `/etc/nginx/sites-available/cc24-hub`: ```nginx server { listen 80; - server_name your-domain.com; + server_name ihre-domain.de; + + # Redirect HTTP to HTTPS return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; - server_name your-domain.com; - - # SSL Configuration (adjust paths for your certificates) - ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem; + server_name ihre-domain.de; + + # SSL Konfiguration (Let's Encrypt empfohlen) + ssl_certificate /etc/letsencrypt/live/ihre-domain.de/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/ihre-domain.de/privkey.pem; - # SSL Security - ssl_protocols TLSv1.2 TLSv1.3; - ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384; - ssl_prefer_server_ciphers off; - # Security Headers add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; - add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; - - # Proxy to Node.js application + add_header Referrer-Policy "strict-origin-when-cross-origin"; + + # Static Files location / { - proxy_pass http://localhost:3000; + try_files $uri $uri/ @nodejs; + root /opt/cc24-hub/dist; + index index.html; + + # Cache static assets + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff2?|ttf)$ { + expires 1y; + add_header Cache-Control "public, immutable"; + } + } + + # API Routes to Node.js + location @nodejs { + proxy_pass http://localhost:4321; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; @@ -203,360 +229,248 @@ server { proxy_read_timeout 300s; proxy_connect_timeout 75s; } - - # Optional: Serve static assets directly (performance optimization) - location /_astro/ { - proxy_pass http://localhost:3000; - expires 1y; - add_header Cache-Control "public, immutable"; - } + + # Upload limit + client_max_body_size 50M; } ``` -##### 6. Daemon starten und Autostart setzen - ```bash -# Enable Nginx site +# Site aktivieren sudo ln -s /etc/nginx/sites-available/cc24-hub /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx +``` -# Enable and start CC24-Hub service +#### 5. Systemd Service einrichten + +Erstelle `/etc/systemd/system/cc24-hub.service`: + +```ini +[Unit] +Description=ForensicPathways DFIR Guide +After=network.target nginx.service +Wants=nginx.service + +[Service] +Type=exec +User=www-data +Group=www-data +WorkingDirectory=/opt/cc24-hub +Environment=NODE_ENV=production +ExecStart=/usr/bin/node ./dist/server/entry.mjs +Restart=always +RestartSec=10 +StandardOutput=journal +StandardError=journal + +# Security +NoNewPrivileges=yes +PrivateTmp=yes +ProtectSystem=strict +ProtectHome=yes +ReadWritePaths=/opt/cc24-hub +CapabilityBoundingSet= + +# Resource Limits +LimitNOFILE=65536 +MemoryMax=512M + +[Install] +WantedBy=multi-user.target +``` + +```bash +# Service aktivieren und starten sudo systemctl daemon-reload sudo systemctl enable cc24-hub sudo systemctl start cc24-hub -# Check status +# Status prüfen sudo systemctl status cc24-hub ``` -##### 7. Deployment verifizieren +## 🔧 Konfiguration + +### Minimalkonfiguration (ohne Auth) ```bash -# Check application logs -sudo journalctl -u cc24-hub -f - -# Check if app is responding -curl http://localhost:3000 - -# Check external access -curl https://your-domain.com +# Nur für Tests geeignet +AUTHENTICATION_NECESSARY=false +PUBLIC_BASE_URL=http://localhost:4321 ``` -#### OIDC Konfigurieren +### Tools-Datenbank -Nextcloud OIDC Einstellungen (sollte auch mit anderen OIDC-Anwendungen klappen): -- **Redirect URI**: `https://your-domain.com/auth/callback` -- **Logout URI**: `https://your-domain.com` - -## 🔧 Datenformat & Kategorien - -Die CC24-Hub verwaltet drei Kategorien von Einträgen in `src/data/tools.yaml`: - -### 1. Software-Tools +Die Tools werden in `src/data/tools.yaml` verwaltet. Vollständiges Beispiel: ```yaml tools: - - name: "Autopsy" - icon: "📦" - type: "software" - description: "Die führende Open-Source-Alternative zu kommerziellen Forensik-Suiten" - domains: ["incident-response", "law-enforcement"] - phases: ["examination", "analysis"] - platforms: ["Windows", "Linux"] - skillLevel: "intermediate" - accessType: "download" - url: "https://www.autopsy.com/" - projectUrl: "https://autopsy.cc24.dev" # CC24-Server URL (optional) - license: "Apache 2.0" - knowledgebase: true # Hat erweiterte Dokumentation - related_concepts: ["Hash Functions & Digital Signatures", "SQL Query Fundamentals"] # Verknüpfung zu Konzepten - tags: ["gui", "filesystem", "timeline-analysis"] - statusUrl: "https://status.example.com/badge/1/status" # Status-Badge URL (optional) -``` - -### 2. Forensische Methoden - -```yaml - - name: "Live Memory Acquisition Procedure" - icon: "📋" - type: "method" - description: "Standardisiertes Verfahren zur forensisch korrekten Akquisition des Arbeitsspeichers" - domains: ["incident-response", "law-enforcement"] - phases: ["data-collection"] - platforms: [] # Methoden haben keine Plattformen - skillLevel: "advanced" - accessType: null - url: "https://www.nist.gov/publications/guide-integrating-forensic-techniques" - projectUrl: null - license: null + - name: Autopsy + type: software # software|method|concept + description: >- + Die führende Open-Source-Alternative zu kommerziellen Forensik-Suiten mit + intuitiver grafischer Oberfläche. Besonders stark in der Timeline-Analyse, + Keyword-Suche und dem Carving gelöschter Dateien. Die modulare + Plugin-Architektur erlaubt Erweiterungen für spezielle + Untersuchungsszenarien. + icon: 📦 + skillLevel: intermediate # novice|beginner|intermediate|advanced|expert + url: https://www.autopsy.com/ + domains: + - incident-response + - static-investigations + - malware-analysis + - mobile-forensics + - cloud-forensics + phases: + - examination + - analysis + platforms: + - Windows + - Linux + related_concepts: + - SQL Query Fundamentals + - Hash Functions & Digital Signatures + accessType: download # download|web|api|cli|service + license: Apache 2.0 + knowledgebase: false # true für erweiterte Dokumentation + tags: + - gui + - filesystem + - timeline-analysis + - carving + - artifact-extraction + - keyword-search + # Optional: Für gehostete Services + projectUrl: https://autopsy.ihre-domain.de + statusUrl: https://status.ihre-domain.de/api/badge/1/status + + # Beispiel Methode + - name: Live Response Methodology + type: method + description: >- + Strukturierte Vorgehensweise zur Sammlung volatiler Daten + von laufenden Systemen ohne Shutdown. + icon: 📋 + skillLevel: advanced + url: https://www.sans.org/white-papers/live-response/ + domains: + - incident-response + phases: + - data-collection + related_concepts: + - Memory Forensics Fundamentals + tags: + - volatile-data + - live-analysis + - methodology + knowledgebase: true + + # Beispiel Konzept + - name: Hash Functions & Digital Signatures + type: concept + description: >- + Kryptographische Grundlagen für Datenintegrität und + Authentifizierung in der digitalen Forensik. + icon: 🔐 + skillLevel: intermediate + url: https://en.wikipedia.org/wiki/Cryptographic_hash_function + domains: + - incident-response + - static-investigations + - malware-analysis + phases: + - data-collection + - examination + tags: + - cryptography + - data-integrity + - evidence-preservation knowledgebase: false - related_concepts: null # Können optional Konzepte verknüpfen - tags: ["memory-acquisition", "volatile-evidence", "procedure"] + +# Konfiguration der Domänen +domains: + - id: incident-response + name: Incident Response & Breach-Untersuchung + - id: static-investigations + name: Datenträgerforensik & Ermittlungen + - id: malware-analysis + name: Malware-Analyse & Reverse Engineering + - id: mobile-forensics + name: Mobile Geräte & App-Forensik + - id: cloud-forensics + name: Cloud & Virtuelle Umgebungen + +# Konfiguration der Phasen (NIST Framework) +phases: + - id: data-collection + name: Datensammlung + description: Imaging, Acquisition, Remote Collection Tools + - id: examination + name: Auswertung + description: Parsing, Extraction, Initial Analysis Tools + - id: analysis + name: Analyse + description: Deep Analysis, Correlation, Visualization Tools + - id: reporting + name: Bericht & Präsentation + description: Documentation, Visualization, Presentation Tools + +# Domänenübergreifende Kategorien +domain-agnostic-software: + - id: collaboration-general + name: Übergreifend & Kollaboration + description: Cross-cutting tools and collaboration platforms + - id: specific-os + name: Betriebssysteme + description: Operating Systems which focus on forensics ``` -### 3. Grundlagenkonzepte (NEU) +## 📦 Updates -```yaml - - name: "Regular Expressions (Regex)" - icon: "🔤" - type: "concept" - description: "Pattern matching language for searching, extracting, and manipulating text" - domains: ["incident-response", "malware-analysis"] - phases: ["examination", "analysis"] - platforms: [] # Konzepte haben keine Plattformen - skillLevel: "intermediate" - accessType: null - url: "https://regexr.com/" - projectUrl: null - license: null - knowledgebase: true # Erweiterte Erklärung in Knowledgebase - related_concepts: null # Konzepte verweisen nicht auf andere Konzepte - tags: ["pattern-matching", "text-processing", "log-analysis"] -``` - -### Verfügbare Kategorien - -**Domänen:** -- `incident-response` - Incident Response & Breach-Untersuchung -- `law-enforcement` - Strafverfolgung & Kriminalermittlung -- `malware-analysis` - Malware-Analyse & Reverse Engineering -- `fraud-investigation` - Betrugs- & Finanzkriminalität -- `network-forensics` - Netzwerk-Forensik & Traffic-Analyse -- `mobile-forensics` - Mobile Geräte & App-Forensik -- `cloud-forensics` - Cloud & Virtuelle Umgebungen -- `ics-forensics` - Industrielle Kontrollsysteme (ICS/SCADA) - -**Phasen (NIST SP 800-86):** -- `data-collection` - Datensammlung -- `examination` - Auswertung -- `analysis` - Analyse -- `reporting` - Bericht & Präsentation - -**Domain-agnostic Kategorien:** -- `collaboration-general` - Übergreifend & Kollaboration -- `specific-os` - Betriebssysteme - -## 📚 Knowledgebase-System - -### Erweiterte Dokumentation erstellen - -Die Knowledgebase bietet detaillierte Artikel für Tools, Methoden und Konzepte. So erstellen Sie neue Einträge: - -#### 1. Knowledgebase-Flag setzen - -Setzen Sie in `src/data/tools.yaml` das Flag: -```yaml -knowledgebase: true -``` - -#### 2. Artikel-Datei erstellen - -Erstellen Sie eine Markdown-Datei in `src/content/knowledgebase/`: - -**Dateiname-Schema:** `[tool-name-slug].md` - -**Beispiel:** `src/content/knowledgebase/autopsy.md` - -```markdown ---- -title: "Autopsy - Umfassende Forensik-Suite" -tool_name: "Autopsy" -description: "Detaillierte Anleitung und Best Practices für Autopsy" -last_updated: 2024-01-15 -author: "CC24-Team" -difficulty: "intermediate" -categories: ["filesystem-analysis", "timeline-analysis"] -tags: ["gui", "windows", "linux", "open-source"] -sections: - overview: true - installation: true - configuration: true - usage_examples: true - best_practices: true - troubleshooting: true - advanced_topics: false -review_status: "published" ---- - -# Übersicht - -Autopsy ist eine grafische Benutzeroberfläche für The Sleuth Kit (TSK) und bietet... - -## Installation - -### Windows -1. Download der neuesten Version von [autopsy.com](https://www.autopsy.com/) -2. Ausführung des Installers mit Administratorrechten -3. ... - -## Konfiguration - -### Grundeinstellungen -- Arbeitsverzeichnis festlegen -- Hash-Algorithmen auswählen -- ... - -## Verwendungsbeispiele - -### Fall 1: Gelöschte Dateien wiederherstellen -1. Neuen Fall erstellen -2. Image hinzufügen -3. ... - -## Best Practices - -- Immer Hash-Verifikation durchführen -- Regelmäßige Backups der Case-Datenbank -- ... - -## Troubleshooting - -### Problem: Autopsy startet nicht -**Lösung:** Java-Version überprüfen... - -### Problem: Langsame Performance -**Lösung:** RAM-Zuteilung erhöhen... - -## Weiterführende Themen - -- Integration mit externen Tools -- Custom Modules entwickeln -- ... -``` - -#### 3. Schema-Validierung - -Das System validiert automatisch folgende Felder: - -**Pflichtfelder:** -- `title`: Anzeigename des Artikels -- `tool_name`: Exakter Name aus tools.yaml -- `description`: Kurze Beschreibung -- `last_updated`: Datum der letzten Aktualisierung -- `difficulty`: `novice|beginner|intermediate|advanced|expert` - -**Optionale Felder:** -- `author`: Standard "CC24-Team" -- `categories`: Array von Kategorien -- `tags`: Array von Tags -- `sections`: Welche Abschnitte enthalten sind -- `review_status`: `draft|review|published` (Standard: `published`) - -#### 4. Automatische Verlinkung - -- Artikel sind automatisch über `/knowledgebase/[tool-slug]` erreichbar -- Links werden automatisch in Tool-Details angezeigt -- Suchfunktion indiziert Artikel-Inhalte - -### Konzept-Verlinkung - -Tools können mit Grundlagenkonzepten verknüpft werden: - -```yaml -# Tool-Definition -- name: "Autopsy" - related_concepts: ["Hash Functions & Digital Signatures", "SQL Query Fundamentals"] - -# Konzept-Definition -- name: "Hash Functions & Digital Signatures" - type: "concept" - description: "Cryptographic principles for data integrity verification" -``` - -Die KI-Empfehlungen nutzen diese Verlinkungen für Hintergrundwissen-Empfehlungen. - -## 🤖 KI-Integration - -### Workflow-Empfehlungen -Beschreibung forensischer Szenarien für maßgeschneiderte Workflows mit phasenbasierten Tool-Empfehlungen und Prioritätsbewertung. - -### Tool-spezifische Empfehlungen -Konkrete Tool-Vorschläge für spezifische Probleme mit detaillierten Begründungen, Implementierungsansätzen und Vor-/Nachteilen. - -### Konzept-Integration -Die KI berücksichtigt automatisch verknüpfte Grundlagenkonzepte und empfiehlt relevantes Hintergrundwissen. - -**API-Endpunkt:** `/api/ai/query` -- **Rate Limiting**: 10 Anfragen pro Minute pro Benutzer -- **Modi**: `workflow` (Szenario-basiert) oder `tool` (Problem-spezifisch) -- **Authentifizierung**: Optional konfigurierbar via `AUTHENTICATION_NECESSARY` - -## 🔐 Authentifizierung - -OIDC-Integration mit JWT-Sessions: -- **6 Stunden Gültigkeit** -- **HTTP-Only Cookies** mit CSRF-Schutz -- **Nextcloud/Keycloak kompatibel** - -**Relevante Dateien:** -- `src/utils/auth.ts` - Kern-Authentifizierungslogik -- `src/pages/api/auth/` - Auth-API-Endpunkte - -## 📁 Datei-Referenz - -### Wichtige Konfigurationsdateien -- `src/data/tools.yaml` - Hauptdatenbank für Tools, Methoden und Konzepte -- `src/content/config.ts` - Schema für Knowledgebase-Artikel -- `src/utils/dataService.js` - Datenverarbeitungslogik -- `src/styles/global.css` - Zentrale Stylesheet-Definitionen - -### Content-Verzeichnisse -- `src/content/knowledgebase/` - Knowledgebase-Artikel (Markdown) -- `src/components/` - Wiederverwendbare UI-Komponenten -- `src/pages/api/` - Backend-API-Endpunkte - -## 🤝 Beitragen - -### Tool/Methode/Konzept hinzufügen - -**Option 1: Direkte YAML-Bearbeitung** -1. Fork des Repositories erstellen -2. `src/data/tools.yaml` bearbeiten -3. Bei Bedarf Knowledgebase-Artikel erstellen -4. Pull Request mit Beschreibung erstellen - -**Option 2: Web-Editor verwenden** -1. YAML-Editor öffnen (`/dfir_yaml_editor.html`) -2. Eintrag hinzufügen (Tool/Methode/Konzept) -3. YAML exportieren und in Pull Request einreichen - -### Knowledgebase-Artikel erweitern - -1. Tool in `tools.yaml` identifizieren -2. `knowledgebase: true` setzen -3. Artikel in `src/content/knowledgebase/[slug].md` erstellen -4. Schema-Validierung beachten -5. Pull Request einreichen - -### Korrekturen & Verbesserungen - -- Bug Reports und Feature Requests über Issues melden -- Code-Beiträge über Pull Requests willkommen -- Dokumentation und Übersetzungen erwünscht - -## 🐛 Troubleshooting - -**KI-Empfehlungen funktionieren nicht:** -- `.env` Datei korrekt konfiguriert? -- `AUTHENTICATION_NECESSARY=false` für Tests setzen -- API-Endpoint erreichbar? - -**Authentifizierung schlägt fehl:** -- OIDC-Endpoints korrekt? -- Redirect-URIs im OIDC-Provider registriert? -- `AUTH_SECRET` mindestens 32 Zeichen? - -**Knowledgebase-Artikel werden nicht angezeigt:** -- `knowledgebase: true` in tools.yaml gesetzt? -- Markdown-Datei existiert in `src/content/knowledgebase/`? -- Schema-Validierung erfolgreich? - -**Logs prüfen:** ```bash -# Anwendungs-Logs -sudo journalctl -u cc24-hub -f +# Repository aktualisieren +cd /opt/cc24-hub +sudo git pull -# Development-Modus -npm run dev +# Dependencies aktualisieren +sudo npm install + +# Rebuild +sudo npm run build + +# Service neustarten +sudo systemctl restart cc24-hub ``` + +## 💾 Backup + +Wichtige Dateien für Backup: + +```bash +/opt/cc24-hub/src/data/tools.yaml +/opt/cc24-hub/.env +/etc/nginx/sites-available/cc24-hub +/etc/systemd/system/cc24-hub.service +``` + +## 🤝 Beiträge + +Contributions sind willkommen! Bitte: + +1. Issue im Repository erstellen +2. Feature-Branch erstellen +3. Pull Request öffnen +4. Tests durchführen + +## 📞 Support + +Bei Problemen oder Fragen: + +- **Issues:** [Repository Issues](https://git.cc24.dev/mstoeck3/cc24-hub/issues) +- **Dokumentation:** Siehe `/knowledgebase` auf der Website + +## 📄 Lizenz + +Dieses Projekt steht unter der **BSD-3-Clause** Lizenz. \ No newline at end of file diff --git a/astro.config.mjs b/astro.config.mjs index 69e2603..16016d8 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -14,5 +14,6 @@ export default defineConfig({ server: { port: 4321, host: true - } -}); \ No newline at end of file + }, + allowImportingTsExtensions: true +}); diff --git a/dfir_yaml_editor.html b/dfir_yaml_editor.html index 9c33db9..eb445a4 100644 --- a/dfir_yaml_editor.html +++ b/dfir_yaml_editor.html @@ -12,6 +12,17 @@ box-sizing: border-box; } + :root { + --primary: #3498db; + --secondary: #95a5a6; + --success: #27ae60; + --warning: #f39c12; + --danger: #e74c3c; + --dark: #2c3e50; + --light: #ecf0f1; + --border: #dee2e6; + } + body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); @@ -29,26 +40,16 @@ } .header { - background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%); + background: linear-gradient(135deg, var(--dark) 0%, var(--primary) 100%); color: white; padding: 25px; text-align: center; } - .header h1 { - font-size: 2.2em; - margin-bottom: 10px; - } - - .header p { - opacity: 0.9; - font-size: 1.1em; - } - .tabs { - background: #f8f9fa; + background: var(--light); display: flex; - border-bottom: 2px solid #e9ecef; + border-bottom: 2px solid var(--border); } .tab { @@ -60,13 +61,13 @@ } .tab:hover { - background: #e9ecef; + background: var(--border); } .tab.active { background: white; - border-bottom-color: #3498db; - color: #3498db; + border-bottom-color: var(--primary); + color: var(--primary); } .tab-content { @@ -79,24 +80,8 @@ display: block; } - .file-input-section { - background: #f8f9fa; - padding: 20px; - border-radius: 10px; - margin-bottom: 20px; - border: 2px dashed #dee2e6; - text-align: center; - } - - .file-input-section input { - margin: 10px; - padding: 10px; - border: 1px solid #ddd; - border-radius: 5px; - } - .btn { - background: linear-gradient(135deg, #3498db, #2980b9); + background: var(--primary); color: white; border: none; padding: 12px 24px; @@ -114,20 +99,36 @@ box-shadow: 0 4px 12px rgba(52, 152, 219, 0.3); } - .btn-secondary { - background: linear-gradient(135deg, #95a5a6, #7f8c8d); + .btn-secondary { background: var(--secondary); } + .btn-danger { background: var(--danger); } + .btn-success { background: var(--success); } + .btn-warning { background: var(--warning); } + + .search-container { + background: var(--light); + padding: 15px; + border-radius: 8px; + margin-bottom: 20px; } - .btn-danger { - background: linear-gradient(135deg, #e74c3c, #c0392b); + .search-input { + width: 100%; + padding: 12px; + border: 2px solid var(--border); + border-radius: 8px; + font-size: 16px; + transition: border-color 0.3s ease; } - .btn-success { - background: linear-gradient(135deg, #27ae60, #229954); + .search-input:focus { + outline: none; + border-color: var(--primary); } - .btn-warning { - background: linear-gradient(135deg, #f39c12, #e67e22); + .search-results-info { + margin-top: 10px; + font-size: 14px; + color: var(--secondary); } .stats-grid { @@ -138,22 +139,13 @@ } .stat-card { - background: linear-gradient(135deg, #3498db, #2980b9); + background: var(--primary); color: white; padding: 20px; border-radius: 10px; text-align: center; } - .stat-card h3 { - font-size: 2em; - margin-bottom: 5px; - } - - .stat-card p { - opacity: 0.9; - } - .tools-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); @@ -163,11 +155,10 @@ .tool-card { background: white; - border: 1px solid #e9ecef; + border: 1px solid var(--border); border-radius: 10px; padding: 20px; transition: all 0.3s ease; - border-left: 4px solid #3498db; } .tool-card:hover { @@ -175,83 +166,9 @@ box-shadow: 0 4px 12px rgba(0,0,0,0.1); } - .tool-card.software { - border-left-color: #3498db; - } - - .tool-card.method { - border-left-color: #9b59b6; - } - - .tool-card.concept { - border-left-color: #e67e22; - } - - .tool-card h3 { - color: #2c3e50; - margin-bottom: 10px; - display: flex; - align-items: center; - gap: 10px; - } - - .tool-card p { - color: #666; - margin-bottom: 15px; - line-height: 1.5; - } - - .tool-actions { - display: flex; - gap: 10px; - margin-top: 15px; - } - - .tool-actions button { - flex: 1; - padding: 8px 12px; - font-size: 0.9em; - } - - .skill-level { - display: inline-block; - padding: 4px 8px; - border-radius: 15px; - font-size: 0.8em; - font-weight: bold; - color: white; - } - - .skill-novice { background: #77b7d3; } - .skill-beginner { background: #27ae60; } - .skill-intermediate { background: #f39c12; } - .skill-advanced { background: #e74c3c; } - .skill-expert { background: #2c3e50; } - - .type-badge { - display: inline-block; - padding: 4px 8px; - border-radius: 12px; - font-size: 0.75em; - font-weight: bold; - text-transform: uppercase; - margin-left: 10px; - } - - .type-software { - background: #3498db; - color: white; - } - - .type-method { - background: #9b59b6; - color: white; - } - - .type-concept { - background: #e67e22; - color: white; - } + .tool-card.software { border-left: 4px solid var(--primary); } + .tool-card.method { border-left: 4px solid #9b59b6; } + .tool-card.concept { border-left: 4px solid #e67e22; } .form-group { margin-bottom: 20px; @@ -261,7 +178,7 @@ display: block; margin-bottom: 5px; font-weight: 500; - color: #2c3e50; + color: var(--dark); } .form-group input, @@ -269,16 +186,11 @@ .form-group textarea { width: 100%; padding: 10px; - border: 1px solid #ddd; + border: 1px solid var(--border); border-radius: 5px; font-size: 14px; } - .form-group textarea { - resize: vertical; - min-height: 100px; - } - .checkbox-group { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); @@ -298,13 +210,13 @@ gap: 5px; min-height: 40px; padding: 5px; - border: 1px solid #ddd; + border: 1px solid var(--border); border-radius: 5px; background: white; } .tag { - background: #e9ecef; + background: var(--light); padding: 4px 8px; border-radius: 15px; font-size: 0.85em; @@ -313,16 +225,6 @@ gap: 5px; } - .tag.domain-agnostic { - background: #d1ecf1; - color: #0c5460; - } - - .tag.related-concept { - background: #fff3cd; - color: #856404; - } - .tag-remove { cursor: pointer; font-weight: bold; @@ -330,20 +232,21 @@ } .tag-remove:hover { - color: #e74c3c; + color: var(--danger); } - .conditional-fields { - transition: opacity 0.3s ease; + .bulk-section { + background: var(--light); + padding: 20px; + border-radius: 10px; + margin-bottom: 20px; } - .conditional-fields.disabled { - opacity: 0.5; - pointer-events: none; - } - - .hidden { - display: none !important; + .bulk-controls { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 10px; + margin-top: 15px; } .message { @@ -364,83 +267,20 @@ border: 1px solid #f5c6cb; } - .bulk-actions { - background: #f8f9fa; - padding: 20px; - border-radius: 10px; - margin-bottom: 20px; - } - - .bulk-actions h3 { - margin-bottom: 15px; - color: #2c3e50; - } - - .selection-info { - margin-bottom: 15px; - padding: 10px; - background: #e9ecef; - border-radius: 5px; - font-weight: 500; - } + .hidden { display: none !important; } .filter-section { - background: #f8f9fa; - padding: 15px; - border-radius: 8px; - margin-bottom: 20px; - } - - .filter-row { display: flex; gap: 15px; align-items: center; flex-wrap: wrap; - } - - .filter-row select { - padding: 8px; - border: 1px solid #ddd; - border-radius: 4px; - } - - .knowledge-generator { - background: #fff3cd; - border: 1px solid #ffeaa7; - border-radius: 8px; - padding: 20px; - margin-top: 20px; - } - - .knowledge-generator h3 { - color: #856404; - margin-bottom: 15px; - } - - .markdown-preview { - background: #f8f9fa; - border: 1px solid #dee2e6; - border-radius: 4px; - padding: 15px; - font-family: 'Courier New', monospace; - font-size: 0.9em; - white-space: pre-wrap; - max-height: 400px; - overflow-y: auto; + margin-top: 15px; } @media (max-width: 768px) { - .tabs { - flex-direction: column; - } - - .stats-grid { - grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); - } - - .tools-grid { - grid-template-columns: 1fr; - } + .tabs { flex-direction: column; } + .stats-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); } + .tools-grid { grid-template-columns: 1fr; } } @@ -448,7 +288,7 @@

🔧 DFIR Tools YAML Editor

-

Comprehensive editor for Digital Forensics and Incident Response tools, methods, and concepts

+

Enhanced editor for Digital Forensics and Incident Response tools, methods, and concepts

@@ -462,15 +302,13 @@
-
+

📁 Load YAML File

Select a YAML file to load existing tools data

-
- -
+
- +
-
-

🔍 Filter Tools & Concepts

-
+
+

🔍 Search & Filter Tools

+ +
+ +
- +
-
- -
+
@@ -533,12 +376,12 @@
- +
- +
@@ -559,20 +402,16 @@
-
- -
+
-
- -
+
-
+
@@ -600,35 +439,32 @@
- -
- -
+ +
-
+
- +
- +
@@ -636,12 +472,12 @@
+
-
-
- - -
+
+
+ +
@@ -657,7 +493,6 @@
- Reference concept names for providing background knowledge
@@ -668,32 +503,66 @@
- +
-
+

📋 Bulk Operations

-
+
No tools selected
-
+ +
- - + +
+ +

Tags Operations

+
+ + + + +
+ +

Domain & Phase Operations

+
+ + + + + + +
+ +

Platform Operations

+
+ + + +
+ +

Related Concepts Operations

+
+ + + +
+ +

Dangerous Operations

+
-
- -
+
-
+

📚 Knowledgebase Entry Generator

-

Generate markdown templates for tools with extended knowledgebase documentation.

+

Generate properly formatted markdown files for ForensicPathways knowledgebase.

@@ -704,8 +573,11 @@
@@ -730,32 +602,31 @@ let yamlData = null; let currentEditingIndex = -1; let selectedTools = new Set(); + let filteredToolsCache = []; - // Initialize the application + // Initialize with correct YAML structure function init() { yamlData = { tools: [], domains: [ - { id: 'network', name: 'Network Forensics' }, - { id: 'memory', name: 'Memory Forensics' }, - { id: 'disk', name: 'Disk Forensics' }, - { id: 'mobile', name: 'Mobile Forensics' }, - { id: 'cloud', name: 'Cloud Forensics' }, - { id: 'malware', name: 'Malware Analysis' } + { id: 'incident-response', name: 'Incident Response & Breach-Untersuchung' }, + { id: 'static-investigations', name: 'Datenträgerforensik & Ermittlungen' }, + { id: 'malware-analysis', name: 'Malware-Analyse & Reverse Engineering' }, + { id: 'fraud-investigation', name: 'Betrugs- & Finanzkriminalität' }, + { id: 'network-forensics', name: 'Netzwerk-Forensik & Traffic-Analyse' }, + { id: 'mobile-forensics', name: 'Mobile Geräte & App-Forensik' }, + { id: 'cloud-forensics', name: 'Cloud & Virtuelle Umgebungen' }, + { id: 'ics-forensics', name: 'Industrielle Kontrollsysteme (ICS/SCADA)' } ], phases: [ - { id: 'identification', name: 'Identification' }, - { id: 'preservation', name: 'Preservation' }, - { id: 'collection', name: 'Collection' }, - { id: 'examination', name: 'Examination' }, - { id: 'analysis', name: 'Analysis' }, - { id: 'reporting', name: 'Reporting' } + { id: 'data-collection', name: 'Datensammlung', description: 'Imaging, Acquisition, Remote Collection Tools' }, + { id: 'examination', name: 'Auswertung', description: 'Parsing, Extraction, Initial Analysis Tools' }, + { id: 'analysis', name: 'Analyse', description: 'Deep Analysis, Correlation, Visualization Tools' }, + { id: 'reporting', name: 'Bericht & Präsentation', description: 'Documentation, Visualization, Presentation Tools' } ], 'domain-agnostic-software': [ - { id: 'collaboration', name: 'Collaboration & Communication' }, - { id: 'documentation', name: 'Documentation & Reporting' }, - { id: 'virtualization', name: 'Virtualization & Sandboxing' }, - { id: 'automation', name: 'Automation & Scripting' } + { id: 'collaboration-general', name: 'Übergreifend & Kollaboration', description: 'Cross-cutting tools and collaboration platforms' }, + { id: 'specific-os', name: 'Betriebssysteme', description: 'Operating Systems which focus on forensics' } ] }; @@ -766,30 +637,47 @@ } function showTab(tabName) { - // Hide all tab contents - document.querySelectorAll('.tab-content').forEach(content => { - content.classList.remove('active'); - }); + document.querySelectorAll('.tab-content').forEach(content => content.classList.remove('active')); + document.querySelectorAll('.tab').forEach(tab => tab.classList.remove('active')); - // Remove active class from all tabs - document.querySelectorAll('.tab').forEach(tab => { - tab.classList.remove('active'); - }); - - // Show selected tab content document.getElementById(tabName).classList.add('active'); - - // Add active class to clicked tab event.target.classList.add('active'); - // Refresh content for specific tabs - if (tabName === 'tools') { - renderToolsGrid(); - } else if (tabName === 'bulk') { - renderBulkGrid(); - } else if (tabName === 'knowledge') { - updateKnowledgeToolSelect(); - } + if (tabName === 'tools') renderToolsGrid(); + else if (tabName === 'bulk') renderBulkGrid(); + else if (tabName === 'knowledge') updateKnowledgeToolSelect(); + } + + // Enhanced Search Functionality + function applySearch() { + applyFilters(); + } + + function searchTools(tools, searchTerm) { + if (!searchTerm) return tools; + + const term = searchTerm.toLowerCase(); + return tools.filter(tool => { + // Search in name + if (tool.name && tool.name.toLowerCase().includes(term)) return true; + + // Search in description + if (tool.description && tool.description.toLowerCase().includes(term)) return true; + + // Search in tags + if (tool.tags && tool.tags.some(tag => tag.toLowerCase().includes(term))) return true; + + // Search in related concepts + if (tool.related_concepts && tool.related_concepts.some(concept => concept.toLowerCase().includes(term))) return true; + + // Search in type + if (tool.type && tool.type.toLowerCase().includes(term)) return true; + + // Search in platforms + if (tool.platforms && tool.platforms.some(platform => platform.toLowerCase().includes(term))) return true; + + return false; + }); } function populateFormOptions() { @@ -799,10 +687,7 @@ yamlData.domains.forEach(domain => { const div = document.createElement('div'); div.className = 'checkbox-item'; - div.innerHTML = ` - - - `; + div.innerHTML = ``; domainsContainer.appendChild(div); }); @@ -812,10 +697,7 @@ yamlData.phases.forEach(phase => { const div = document.createElement('div'); div.className = 'checkbox-item'; - div.innerHTML = ` - - - `; + div.innerHTML = ``; phasesContainer.appendChild(div); }); @@ -825,10 +707,7 @@ yamlData['domain-agnostic-software'].forEach(category => { const div = document.createElement('div'); div.className = 'checkbox-item'; - div.innerHTML = ` - - - `; + div.innerHTML = ``; domainAgnosticContainer.appendChild(div); }); } @@ -839,17 +718,14 @@ const softwareFields = document.getElementById('softwareFields'); if (toolType === 'concept') { - // Concepts don't have platforms, domain-agnostic categories, or software-specific fields - softwareMethodFields.classList.add('disabled'); - softwareFields.classList.add('disabled'); + softwareMethodFields.style.display = 'none'; + softwareFields.style.display = 'none'; } else if (toolType === 'method') { - // Methods have platforms and domain-agnostic categories but not software-specific fields - softwareMethodFields.classList.remove('disabled'); - softwareFields.classList.add('disabled'); + softwareMethodFields.style.display = 'block'; + softwareFields.style.display = 'none'; } else { - // Software has all fields - softwareMethodFields.classList.remove('disabled'); - softwareFields.classList.remove('disabled'); + softwareMethodFields.style.display = 'block'; + softwareFields.style.display = 'block'; } } @@ -879,13 +755,11 @@ messageDiv.textContent = message; document.body.appendChild(messageDiv); - setTimeout(() => { - document.body.removeChild(messageDiv); - }, 3000); + setTimeout(() => document.body.removeChild(messageDiv), 3000); } function updateStats() { - if (!yamlData || !yamlData.tools) return; + if (!yamlData?.tools) return; const stats = { total: yamlData.tools.length, @@ -895,54 +769,18 @@ withKnowledgebase: yamlData.tools.filter(t => t.knowledgebase).length }; - const statsContainer = document.getElementById('stats'); - statsContainer.innerHTML = ` -
-

${stats.total}

-

Total Items

-
-
-

${stats.software}

-

Software Tools

-
-
-

${stats.methods}

-

Methods

-
-
-

${stats.concepts}

-

Concepts

-
-
-

${stats.withKnowledgebase}

-

With Knowledgebase

-
+ document.getElementById('stats').innerHTML = ` +

${stats.total}

Total Items

+

${stats.software}

Software Tools

+

${stats.methods}

Methods

+

${stats.concepts}

Concepts

+

${stats.withKnowledgebase}

With Knowledgebase

`; } - function getCheckedValues(selector) { - return Array.from(document.querySelectorAll(selector + ':checked')).map(cb => cb.value); - } - - function getTags() { - return Array.from(document.querySelectorAll('#tagsInput .tag')).map(tag => - tag.textContent.replace('×', '').trim() - ).filter(tag => tag); - } - - function getRelatedConcepts() { - return Array.from(document.querySelectorAll('#relatedConceptsInput .tag')).map(tag => - tag.textContent.replace('×', '').trim() - ).filter(concept => concept); - } - - function focusTagInput() { - document.getElementById('tagInputField').focus(); - } - - function focusRelatedConceptInput() { - document.getElementById('relatedConceptInputField').focus(); - } + // Tag input handlers + function focusTagInput() { document.getElementById('tagInputField').focus(); } + function focusRelatedConceptInput() { document.getElementById('relatedConceptInputField').focus(); } function handleTagInput(event) { if (event.key === 'Enter' || event.key === ',') { @@ -962,31 +800,42 @@ const input = event.target; const value = input.value.trim(); if (value) { - addTag('relatedConceptsInput', value, 'related-concept'); + addTag('relatedConceptsInput', value); input.value = ''; } } } - function addTag(containerId, value, extraClass = '') { + function addTag(containerId, value) { const container = document.getElementById(containerId); const input = container.querySelector('input'); const tag = document.createElement('span'); - tag.className = `tag ${extraClass}`; + tag.className = 'tag'; tag.innerHTML = `${value} ×`; - container.insertBefore(tag, input); } + function getCheckedValues(selector) { + return Array.from(document.querySelectorAll(selector + ':checked')).map(cb => cb.value); + } + + function getTags() { + return Array.from(document.querySelectorAll('#tagsInput .tag')).map(tag => + tag.textContent.replace('×', '').trim() + ).filter(tag => tag); + } + + function getRelatedConcepts() { + return Array.from(document.querySelectorAll('#relatedConceptsInput .tag')).map(tag => + tag.textContent.replace('×', '').trim() + ).filter(concept => concept); + } + function saveTool() { try { - if (!yamlData) { - yamlData = { tools: [], domains: [], phases: [], 'domain-agnostic-software': [] }; - } - if (!yamlData.tools) { - yamlData.tools = []; - } + if (!yamlData) yamlData = { tools: [] }; + if (!yamlData.tools) yamlData.tools = []; const toolType = document.getElementById('toolType').value; const tool = { @@ -994,80 +843,53 @@ type: toolType, description: document.getElementById('description').value, skillLevel: document.getElementById('skillLevel').value, - url: document.getElementById('url').value, - tags: getTags() + url: document.getElementById('url').value }; // Add icon if provided const icon = document.getElementById('toolIcon').value.trim(); - if (icon) { - tool.icon = icon; - } + if (icon) tool.icon = icon; - // Add domains and phases for all types + // Add domains and phases tool.domains = getCheckedValues('#domainsCheckbox input:checked'); tool.phases = getCheckedValues('#phasesCheckbox input:checked'); - // Add related concepts + // Add tags and related concepts + const tags = getTags(); + if (tags.length > 0) tool.tags = tags; + const relatedConcepts = getRelatedConcepts(); - if (relatedConcepts.length > 0) { - tool.related_concepts = relatedConcepts; - } + if (relatedConcepts.length > 0) tool.related_concepts = relatedConcepts; // Type-specific fields if (toolType === 'software') { tool.platforms = getCheckedValues('#platformsCheckbox input:checked'); - tool.accessType = document.getElementById('accessType').value; - tool.projectUrl = document.getElementById('projectUrl').value; - tool.license = document.getElementById('license').value; - tool.knowledgebase = document.getElementById('knowledgebase').checked; - const statusUrl = document.getElementById('statusUrl').value; - if (statusUrl) { - tool.statusUrl = statusUrl; - } + const accessType = document.getElementById('accessType').value; + if (accessType) tool.accessType = accessType; + + const license = document.getElementById('license').value.trim(); + if (license) tool.license = license; + + const projectUrl = document.getElementById('projectUrl').value.trim(); + if (projectUrl) tool.projectUrl = projectUrl; + + const statusUrl = document.getElementById('statusUrl').value.trim(); + if (statusUrl) tool.statusUrl = statusUrl; + + tool.knowledgebase = document.getElementById('knowledgebase').checked; - // Add domain-agnostic software if selected const domainAgnostic = getCheckedValues('#domainAgnosticCheckbox input:checked'); - if (domainAgnostic.length > 0) { - tool['domain-agnostic-software'] = domainAgnostic; - } + if (domainAgnostic.length > 0) tool['domain-agnostic-software'] = domainAgnostic; } else if (toolType === 'method') { tool.platforms = getCheckedValues('#platformsCheckbox input:checked'); - - // Add domain-agnostic software if selected const domainAgnostic = getCheckedValues('#domainAgnosticCheckbox input:checked'); - if (domainAgnostic.length > 0) { - tool['domain-agnostic-software'] = domainAgnostic; - } - - // Methods don't have software-specific fields - tool.accessType = null; - tool.projectUrl = null; - tool.license = null; - tool.knowledgebase = false; + if (domainAgnostic.length > 0) tool['domain-agnostic-software'] = domainAgnostic; + tool.knowledgebase = document.getElementById('knowledgebase').checked; } else if (toolType === 'concept') { - // Concepts don't have platforms or software-specific fields (but can have knowledgebase) - tool.platforms = []; - tool.accessType = null; - tool.projectUrl = null; - tool.license = null; tool.knowledgebase = document.getElementById('knowledgebase').checked; } - // Clean up empty arrays and null values - Object.keys(tool).forEach(key => { - if (Array.isArray(tool[key]) && tool[key].length === 0) { - delete tool[key]; - } else if (tool[key] === '' || tool[key] === null || tool[key] === false) { - if (key === 'knowledgebase' && (toolType === 'software' || toolType === 'concept')) { - // Keep knowledgebase boolean for software and concepts - } else { - delete tool[key]; - } - } - }); - if (currentEditingIndex >= 0) { yamlData.tools[currentEditingIndex] = tool; showMessage('Tool updated successfully!'); @@ -1119,10 +941,7 @@ document.getElementById('statusUrl').value = tool.statusUrl || ''; } - // Knowledgebase field for software and concepts - if (tool.type === 'software' || tool.type === 'concept' || !tool.type) { - document.getElementById('knowledgebase').checked = tool.knowledgebase || false; - } + document.getElementById('knowledgebase').checked = tool.knowledgebase || false; // Set checkboxes setCheckboxValues('#domainsCheckbox input', tool.domains || []); @@ -1138,7 +957,7 @@ // Set related concepts const conceptsContainer = document.getElementById('relatedConceptsInput'); conceptsContainer.innerHTML = ''; - (tool.related_concepts || []).forEach(concept => addTag('relatedConceptsInput', concept, 'related-concept')); + (tool.related_concepts || []).forEach(concept => addTag('relatedConceptsInput', concept)); toggleConditionalFields(); showTab('editor'); @@ -1164,20 +983,36 @@ const container = document.getElementById('toolsGrid'); container.innerHTML = ''; - if (!yamlData || !yamlData.tools) return; + if (!yamlData?.tools) return; let filteredTools = yamlData.tools; - - // Apply filters + + // Apply search filter + const searchTerm = document.getElementById('searchInput')?.value; + if (searchTerm) { + filteredTools = searchTools(filteredTools, searchTerm); + } + + // Apply type and skill filters const typeFilter = document.getElementById('typeFilter')?.value; const skillFilter = document.getElementById('skillFilter')?.value; - if (typeFilter) { - filteredTools = filteredTools.filter(tool => (tool.type || 'software') === typeFilter); - } + if (typeFilter) filteredTools = filteredTools.filter(tool => (tool.type || 'software') === typeFilter); + if (skillFilter) filteredTools = filteredTools.filter(tool => tool.skillLevel === skillFilter); - if (skillFilter) { - filteredTools = filteredTools.filter(tool => tool.skillLevel === skillFilter); + // Cache filtered results + filteredToolsCache = filteredTools; + + // Update search results info + const searchResults = document.getElementById('searchResults'); + if (searchResults) { + const totalTools = yamlData.tools.length; + const filteredCount = filteredTools.length; + if (searchTerm || typeFilter || skillFilter) { + searchResults.textContent = `Showing ${filteredCount} of ${totalTools} tools`; + } else { + searchResults.textContent = `Showing all ${totalTools} tools`; + } } filteredTools.forEach((tool, index) => { @@ -1191,67 +1026,37 @@ const card = document.createElement('div'); card.className = `tool-card ${tool.type || 'software'}`; - const skillClass = `skill-${tool.skillLevel || 'intermediate'}`; const tags = (tool.tags || []).map(tag => `${tag}`).join(''); - const knowledgebaseIndicator = tool.knowledgebase ? '📚 Knowledgebase' : ''; - const typeIndicator = `${tool.type || 'software'}`; - - // Add domain-agnostic indicators - const domainAgnosticTags = (tool['domain-agnostic-software'] || []).map(cat => { - const categoryName = getDomainAgnosticName(cat); - return `🔧 ${categoryName}`; - }).join(''); - - // Add related concepts indicators - const relatedConceptTags = (tool.related_concepts || []).map(concept => { - return `🧠 ${concept}`; - }).join(''); + const knowledgebaseIndicator = tool.knowledgebase ? '📚 KB' : ''; card.innerHTML = ` -

- ${tool.icon ? tool.icon + ' ' : ''}${tool.name} - ${typeIndicator} -

+

${tool.icon ? tool.icon + ' ' : ''}${tool.name} [${tool.type || 'software'}]

${tool.description}

-
- ${tool.skillLevel || 'intermediate'} -
-
- ${tags} - ${domainAgnosticTags} - ${relatedConceptTags} - ${knowledgebaseIndicator} -
-
- - +
${tags} ${knowledgebaseIndicator}
+
+ +
`; return card; } - function getDomainAgnosticName(id) { - const category = yamlData['domain-agnostic-software'].find(cat => cat.id === id); - return category ? category.name : id; - } - - function applyFilters() { - renderToolsGrid(); - } - + function applyFilters() { renderToolsGrid(); } + function clearFilters() { document.getElementById('typeFilter').value = ''; document.getElementById('skillFilter').value = ''; + document.getElementById('searchInput').value = ''; renderToolsGrid(); } - // Bulk operations + // Enhanced Bulk Operations function renderBulkGrid() { const container = document.getElementById('bulkToolsGrid'); container.innerHTML = ''; - if (!yamlData || !yamlData.tools) return; + if (!yamlData?.tools) return; yamlData.tools.forEach((tool, index) => { const card = createBulkToolCard(tool, index); @@ -1267,22 +1072,15 @@ const isSelected = selectedTools.has(index); card.style.opacity = isSelected ? '1' : '0.7'; - card.style.border = isSelected ? '2px solid #3498db' : '1px solid #e9ecef'; - - const typeIndicator = `${tool.type || 'software'}`; + card.style.border = isSelected ? '2px solid var(--primary)' : '1px solid var(--border)'; card.innerHTML = `
-

- ${tool.icon ? tool.icon + ' ' : ''}${tool.name} - ${typeIndicator} -

+

${tool.icon ? tool.icon + ' ' : ''}${tool.name}

${tool.description}

-
- ${tool.skillLevel || 'intermediate'} -
+
${tool.type || 'software'}
`; return card; @@ -1317,68 +1115,263 @@ count === 0 ? 'No tools selected' : `${count} tool(s) selected`; } + // Enhanced bulk operations with new clear functions function bulkSetType() { - if (selectedTools.size === 0) { - showMessage('No tools selected', 'error'); - return; - } - + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); const newType = prompt('Enter new type (software/method/concept):'); if (newType && ['software', 'method', 'concept'].includes(newType)) { - selectedTools.forEach(index => { - yamlData.tools[index].type = newType; - }); + selectedTools.forEach(index => yamlData.tools[index].type = newType); showMessage(`Updated type for ${selectedTools.size} tools`); updateStats(); renderBulkGrid(); } } - function bulkUpdateTags() { - if (selectedTools.size === 0) { - showMessage('No tools selected', 'error'); - return; - } - - const tags = prompt('Enter tags (comma-separated):'); - if (tags) { - const tagList = tags.split(',').map(t => t.trim()).filter(t => t); - selectedTools.forEach(index => { - yamlData.tools[index].tags = tagList; - }); - showMessage(`Updated tags for ${selectedTools.size} tools`); + function bulkSetSkillLevel() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + const newLevel = prompt('Enter skill level (novice/beginner/intermediate/advanced/expert):'); + if (newLevel && ['novice', 'beginner', 'intermediate', 'advanced', 'expert'].includes(newLevel)) { + selectedTools.forEach(index => yamlData.tools[index].skillLevel = newLevel); + showMessage(`Updated skill level for ${selectedTools.size} tools`); renderBulkGrid(); } } - function bulkUpdateDomainAgnostic() { - if (selectedTools.size === 0) { - showMessage('No tools selected', 'error'); - return; - } - - const categories = prompt('Enter domain-agnostic categories (comma-separated):'); - if (categories) { - const categoryList = categories.split(',').map(c => c.trim()).filter(c => c); + function bulkAddTags() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + const tags = prompt('Enter tags to add (comma-separated):'); + if (tags) { + const tagList = tags.split(',').map(t => t.trim()).filter(t => t); selectedTools.forEach(index => { - yamlData.tools[index]['domain-agnostic-software'] = categoryList; + const tool = yamlData.tools[index]; + tool.tags = [...new Set([...(tool.tags || []), ...tagList])]; }); - showMessage(`Updated domain-agnostic categories for ${selectedTools.size} tools`); + showMessage(`Added tags to ${selectedTools.size} tools`); + renderBulkGrid(); + } + } + + function bulkRemoveTags() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + const tags = prompt('Enter tags to remove (comma-separated):'); + if (tags) { + const tagList = tags.split(',').map(t => t.trim()).filter(t => t); + selectedTools.forEach(index => { + const tool = yamlData.tools[index]; + if (tool.tags) { + tool.tags = tool.tags.filter(tag => !tagList.includes(tag)); + if (tool.tags.length === 0) delete tool.tags; + } + }); + showMessage(`Removed tags from ${selectedTools.size} tools`); + renderBulkGrid(); + } + } + + function bulkReplaceTags() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + const tags = prompt('Enter new tags (comma-separated, will replace all existing tags):'); + if (tags !== null) { + const tagList = tags.split(',').map(t => t.trim()).filter(t => t); + selectedTools.forEach(index => { + const tool = yamlData.tools[index]; + if (tagList.length > 0) { + tool.tags = tagList; + } else { + delete tool.tags; + } + }); + showMessage(`Replaced tags for ${selectedTools.size} tools`); + renderBulkGrid(); + } + } + + // NEW: Clear field functions + function bulkClearTags() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + if (confirm(`Are you sure you want to clear ALL tags from ${selectedTools.size} selected tools?`)) { + selectedTools.forEach(index => { + delete yamlData.tools[index].tags; + }); + showMessage(`Cleared tags from ${selectedTools.size} tools`); + renderBulkGrid(); + } + } + + function bulkAddDomains() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + const domains = prompt('Enter domain IDs to add (comma-separated):'); + if (domains) { + const domainList = domains.split(',').map(d => d.trim()).filter(d => d); + selectedTools.forEach(index => { + const tool = yamlData.tools[index]; + tool.domains = [...new Set([...(tool.domains || []), ...domainList])]; + }); + showMessage(`Added domains to ${selectedTools.size} tools`); + renderBulkGrid(); + } + } + + function bulkRemoveDomains() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + const domains = prompt('Enter domain IDs to remove (comma-separated):'); + if (domains) { + const domainList = domains.split(',').map(d => d.trim()).filter(d => d); + selectedTools.forEach(index => { + const tool = yamlData.tools[index]; + if (tool.domains) { + tool.domains = tool.domains.filter(domain => !domainList.includes(domain)); + if (tool.domains.length === 0) delete tool.domains; + } + }); + showMessage(`Removed domains from ${selectedTools.size} tools`); + renderBulkGrid(); + } + } + + function bulkClearDomains() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + if (confirm(`Are you sure you want to clear ALL domains from ${selectedTools.size} selected tools?`)) { + selectedTools.forEach(index => { + delete yamlData.tools[index].domains; + }); + showMessage(`Cleared domains from ${selectedTools.size} tools`); + renderBulkGrid(); + } + } + + function bulkAddPhases() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + const phases = prompt('Enter phase IDs to add (comma-separated):'); + if (phases) { + const phaseList = phases.split(',').map(p => p.trim()).filter(p => p); + selectedTools.forEach(index => { + const tool = yamlData.tools[index]; + tool.phases = [...new Set([...(tool.phases || []), ...phaseList])]; + }); + showMessage(`Added phases to ${selectedTools.size} tools`); + renderBulkGrid(); + } + } + + function bulkRemovePhases() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + const phases = prompt('Enter phase IDs to remove (comma-separated):'); + if (phases) { + const phaseList = phases.split(',').map(p => p.trim()).filter(p => p); + selectedTools.forEach(index => { + const tool = yamlData.tools[index]; + if (tool.phases) { + tool.phases = tool.phases.filter(phase => !phaseList.includes(phase)); + if (tool.phases.length === 0) delete tool.phases; + } + }); + showMessage(`Removed phases from ${selectedTools.size} tools`); + renderBulkGrid(); + } + } + + function bulkClearPhases() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + if (confirm(`Are you sure you want to clear ALL phases from ${selectedTools.size} selected tools?`)) { + selectedTools.forEach(index => { + delete yamlData.tools[index].phases; + }); + showMessage(`Cleared phases from ${selectedTools.size} tools`); + renderBulkGrid(); + } + } + + // NEW: Platform operations + function bulkAddPlatforms() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + const platforms = prompt('Enter platforms to add (comma-separated, e.g., Windows,Linux,macOS):'); + if (platforms) { + const platformList = platforms.split(',').map(p => p.trim()).filter(p => p); + selectedTools.forEach(index => { + const tool = yamlData.tools[index]; + tool.platforms = [...new Set([...(tool.platforms || []), ...platformList])]; + }); + showMessage(`Added platforms to ${selectedTools.size} tools`); + renderBulkGrid(); + } + } + + function bulkRemovePlatforms() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + const platforms = prompt('Enter platforms to remove (comma-separated):'); + if (platforms) { + const platformList = platforms.split(',').map(p => p.trim()).filter(p => p); + selectedTools.forEach(index => { + const tool = yamlData.tools[index]; + if (tool.platforms) { + tool.platforms = tool.platforms.filter(platform => !platformList.includes(platform)); + if (tool.platforms.length === 0) delete tool.platforms; + } + }); + showMessage(`Removed platforms from ${selectedTools.size} tools`); + renderBulkGrid(); + } + } + + function bulkClearPlatforms() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + if (confirm(`Are you sure you want to clear ALL platforms from ${selectedTools.size} selected tools?`)) { + selectedTools.forEach(index => { + delete yamlData.tools[index].platforms; + }); + showMessage(`Cleared platforms from ${selectedTools.size} tools`); + renderBulkGrid(); + } + } + + function bulkAddRelatedConcepts() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + const concepts = prompt('Enter related concept names to add (comma-separated):'); + if (concepts) { + const conceptList = concepts.split(',').map(c => c.trim()).filter(c => c); + selectedTools.forEach(index => { + const tool = yamlData.tools[index]; + tool.related_concepts = [...new Set([...(tool.related_concepts || []), ...conceptList])]; + }); + showMessage(`Added related concepts to ${selectedTools.size} tools`); + renderBulkGrid(); + } + } + + function bulkRemoveRelatedConcepts() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + const concepts = prompt('Enter related concept names to remove (comma-separated):'); + if (concepts) { + const conceptList = concepts.split(',').map(c => c.trim()).filter(c => c); + selectedTools.forEach(index => { + const tool = yamlData.tools[index]; + if (tool.related_concepts) { + tool.related_concepts = tool.related_concepts.filter(concept => !conceptList.includes(concept)); + if (tool.related_concepts.length === 0) delete tool.related_concepts; + } + }); + showMessage(`Removed related concepts from ${selectedTools.size} tools`); + renderBulkGrid(); + } + } + + function bulkClearRelatedConcepts() { + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); + if (confirm(`Are you sure you want to clear ALL related concepts from ${selectedTools.size} selected tools?`)) { + selectedTools.forEach(index => { + delete yamlData.tools[index].related_concepts; + }); + showMessage(`Cleared related concepts from ${selectedTools.size} tools`); renderBulkGrid(); } } function bulkDelete() { - if (selectedTools.size === 0) { - showMessage('No tools selected', 'error'); - return; - } - + if (selectedTools.size === 0) return showMessage('No tools selected', 'error'); if (confirm(`Are you sure you want to delete ${selectedTools.size} selected tools?`)) { const indicesToDelete = Array.from(selectedTools).sort((a, b) => b - a); - indicesToDelete.forEach(index => { - yamlData.tools.splice(index, 1); - }); + indicesToDelete.forEach(index => yamlData.tools.splice(index, 1)); selectedTools.clear(); showMessage(`Deleted ${indicesToDelete.length} tools successfully!`); updateStats(); @@ -1387,22 +1380,19 @@ } } - // Knowledge Generator + // Knowledge Generator - Enhanced for ForensicPathways format function updateKnowledgeToolSelect() { const select = document.getElementById('knowledgeToolSelect'); select.innerHTML = ''; - if (!yamlData || !yamlData.tools) return; + if (!yamlData?.tools) return; - yamlData.tools - .filter(tool => tool.knowledgebase || tool.type === 'concept') - .forEach((tool, index) => { - const originalIndex = yamlData.tools.indexOf(tool); - const option = document.createElement('option'); - option.value = originalIndex; - option.textContent = `${tool.icon ? tool.icon + ' ' : ''}${tool.name} (${tool.type || 'software'})`; - select.appendChild(option); - }); + yamlData.tools.forEach((tool, index) => { + const option = document.createElement('option'); + option.value = index; + option.textContent = `${tool.icon ? tool.icon + ' ' : ''}${tool.name} (${tool.type || 'software'})`; + select.appendChild(option); + }); } function generateKnowledgeTemplate() { @@ -1415,134 +1405,120 @@ } const tool = yamlData.tools[index]; - const template = createMarkdownTemplate(tool); + const template = createCC24MarkdownTemplate(tool); - document.getElementById('markdownContent').textContent = template; + document.getElementById('markdownContent').value = template; document.getElementById('knowledgePreview').classList.remove('hidden'); } - function createMarkdownTemplate(tool) { - const isConceptType = tool.type === 'concept'; - const title = isConceptType ? 'Concept' : 'Tool'; - - return `# ${tool.icon ? tool.icon + ' ' : ''}${tool.name} + function createCC24MarkdownTemplate(tool) { + const toolSlug = tool.name.toLowerCase() + .replace(/[^a-z0-9\s-]/g, '') + .replace(/\s+/g, '-') + .replace(/-+/g, '-') + .replace(/^-|-$/g, ''); -## Overview + return `--- + title: "${tool.name}" + description: "${tool.description.split('\n')[0].trim()}" + last_updated: ${new Date().toISOString().split('T')[0]} + tool_name: "${tool.name}" + related_tools: ${tool.related_concepts ? JSON.stringify(tool.related_concepts) : '[]'} + author: "CC24-Team" + difficulty: "${tool.skillLevel || 'intermediate'}" + categories: ${tool.type === 'concept' ? '["concepts"]' : tool.type === 'method' ? '["methods"]' : '["tools"]'} + tags: ${tool.tags ? JSON.stringify(tool.tags) : '[]'} + published: true + --- -${tool.description} + # ${tool.icon ? tool.icon + ' ' : ''}${tool.name} -**Type**: ${tool.type || 'software'} -**Skill Level**: ${tool.skillLevel || 'intermediate'} -**Official URL**: [${tool.name}](${tool.url}) + ## Übersicht -${tool.license ? `**License**: ${tool.license}` : ''} -${tool.platforms && tool.platforms.length > 0 ? `**Platforms**: ${tool.platforms.join(', ')}` : ''} + ${tool.description} -## ${isConceptType ? 'Key Concepts' : 'Key Features'} + **Typ**: ${tool.type || 'software'} + **Skill Level**: ${tool.skillLevel || 'intermediate'} + **Offizielle URL**: [${tool.name}](${tool.url}) -- Feature/concept 1 -- Feature/concept 2 -- Feature/concept 3 + ${tool.license ? `**Lizenz**: ${tool.license}\n` : ''}${tool.platforms && tool.platforms.length > 0 ? `**Plattformen**: ${tool.platforms.join(', ')}\n` : ''}${tool.accessType ? `**Zugriff**: ${tool.accessType}\n` : ''} -## ${isConceptType ? 'Applications' : 'Installation & Setup'} + ${tool.domains && tool.domains.length > 0 ? `## Anwendungsbereiche -${isConceptType ? -`This concept applies to: -- Use case 1 -- Use case 2 -- Use case 3` : -`### Prerequisites -- Requirement 1 -- Requirement 2 + ${tool.domains.map(domain => `- ${domain}`).join('\n')}\n\n` : ''}${tool.phases && tool.phases.length > 0 ? `## Ermittlungsphasen -### Installation Steps -1. Step 1 -2. Step 2 -3. Step 3`} + ${tool.phases.map(phase => `- ${phase}`).join('\n')}\n\n` : ''}## ${tool.type === 'concept' ? 'Grundlagen' : tool.type === 'method' ? 'Vorgehensweise' : 'Installation & Nutzung'} -## ${isConceptType ? 'Related Tools' : 'Basic Usage'} + ${tool.type === 'concept' ? + `### Kernkonzepte -${isConceptType ? -`Tools that implement or relate to this concept: -${tool.related_concepts ? tool.related_concepts.map(c => `- ${c}`).join('\n') : '- Related tool 1\n- Related tool 2'}` : -`### Common Commands/Operations -\`\`\`bash -# Example command 1 -command --option value + TODO: Beschreibe die wichtigsten Konzepte und Prinzipien. -# Example command 2 -command2 --help -\`\`\` + ### Anwendungsbereiche -### Workflow Examples -1. Basic workflow step -2. Advanced workflow step`} + TODO: Erkläre, wo und wie dieses Konzept angewendet wird.` : + tool.type === 'method' ? + `### Schritt-für-Schritt Anleitung -## Advanced Topics + 1. TODO: Erster Schritt + 2. TODO: Zweiter Schritt + 3. TODO: Dritter Schritt -${isConceptType ? -`### Implementation Variations -- Variation 1 -- Variation 2 + ### Voraussetzungen -### Best Practices -- Practice 1 -- Practice 2` : -`### Advanced Configuration -- Advanced setting 1 -- Advanced setting 2 + TODO: Liste die erforderlichen Voraussetzungen auf.` : + `### Installation -### Integration with Other Tools -- Integration 1 -- Integration 2`} + TODO: Beschreibe die Installation für die relevanten Plattformen. -## Troubleshooting + ### Grundlegende Nutzung -### Common Issues + TODO: Erkläre die wichtigsten Funktionen und Befehle. -**Issue 1**: Description -- Solution: Solution description + ### Workflow-Beispiele -**Issue 2**: Description -- Solution: Solution description + TODO: Zeige typische Anwendungsfälle und Workflows.`} -## Resources + ## Best Practices -- [Official Documentation](${tool.url}) -${tool.projectUrl ? `- [Project Repository](${tool.projectUrl})` : ''} -- Additional resource 1 -- Additional resource 2 + TODO: Teile bewährte Praktiken und Tipps für die optimale Nutzung. -## Tags + ## Häufige Probleme -${tool.tags ? tool.tags.map(tag => `\`${tag}\``).join(' ') : '`tag1` `tag2` `tag3`'} + TODO: Beschreibe häufige Stolpersteine und deren Lösungen. -${tool.domains && tool.domains.length > 0 ? `## Forensics Domains + ${tool.related_concepts && tool.related_concepts.length > 0 ? `## Verwandte Tools und Konzepte -${tool.domains.map(domain => `- ${domain}`).join('\n')}` : ''} + ${tool.related_concepts.map(concept => `- ${concept}`).join('\n')}\n\n` : ''}## Weitere Ressourcen -${tool.phases && tool.phases.length > 0 ? `## Investigation Phases + - [Offizielle Dokumentation](${tool.url})${tool.projectUrl ? `\n- [CC24 Server Zugang](${tool.projectUrl})` : ''} -${tool.phases.map(phase => `- ${phase}`).join('\n')}` : ''} + TODO: Füge weitere nützliche Links und Ressourcen hinzu. ---- + --- -*Last updated: ${new Date().toISOString().split('T')[0]}* -`; + *Zuletzt aktualisiert: ${new Date().toLocaleDateString('de-DE')}* + `; } function downloadMarkdown() { - const content = document.getElementById('markdownContent').textContent; + const content = document.getElementById('markdownContent').value; const select = document.getElementById('knowledgeToolSelect'); const index = parseInt(select.value); const tool = yamlData.tools[index]; + const toolSlug = tool.name.toLowerCase() + .replace(/[^a-z0-9\s-]/g, '') + .replace(/\s+/g, '-') + .replace(/-+/g, '-') + .replace(/^-|-$/g, ''); + const blob = new Blob([content], { type: 'text/markdown' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; - a.download = `${tool.name.toLowerCase().replace(/[^a-z0-9]/g, '-')}.md`; + a.download = `${toolSlug}.md`; document.body.appendChild(a); a.click(); document.body.removeChild(a); @@ -1551,12 +1527,18 @@ ${tool.phases.map(phase => `- ${phase}`).join('\n')}` : ''} showMessage('Markdown template downloaded successfully!'); } + function copyMarkdown() { + const content = document.getElementById('markdownContent').value; + navigator.clipboard.writeText(content).then(() => { + showMessage('Markdown copied to clipboard!'); + }).catch(() => { + showMessage('Failed to copy to clipboard', 'error'); + }); + } + // Validation and Export function validateYAML() { - if (!yamlData) { - showMessage('No data to validate', 'error'); - return; - } + if (!yamlData) return showMessage('No data to validate', 'error'); const validationResults = []; @@ -1566,44 +1548,24 @@ ${tool.phases.map(phase => `- ${phase}`).join('\n')}` : ''} if (!yamlData.phases) validationResults.push('❌ Missing phases section'); // Validate tools - if (yamlData.tools) { - yamlData.tools.forEach((tool, index) => { - if (!tool.name) validationResults.push(`❌ Tool ${index + 1}: Missing name`); - if (!tool.description) validationResults.push(`❌ Tool ${index + 1}: Missing description`); - if (!tool.skillLevel) validationResults.push(`❌ Tool ${index + 1}: Missing skillLevel`); - if (!tool.type) validationResults.push(`❌ Tool ${index + 1}: Missing type`); - if (tool.type && !['software', 'method', 'concept'].includes(tool.type)) { - validationResults.push(`❌ Tool ${index + 1}: Invalid type (must be 'software', 'method', or 'concept')`); - } - - // Type-specific validation - if (tool.type === 'software') { - if (!tool.platforms || tool.platforms.length === 0) { - validationResults.push(`⚠️ Tool ${index + 1}: Software should have platforms`); - } - if (!tool.license) validationResults.push(`⚠️ Tool ${index + 1}: Software should have license`); - } - - if (tool.type === 'concept') { - if (tool.platforms && tool.platforms.length > 0) { - validationResults.push(`⚠️ Tool ${index + 1}: Concepts should not have platforms`); - } - if (tool.license) { - validationResults.push(`⚠️ Tool ${index + 1}: Concepts should not have license`); - } - } - - // Validate related_concepts references - if (tool.related_concepts) { - const conceptNames = yamlData.tools.filter(t => t.type === 'concept').map(t => t.name); - tool.related_concepts.forEach(conceptName => { - if (!conceptNames.includes(conceptName)) { - validationResults.push(`⚠️ Tool ${index + 1}: References unknown concept '${conceptName}'`); - } - }); - } - }); - } + yamlData.tools?.forEach((tool, index) => { + if (!tool.name) validationResults.push(`❌ Tool ${index + 1}: Missing name`); + if (!tool.description) validationResults.push(`❌ Tool ${index + 1}: Missing description`); + if (!tool.skillLevel) validationResults.push(`❌ Tool ${index + 1}: Missing skillLevel`); + if (!tool.url) validationResults.push(`❌ Tool ${index + 1}: Missing url`); + if (tool.type && !['software', 'method', 'concept'].includes(tool.type)) { + validationResults.push(`❌ Tool ${index + 1}: Invalid type`); + } + + // Type-specific validation + if (tool.type === 'software' && (!tool.platforms || tool.platforms.length === 0)) { + validationResults.push(`⚠️ Tool ${index + 1}: Software should have platforms`); + } + + if (tool.type === 'concept' && tool.platforms?.length > 0) { + validationResults.push(`⚠️ Tool ${index + 1}: Concepts should not have platforms`); + } + }); const container = document.getElementById('validationContent'); if (validationResults.length === 0) { @@ -1616,10 +1578,7 @@ ${tool.phases.map(phase => `- ${phase}`).join('\n')}` : ''} } function previewYAML() { - if (!yamlData) { - showMessage('No data to preview', 'error'); - return; - } + if (!yamlData) return showMessage('No data to preview', 'error'); const yamlString = jsyaml.dump(yamlData, { indent: 2 }); document.getElementById('yamlPreviewText').value = yamlString; @@ -1627,10 +1586,7 @@ ${tool.phases.map(phase => `- ${phase}`).join('\n')}` : ''} } function exportYAML() { - if (!yamlData) { - showMessage('No data to export', 'error'); - return; - } + if (!yamlData) return showMessage('No data to export', 'error'); const yamlString = jsyaml.dump(yamlData, { indent: 2 }); const blob = new Blob([yamlString], { type: 'text/yaml' }); @@ -1638,7 +1594,7 @@ ${tool.phases.map(phase => `- ${phase}`).join('\n')}` : ''} const a = document.createElement('a'); a.href = url; - a.download = 'dfir-tools.yaml'; + a.download = 'tools.yaml'; document.body.appendChild(a); a.click(); document.body.removeChild(a); @@ -1647,7 +1603,7 @@ ${tool.phases.map(phase => `- ${phase}`).join('\n')}` : ''} showMessage('YAML file exported successfully!'); } - // Initialize the application + // Initialize init(); diff --git a/package.json b/package.json index 45468ef..12677b7 100644 --- a/package.json +++ b/package.json @@ -7,20 +7,19 @@ "start": "astro dev", "build": "astro build", "preview": "astro preview", - "astro": "astro", - "check:health": "curl -f http://localhost:4321/health || exit 1" + "astro": "astro" }, "dependencies": { "@astrojs/node": "^9.3.0", - "astro": "^5.12.0", - "cookie": "^0.6.0", + "astro": "^5.12.3", + "cookie": "^1.0.2", "dotenv": "^16.4.5", "jose": "^5.2.0", "js-yaml": "^4.1.0", + "jsonwebtoken": "^9.0.2", "zod": "^3.25.76" }, "devDependencies": { - "@types/cookie": "^0.6.0", "@types/js-yaml": "^4.0.9" }, "engines": { diff --git a/src/components/AIQueryInterface.astro b/src/components/AIQueryInterface.astro index 34600f6..6e760e7 100644 --- a/src/components/AIQueryInterface.astro +++ b/src/components/AIQueryInterface.astro @@ -64,7 +64,7 @@ const domainAgnosticSoftware = data['domain-agnostic-software'] || []; - Ihre Anfrage wird an mistral.ai übertragen und unterliegt deren + Ihre Anfrage wird über die kostenlose API von mistral.ai übertragen, wird für KI-Training verwendet und unterliegt deren Datenschutzrichtlinien

@@ -81,7 +81,8 @@ const domainAgnosticSoftware = data['domain-agnostic-software'] || [];
- + + @@ -240,86 +267,161 @@ document.addEventListener('DOMContentLoaded', () => { aiInput.addEventListener('input', updateCharacterCount); updateCharacterCount(); - // Submit handler - const handleSubmit = async () => { - const query = aiInput.value.trim(); - - if (!query) { - alert('Bitte geben Sie eine Beschreibung ein.'); - return; - } - - if (query.length < 10) { - alert('Bitte geben Sie eine detailliertere Beschreibung ein (mindestens 10 Zeichen).'); - return; - } - - // Hide previous results and errors - aiResults.style.display = 'none'; - aiError.style.display = 'none'; - aiLoading.style.display = 'block'; - - // Disable submit button - aiSubmitBtn.disabled = true; - submitBtnText.textContent = currentMode === 'workflow' ? 'Generiere Empfehlungen...' : 'Suche passende Methode...'; - - try { - const response = await fetch('/api/ai/query', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - query, - mode: currentMode - }) - }); - - const data = await response.json(); - - if (!response.ok) { - throw new Error(data.error || `HTTP ${response.status}`); - } - - if (!data.success) { - throw new Error(data.error || 'Unknown error'); - } - - // Store recommendation for restoration - currentRecommendation = data.recommendation; + // Submit handler with enhanced queue feedback + const handleSubmit = async () => { + const query = aiInput.value.trim(); - // Display results based on mode - if (currentMode === 'workflow') { - displayWorkflowResults(data.recommendation, query); - } else { - displayToolResults(data.recommendation, query); + if (!query) { + alert('Bitte geben Sie eine Beschreibung ein.'); + return; + } + + if (query.length < 10) { + alert('Bitte geben Sie eine detailliertere Beschreibung ein (mindestens 10 Zeichen).'); + return; + } + + // Generate task ID for tracking + const taskId = `ai_${Date.now()}_${Math.random().toString(36).substr(2, 6)}`; + + // Hide previous results and errors + aiResults.style.display = 'none'; + aiError.style.display = 'none'; + aiLoading.style.display = 'block'; + + // Show queue status section + const queueStatus = document.getElementById('queue-status'); + const taskIdDisplay = document.getElementById('current-task-id'); + if (queueStatus && taskIdDisplay) { + queueStatus.style.display = 'block'; + taskIdDisplay.textContent = taskId; } - aiLoading.style.display = 'none'; - aiResults.style.display = 'block'; + // Disable submit button + aiSubmitBtn.disabled = true; + submitBtnText.textContent = currentMode === 'workflow' ? 'Generiere Empfehlungen...' : 'Suche passende Methode...'; - } catch (error) { - console.error('AI query failed:', error); - aiLoading.style.display = 'none'; - aiError.style.display = 'block'; + // Start queue status polling + let statusInterval; + let startTime = Date.now(); - // Show user-friendly error messages - if (error.message.includes('429')) { - aiErrorMessage.textContent = 'Zu viele Anfragen. Bitte warten Sie einen Moment und versuchen Sie es erneut.'; - } else if (error.message.includes('401')) { - aiErrorMessage.textContent = 'Authentifizierung erforderlich. Bitte melden Sie sich an.'; - } else if (error.message.includes('503')) { - aiErrorMessage.textContent = 'KI-Service vorübergehend nicht verfügbar. Bitte versuchen Sie es später erneut.'; - } else { - aiErrorMessage.textContent = `Fehler: ${error.message}`; + const updateQueueStatus = async () => { + try { + const response = await fetch(`/api/ai/queue-status?taskId=${taskId}`); + const data = await response.json(); + + if (data.success) { + const queueLength = document.getElementById('queue-length'); + const estimatedTime = document.getElementById('estimated-time'); + const positionBadge = document.getElementById('queue-position-badge'); + const progressBar = document.getElementById('queue-progress'); + + if (queueLength) queueLength.textContent = data.queueLength; + + if (estimatedTime) { + if (data.estimatedWaitTime > 0) { + estimatedTime.textContent = formatDuration(data.estimatedWaitTime); + } else { + estimatedTime.textContent = 'Verarbeitung läuft...'; + } + } + + if (positionBadge && data.currentPosition) { + positionBadge.textContent = data.currentPosition; + + // Update progress bar (inverse of position) + if (progressBar && data.queueLength > 0) { + const progress = Math.max(0, ((data.queueLength - data.currentPosition + 1) / data.queueLength) * 100); + progressBar.style.width = `${progress}%`; + } + } + + // If processing and no position (request is being handled) + if (data.isProcessing && !data.currentPosition) { + if (positionBadge) positionBadge.textContent = '⚡'; + if (progressBar) progressBar.style.width = '100%'; + if (estimatedTime) estimatedTime.textContent = 'Verarbeitung läuft...'; + } + } + } catch (error) { + console.warn('Queue status update failed:', error); + } + }; + + // Initial status update + updateQueueStatus(); + + // Poll every 500ms for status updates + statusInterval = setInterval(updateQueueStatus, 500); + + try { + const response = await fetch('/api/ai/query', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + query, + mode: currentMode, + taskId // Include task ID for backend tracking + }) + }); + + const data = await response.json(); + + // Clear status polling + if (statusInterval) clearInterval(statusInterval); + + if (!response.ok) { + throw new Error(data.error || `HTTP ${response.status}`); + } + + if (!data.success) { + throw new Error(data.error || 'Unknown error'); + } + + // Store recommendation for restoration + currentRecommendation = data.recommendation; + + // Display results based on mode + if (currentMode === 'workflow') { + displayWorkflowResults(data.recommendation, query); + } else { + displayToolResults(data.recommendation, query); + } + + aiLoading.style.display = 'none'; + aiResults.style.display = 'block'; + + } catch (error) { + console.error('AI query failed:', error); + + // Clear status polling + if (statusInterval) clearInterval(statusInterval); + + aiLoading.style.display = 'none'; + aiError.style.display = 'block'; + + // Show user-friendly error messages + if (error.message.includes('429')) { + aiErrorMessage.textContent = 'Zu viele Anfragen. Bitte warten Sie einen Moment und versuchen Sie es erneut.'; + } else if (error.message.includes('401')) { + aiErrorMessage.textContent = 'Authentifizierung erforderlich. Bitte melden Sie sich an.'; + } else if (error.message.includes('503')) { + aiErrorMessage.textContent = 'KI-Service vorübergehend nicht verfügbar. Bitte versuchen Sie es später erneut.'; + } else { + aiErrorMessage.textContent = `Fehler: ${error.message}`; + } + } finally { + // Re-enable submit button and hide queue status + aiSubmitBtn.disabled = false; + const config = modeConfig[currentMode]; + submitBtnText.textContent = config.submitText; + + if (queueStatus) queueStatus.style.display = 'none'; + if (statusInterval) clearInterval(statusInterval); } - } finally { - // Re-enable submit button - aiSubmitBtn.disabled = false; - const config = modeConfig[currentMode]; - submitBtnText.textContent = config.submitText; - } - }; + }; // Event listeners aiSubmitBtn.addEventListener('click', handleSubmit); @@ -616,7 +718,7 @@ document.addEventListener('DOMContentLoaded', () => { - Passende Tool-Empfehlungen + Passende Empfehlungen

Basierend auf Ihrer Anfrage: "${originalQuery.slice(0, 100)}${originalQuery.length > 100 ? '...' : ''}" diff --git a/src/components/ContributionButton.astro b/src/components/ContributionButton.astro new file mode 100644 index 0000000..79a0218 --- /dev/null +++ b/src/components/ContributionButton.astro @@ -0,0 +1,72 @@ +--- +// src/components/ContributionButton.astro - CLEANED: Removed duplicate auth script +export interface Props { + type: 'edit' | 'new' | 'write'; + toolName?: string; + variant?: 'primary' | 'secondary' | 'small'; + text?: string; + className?: string; + style?: string; +} + +const { + type, + toolName, + variant = 'secondary', + text, + className = '', + style = '' +} = Astro.props; + +// Generate appropriate URLs and text based on type +let href: string; +let defaultText: string; +let icon: string; + +switch (type) { + case 'edit': + href = `/contribute/tool?edit=${encodeURIComponent(toolName || '')}`; + defaultText = 'Edit'; + icon = ` + `; + break; + case 'new': + href = '/contribute/tool'; + defaultText = 'Add Tool'; + icon = ` + `; + break; + case 'write': + href = '/contribute/knowledgebase'; + defaultText = 'Write Article'; + icon = ` + + + + `; + break; + default: + href = '/contribute'; + defaultText = 'Contribute'; + icon = ` + `; +} + +const displayText = text || defaultText; +const buttonClass = `btn btn-${variant} ${className}`.trim(); +const iconSize = variant === 'small' ? '14' : '16'; +--- + + + + + + {displayText} + \ No newline at end of file diff --git a/src/components/Footer.astro b/src/components/Footer.astro index b68089c..7fa188a 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -7,7 +7,7 @@