Мы уже рассказывали про взлом KeePass. Сегодня продолжим эту тему и на примере прохождения уязвимой машины Hack The Box Keeper, рассмотрим извлечение мастер пароля KeePass из файла дампа памяти KeePassDumpFull.dmp.
Еще по теме: Установка и использование KeePassXC
Как извлечь пароль KeePass из дампа KeePassDumpFull.dmp
Итак, мы получили доступ к серверу. На сервере нашли архив. Внутри архива базу данных менеджера паролей KeePass passcodes.kdbx, а также, судя по названию, полный дамп работающего процесса этого менеджера паролей — KeePassDumpFull.dmp.
На ум сразу приходит недавняя уязвимость CVE-2023-32784. Дело в том, что в KeePass 2.x до версии 2.54 есть возможность восстановить мастер‑пароль в открытом виде из дампа памяти, даже если рабочее пространство заблокировано. Также есть возможность восстановить пароль, если KeePass больше не работает.
Дамп можно получить не только дампингом памяти процесса KeePass или всей системы, но и из файла подкачки (pagefile.sys) и из файла гибернации (hiberfil.sys). Но есть и ограничение: пароль должен быть набран с клавиатуры, а не скопирован из буфера обмена.
О способе восстановления пароля из дампа я уже писал. Давайте повторим этот метод, для чего будем использовать инструмент KeePwn.
Установка KeePwn:
1 2 3 4 |
git clone https://github.com/Orange-Cyberdefense/KeePwn.git cd KeePwn pip3 install -r requirements.txt sudo python3 setup.py install |
Запуск KeePwn:
1 |
KeePwn parse_dump --dump_file KeePassDumpFull.dmp --bruteforce passcodes.kdbx |
Спустя несколько минут работы программа завершает свое выполнение. Мастер‑пароль подобрать не удалось, однако мы получили 13 приблизительных кандидатов. Я загрузил последний вариант, так как он может навести нас на более полную информацию о пароле. Однако поисковик предложил другой вариант поиска.
Соглашаемся на измененный поиск и получаем похожую на нашу строку фразу:
1 |
rødgrød med fløde |
Из Google узнаем, что это название популярного в Дании киселя, но куда важнее, что это и есть мастер‑пароль, который позволяет получить доступ к данным в базе KeePass. Видимо, из‑за использования символа ø KeePwn не смог довести дело до конца.
В базе сохранен пароль рута и SSH-ключ в формате PuTTY. С паролем авторизоваться не вышло, поэтому конвертируем ключ.
1 |
puttygen key.putty -O private-openssh -o id_rsa_root |
Теперь с ключом id_rsa_root авторизуемся по SSH и получаем флаг.
На этом все. Теперь вы знаете, как получить пароль из дампа памяти KeePass.
ПОЛЕЗНЫЕ ССЫЛКИ: