
Извлечение мастер-пароля KeePass PoC для Linux
Благодарим vdohney за обнаружение этой уязвимости и ответственную отчетность, а также Dominik Reichl за отличное открытое программное обеспечение и быстрое признание/исправление проблемы.
Вероятно, нет. Эта эксплойт требует доступа к виртуальной файловой системе /proc. В частности, proc/[pid]/mem. Согласно man-странице proc, доступ к этому файлу регулируется режимом доступа ptrace, PTRACE_MODE_ATTACH_FSCREDS, который в большинстве систем ограничен пользователем root. Если злоумышленник уже имеет доступ к этим файлам, у вас должны быть более серьезные проблемы.
Пожалуйста, обновитесь до KeePass 2.54, как только он будет выпущен (~июль 2023), так как это несколько смягчит эту проблему. (Форум)
Сначала он начинается с дампа памяти процесса Keepass.
Поведение по умолчанию — сканировать все файлы /proc/<pid>/cmdline и сохранять pid тех, в аргументе командной строки которых есть ключевое слово KeePass.
Затем он получит адреса отображений памяти в /proc/<pid>/maps, которые не связаны напрямую с библиотекой, то есть имеют пустой путь к файлу.
Затем он сохранит память всех этих отображений в буфер, используя /proc/<pid>/mem. Это было бы примитивным поведением для дампа памяти любого процесса в Linux.
Он проанализирует память, чтобы попытаться найти остаточные строки от момента, когда пользователь ввел свой мастер-пароль, строки, которые выглядят как •a, ••s, •••s последовательно. Первая буква будет отсутствовать. Вы можете найти некоторые другие функции, просмотрев код.
gcc dump_pwd.c -o dump и вы готовы к работе.
