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

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

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

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

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

Категории

Все категории
Loading categories
psa-2026-00043-recovery — Восстановительные заметки для уведомления proxmox с идентификатором: PSA-2026-00043-1 (CVE-2023-54391) | Kitploit
Инструменты/GitHubGitHub/disqualifier/psa-2026-00043-recovery
Безопасность облачной инфраструктурыАнализ уязвимостейФорензикаВосстановление ДанныхЦифровая криминалистикаРеагирование на Инциденты
GitHubdisqualifier/psa-2026-00043-recovery

psa-2026-00043-recovery

Восстановительные заметки для уведомления proxmox с идентификатором: PSA-2026-00043-1 (CVE-2023-54391)

Популярное

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

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

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

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

Смотреть все инструменты →
Репозиторий
1 день назадЕщё не проверено
Поделиться

psa-2026-00043-recovery

Восстановление после вируса-стирателя, замаскированного под ransomware, после атаки на доступную из интернета инфраструктуру Proxmox (PSA-2026-00043-1 / CVE-2023-54391).

Атакующий стёр гостевые системы и повредил файловые системы. Два пути восстановления в зависимости от типа гостевой системы:

  • гостевая БД — извлечение BSON-документов из сырых страниц WiredTiger
  • прикладной хост — извлечение файлов (nginx, systemd-юниты, env, корни приложений) с повреждённой файловой системы

Это инструменты и методология, обобщённые так, чтобы они были полезны любому, кто окажется в аналогичной ситуации. Только чтение исходных данных, CC0. Реальные восстановленные данные не включены; в примерах вывода используются заглушки.


Первый час

Повреждённый диск теперь — ваша единственная копия того, что осталось. Не чините его. Снимите образ.

root@kitploit:~
blockdev --setro /dev/<source>                                    # 1. только чтение, немедленно
dd if=/dev/<source> of=/safe/disk.img bs=4M conv=noerror,sync     # 2. образ в безопасное хранилище
# 3. НЕ запускайте fsck, монтирование rw или "восстановление"; это перезапишет блоки, нужные карверу
# 4. оборачивайте каждый проход по источнику в scripts/source_guard.sh
# 5. восстанавливайте только из образа, никогда с оригинала

Скрипты

Общая дисциплина, раздельные карверы. Запускайте любой с -h. Python 3.8+ / bash, без сторонних пакетов. source_guard.sh требует Linux /proc/diskstats.

скриптнаправлениечто делает
scripts/source_guard.shобщийОборачивает команду восстановления; доказывает, что источник остался только для чтения, через разницу счётчика записи. Завершается ошибкой при любой записи в источник.
scripts/wt_leaf_carve.pyбаза данныхИзвлекает BSON из сырых листовых страниц WiredTiger. Размер страницы — по декодированию, а не подгонке; обязательный положительный контроль.
scripts/bson_frame.pyбаза данныхПодсчитывает/проверяет BSON-документы по дисковому фреймингу. По умолчанию весь файл; выборка помечается как МИНИМУМ.
scripts/fs_carve_classify.pyфайловая системаКлассифицирует извлечённые фрагменты файлов по содержимому, а не имени файла; записывает манифест для каждого файла; исчерпывающее сканирование секретов.
scripts/sensitivity_scan.pyобщийРазделяет восстановленные данные на уровни RED/AMBER/GREEN для оценки риска учётных данных/персональных данных. Выводит счётчики, никогда значения.
scripts/integrity_verify.pyобщийДоказывает, что реорганизованная копия соответствует источнику. Ключ по содержимому (переживает переименования); читает колонки OK/FAILED, а не коды выхода.
scripts/make_demo.py—Генерирует синтетические BSON-фикстуры (без реальных данных) для проверки набора инструментов.

Попробуйте

root@kitploit:~
python3 scripts/make_demo.py
python3 scripts/bson_frame.py --total demo/*.bson
python3 scripts/sensitivity_scan.py demo/*.bson
python3 scripts/integrity_verify.py --compare demo/source demo/copy

Методология

Выполняется в этом порядке. Шаг извлечения разветвляется по типу гостевой системы; обрамление setro+image и проверка по ключу содержимого одинаковы в обоих случаях.

root@kitploit:~
повреждённый диск ──setro+image──► образ только для чтения
                                    │
                база данных ────────►│◄────────── файловая система
          извлечение страниц WT     │            извлечение файлов
          подсчёт документов        │            классификация по содержимому + манифест
                                    │
                          оценка риска (RED/AMBER/GREEN)
                          проверка копии (ключ по содержимому)
                                    │
                                 восстановление

Режимы отказа

  1. Ноль неоднозначен: пустая область и слепой декодер оба возвращают ничего. Проверяйте каждый ноль положительным контролем на странице, которая у вас уже есть.
  2. Выбирайте размер страницы по первому успешному декодированию, а не по первой подгонке. Подгонка всегда выбирает 4096 и теряет многоблочные страницы.
  3. Подсчёт по выборке — это минимум, а не итог. Читайте весь бин.
  4. Имена дают ложные срабатывания (данные, используемые как ключи карт), значения — пропуски (секреты в человекочитаемом формате). Требуйте и то, и другое плюс контекст.
  5. Подсчитывайте заполненные поля, а не вхождения. Поля с большим количеством null завышают число.
  6. Проверяйте по хешу содержимого, а не имени файла; восстановление переименовывает всё.
  7. find | sort | xargs sha256sum | sha256sum хеширует и пути, и локаль. Используйте LC_ALL=C или манифест для каждого файла.
  8. sha256sum -c завершается с кодом 0, печатая FAILED. Читайте колонки, а не $?.
  9. Отчёт о поиске учётных данных не должен содержать значения учётных данных. Выводите только формы и счётчики.
  10. Проверка истинна только тогда, когда она выполнялась. Ставьте отметку на каждое чтение; перепроверяйте текущее состояние.

Примечания

Отправные точки, а не готовое решение. Продакшн-версия WiredTiger использует сжатие страниц (snappy/zstd) и кодирование ячеек, которые универсальный карвер заглушает. Подключите собственный надёжный декодер для сжатых страниц. Перепроверяйте каждое число положительным контролем и вторым, другим инструментом: два инструмента, разделяющие одно допущение, согласуются из-за допущения, а не потому, что оно верно; именно чтение байтов это выявляет.

Если ваши данные другие (другая база данных, приложение или файловая система), методология всё равно работает: переведите источник в режим только для чтения, снимите образ, извлекайте из копии, проверяйте положительным контролем перед тем, как поверить нулю, подсчитывайте всё целиком, проверяйте по содержимому. Замените карвер; сохраните дисциплину.

Устраните первопричину: веб-интерфейс Proxmox на :8006 не должен быть доступен из интернета. Следуйте официальным бюллетеням безопасности Proxmox: https://forum.proxmox.com/threads/proxmox-virtual-environment-security-advisories.149331/

Более удобное для чтения описание с общими рекомендациями автора по восстановлению и укреплению: https://claude.ai/code/artifact/621495ce-4972-405a-ad90-f7703f7dc2f1

CC0 / общественное достояние. См. LICENSE.

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