Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
KeeFarceReborn — Автономная DLL, которая после внедрения в процесс KeePass экспортирует базы данных в открытом виде. | Kitploit
Инструменты/GitHubGitHub/d3lb3/keefarcereborn
Атаки на ПаролиГенерация полезной нагрузкиЭксфильтрация данныхПост-эксплуатацияRed TeamingГенерация Шеллкода
GitHubd3lb3/keefarcereborn

KeeFarceReborn

Автономная DLL, которая после внедрения в процесс KeePass экспортирует базы данных в открытом виде.

Репозиторий
29935233 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

KeeFarce Reborn

Автономная DLL, которая экспортирует базы данных в открытом виде после внедрения в процесс KeePass.

Во многом вдохновлён замечательными проектами KeeFarce, KeeThief и KeePassHax.

Зачем ещё один инструмент для извлечения данных из KeePass?

Несколько лет назад @denandz выпустил KeeFarce — первый наступательный инструмент, предназначенный для извлечения баз данных KeePass в открытом виде. Он работает путём внедрения DLL в запущенный процесс, а затем обходит кучу с помощью ClrMD, чтобы найти нужные объекты и с помощью рефлексии вызвать встроенный метод экспорта KeePass. Единственным недостатком на тот момент было то, что на цель нужно было скинуть несколько файлов (экспортирующая DLL + DLL ClrMD + инжектор + загрузочная DLL).

Год спустя @tifkin_ и @harmj0y выпустили подробный обзор атакующих техник, нацеленных на KeePass (хотя в блоге harmj0y их больше нет, статьи можно найти в Wayback Machine: часть 1, часть 2). Результатом стал выпуск KeeThief — инструмента, способного расшифровать мастер-ключ KeePass (в том числе при использовании альтернативных методов аутентификации). Он работал настолько хорошо, что разработчики KeePass добавили параметр для противодействия этой технике (его можно отключить, отредактировав конфигурационный файл KeePass, если у пользователя достаточно прав, что довольно часто бывает).

Эти инструменты быстро стали моим выбором по умолчанию при пентестах, но вскоре устарели, поскольку их техники инжекции (а именно знаменитая группа Win32 API: VirtualAllocEx, WriteProcessMemory, CreateRemoteThread, WriteProcessMemory и т.д.) теперь мгновенно детектируются. @snovvcrash решил эту проблему, форкнув KeeThief (сейчас он в приватном репозитории, но всё ещё доступен здесь), чтобы улучшить механизм инжекции с помощью D/Invoke, и написал отличную статью с описанием проделанной работы. Хотя это показало, что поддерживать KeeThief реально, мне сложно регулярно реализовывать новые техники инжекции, так как код KeeThief жёстко связан с его инжектором.

@holly-cracker также выпустил KeePassHax, который представляет собой одну DLL и использует только рефлексию для расшифровки мастер-ключа KeePass. Вдохновившись этой работой, я решил сделать то же самое с KeeFarce и написать собственный инструмент для извлечения данных из KeePass со следующими возможностями:

  • Самодостаточность ⇒ для работы не требуется взаимодействие с кодом инжектора.
  • Использует только встроенные библиотеки .NET (без ClrMD) ⇒ лучшая совместимость + одна DLL упрощает процесс инжекции.
  • Экспортирует базу данных (как KeeFarce) ⇒ не нужно извлекать .kdbx или использовать кастомную сборку KeePass для ввода восстановленного мастер-ключа.

KeeFarce Reborn также предоставляет DLL-плагин для KeePass, позволяющий KeePass внедрить сам себя без возни с инжекторами!

Сборка

Поскольку код использует только .NET Framework без внешних зависимостей, он должен легко компилироваться в Visual Studio 2015 и новее.

Пример использования

KeeFarce Reborn не включает инжектор для загрузки DLL в процесс KeePass. Это сделано намеренно: инжекторы устаревают каждые несколько месяцев, поэтому вам придётся использовать свой собственный. В следующих разделах показаны два типичных способа выполнить инжекцию.

Заставляем KeePass внедрять KeeFarce Reborn как плагин

Предварительное требование: доступ на запись в каталог плагинов KeePass.

KeePass имеет плагинный фреймворк, предоставляющий пользователям дополнительные возможности. Он работает за счёт загрузки DLL в процесс KeePass, что позволяет разработчикам плагинов выполнять действия в домене приложения KeePass.

Следовательно, мы можем злоупотребить этой функциональностью, чтобы загрузить KeeFarce Reborn как плагин, даже не используя внешний инжектор! Вам нужно лишь скомпилировать проект KeeFarceRebornPlugin и скопировать DLL в каталог плагинов (он расположен в корне KeePass, а именно "C:\Program Files\KeePass Password Safe 2\Plugins" для глобальной установки).

Для правильной сборки проекта вам нужно скопировать целевую версию сборки KeePass.exe в каталог KeeFarceRebornPlugin либо использовать PLGX, если вы хотите, чтобы итоговый плагин был совместим с любой версией KeePass.

При следующем запуске KeePass и после разблокировки базы данных DLL будет загружена и инжекция выполнена. Если KeePass уже запущен, придётся дождаться следующего перезапуска, чтобы инжекция произошла (или перезапустить его самостоятельно).

⚠️ После загрузки плагина файл DLL будет защищён от записи, пока KeePass не будет закрыт. Имейте это в виду, чтобы не оставлять после себя вредоносные плагины во время тестов.

Если у вас нет доступа на запись в каталог плагинов KeePass, обратите внимание на статью Quarkslab, в которой показано, как загружать плагины с меньшими привилегиями через кэш плагинов.

Выполнение инжекции шеллкода

Предварительное требование: KeePass запущен + база данных разблокирована пользователем + у вас достаточно прав для внедрения в процесс KeePass.

Поскольку лично мне проще скрытно внедрять шеллкод, чем DLL, в удалённый процесс, обычно я начинаю с генерации позиционно-независимого шеллкода из нашей DLL. Оказывается, проект donut от @odzhan и @TheWover идеально подходит для наших нужд!

Мы компилируем donut из коммита в ветке dev, так как там исправлена проблема с управлением доменами приложений, которая не позволяла нам выполнять рефлексию в домене по умолчанию.

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

Мы можем легко собрать его из x64 Native Tools Command Prompt от Visual Studio с помощью утилиты nmake:

nmake -f Makefile.msvc

Генерация шеллкода выглядит так:

.\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

  [ Instance type : Embedded
  [ Module file   : "C:\KeeFarceReborn\KeePassReborn\bin\Release\KeeFarceReborn.dll"
  [ Entropy       : None
  [ File type     : .NET DLL
  [ Class         : KeeFarceReborn.Program
  [ Method        : Main
  [ Target CPU    : x86+amd64
  [ AMSI/WDLP     : continue
  [ Shellcode     : "loader.bin"

Обратите внимание, что -e 1 необходим для отключения энтропии, иначе внедрённый процесс не окажется в домене приложения по умолчанию.

Сожмём его с помощью PowerShell для более удобной интеграции в код инжектора:

Скачать инструмент