Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
KeeFarceReborn — Eine eigenständige DLL, die nach der Injektion in den KeePass-Prozess Datenbanken im Klartext exportiert. | Kitploit
Tools/GitHubGitHub/d3lb3/keefarcereborn
PasswortangriffePayload-GenerierungDatenexfiltrationPost-ExploitationRed TeamingShellcode-Generierung
GitHubd3lb3/keefarcereborn

KeeFarceReborn

Eine eigenständige DLL, die nach der Injektion in den KeePass-Prozess Datenbanken im Klartext exportiert.

Repository anzeigen
2993523vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

KeeFarce Reborn

Eine eigenständige DLL, die Datenbanken im Klartext exportiert, sobald sie in den KeePass-Prozess injiziert wurde.

Stark inspiriert von den großartigen Projekten KeeFarce, KeeThief und KeePassHax.

Noch ein KeePass-Extraktionstool, warum ?

Vor einigen Jahren veröffentlichte @denandz KeeFarce, das erste offensive Tool, das entwickelt wurde, um KeePass-Datenbanken im Klartext zu extrahieren. Es funktioniert, indem es eine DLL in den laufenden Prozess injiziert und dann mit ClrMD den Heap durchläuft, um die notwendigen Objekte zu finden und KeePass' eingebaute Exportmethode per Reflektion aufzurufen. Sein einziger Nachteil damals war, dass mehrere Dateien auf dem Zielsystem abgelegt werden mussten (die Extraktions-DLL + ClrMD-DLL + der Injector + eine Bootstrap-DLL).

Ein Jahr später veröffentlichten @tifkin_ und @harmj0y eine ausführliche Analyse offensiver Techniken gegen KeePass (obwohl sie nicht mehr auf harmj0ys Blog verfügbar sind, sind die Artikel über die Wayback Machine zu finden: Teil 1, Teil 2). Dies führte zur Veröffentlichung von KeeThief, einem Tool, das in der Lage ist, KeePass' Masterkey zu entschlüsseln (auch wenn alternative Authentifizierungsmethoden verwendet werden). Es funktionierte so gut, dass die KeePass-Entwickler einen Parameter hinzufügten, um diese Technik abzuschwächen (er kann deaktiviert werden, indem man die KeePass-Konfigurationsdatei bearbeitet, sofern der Benutzer über ausreichende Rechte verfügt, was recht häufig vorkommt).

Diese Tools wurden während Penetrationstests schnell zu meinen bevorzugten Werkzeugen, aber sie wurden bald obsolet, da ihre Injektionstechniken (namentlich die berüchtigte Win32-API-Gang aus VirtualAllocEx, WriteProcessMemory, CreateRemoteThread, WriteProcessMemory, usw.) mittlerweile sofort Erkennung auslösen. @snovvcrash ging dieses Problem an, indem er KeeThief forkte (jetzt in einem privaten Repo, aber weiterhin hier zugänglich), um den Injektionsmechanismus mit D/Invoke zu verbessern, und schrieb einen großartigen Artikel, der den von ihm verfolgten Prozess detailliert beschreibt. Auch wenn dies die Machbarkeit der Pflege von KeeThief demonstrierte, fällt es mir schwer, regelmäßig neue Injektionstechniken zu implementieren, da KeeThiefs Code eng mit seinem Injector verknüpft ist.

@holly-cracker veröffentlichte außerdem KeePassHax, das als einzelne DLL daherkommt und ausschließlich Reflektion verwendet, um KeePass' Masterkey zu entschlüsseln. Inspiriert von dieser Arbeit entschied ich mich, dasselbe mit KeeFarce zu tun und mein eigenes KeePass-Extraktionstool mit den folgenden Funktionen zu schreiben:

  • Eigenständig ⇒ keine Interaktion mit dem Code des Injectors erforderlich, um zu funktionieren.
  • Verwendet ausschließlich integrierte .NET-Bibliotheken (kein ClrMD) ⇒ bessere Kompatibilität + einzelne DLL erleichtert den Injektionsprozess.
  • Exportiert die Datenbank (wie KeeFarce) ⇒ keine Notwendigkeit, die .kdbx abzurufen oder einen eigenen KeePass-Build zu verwenden, um den wiederhergestellten Masterkey einzugeben.

KeeFarce Reborn bietet außerdem eine KeePass-Plugin-DLL, damit KeePass sich selbst injiziert, ohne sich mit Injectoren herumschlagen zu müssen!

Erstellen

Da der Code ausschließlich auf .NET Framework ohne externe Abhängigkeiten basiert, sollte er problemlos mit Visual Studio 2015 und höher kompilieren.

Anwendungsbeispiel

KeeFarce Reborn enthält keinen Injector, um die DLL in den KeePass-Prozess zu laden. Das ist beabsichtigt, da Injectoren alle paar Monate veralten – du musst also deinen eigenen verwenden. Die folgenden Abschnitte zeigen zwei typische Möglichkeiten, eine Injektion durchzuführen.

KeePass dazu bringen, KeeFarce Reborn als Plugin zu injizieren

Voraussetzung: Schreibzugriff auf das KeePass-Plugin-Verzeichnis.

KeePass verfügt über ein Plugin-Framework, um Benutzern zusätzliche Funktionen bereitzustellen. Es funktioniert, indem eine DLL in den KeePass-Prozess geladen wird, was Plugin-Entwicklern ermöglicht, Aktionen innerhalb der KeePass-Anwendungsdomäne auszuführen.

Folglich können wir diese Funktionalität missbrauchen, um KeeFarce Reborn als Plugin zu laden, ohne überhaupt einen externen Injector verwenden zu müssen! Du musst nur das Projekt KeeFarceRebornPlugin kompilieren und die DLL in das Plugin-Verzeichnis kopieren (das sich im KeePass-Wurzelverzeichnis befindet, nämlich "C:\Program Files\KeePass Password Safe 2\Plugins" bei einer globalen Installation).

Damit das Projekt korrekt erstellt wird, musst du die jeweilige KeePass.exe-Assemblyversion in das Verzeichnis KeeFarceRebornPlugin kopieren oder die PLGX verwenden, wenn das resultierende Plugin mit jeder KeePass-Version kompatibel sein soll.

Beim nächsten Start von KeePass und dem Entsperren einer Datenbank wird die DLL geladen und die Injektion durchgeführt. Wenn KeePass bereits läuft, musst du auf den nächsten Neustart warten, damit die Injektion erfolgt (oder den Neustart selbst erzwingen).

⚠️ Sobald ein Plugin geladen ist, ist die DLL-Datei bis zum Schließen von KeePass schreibgeschützt. Denke daran, um sicherzustellen, dass du bei Assessments keine schädlichen Plugins hinterlässt.

Wenn du keinen Schreibzugriff auf das KeePass-Plugin-Verzeichnis hast, wirf einen Blick auf Quarkslabs Artikel, der zeigt, wie Plugins mit weniger Rechten über den Plugin-Cache geladen werden können.

Shellcode-Injektion durchführen

Voraussetzung: KeePass läuft + eine Datenbank ist vom Benutzer entsperrt + du hast ausreichende Rechte, um in den KeePass-Prozess zu injizieren.

Da ich persönlich es einfacher finde, Shellcode unauffällig zu injizieren als eine DLL in einen entfernten Prozess, beginne ich typischerweise damit, positionsunabhängigen Shellcode aus unserer DLL zu erzeugen. Es scheint, dass das donut-Projekt von @odzhan und @TheWover perfekt unsere Bedürfnisse erfüllt!

Wir kompilieren donut von einem Commit im Dev-Branch, da dieser ein Problem in der Anwendungsdomänenverwaltung behebt, das uns daran hindern würde, Reflektion in der Standarddomäne durchzuführen.

git clone https://github.com/TheWover/donut/
cd donut
git checkout 9d781d8da571eb1499122fc0e2d6e89e5a43603c

Wir können es problemlos aus der x64 Native Tools Command Prompt von Visual Studio mit dem Dienstprogramm nmake erstellen:

nmake -f Makefile.msvc

Das Erzeugen des Shellcodes ist so einfach wie:

.\donut.exe "C:\KeeFarceReborn\KeePassReborn\bin\Release\KeeFarceReborn.dll" -c KeeFarceReborn.Program -m Main -e 1

  [ Donut shellcode generator v0.9.3
  [ Copyright (c) 2019 TheWover, Odzhan
Tool herunterladen