Вскрытие криптоконтейнера через дамп оперативной памяти

Введение

Как говорится, Добрый день! Сегодня хотелось бы обсудить с вами тему криптоконтейнеров и их вскрытия. С каждым годом всё более острым становится вопрос безопасности данных, а также вопрос их надежного хранения. Именно в данном случае нам на помощь приходит технология хранения данных в криптоконтейнерах.

Полезные OSINT инструменты в телеграме (всегда рабочие ссылки)

Что такое криптоконтейнер

Криптоконтейнер — это специальный объект, который используется для хранения ключей и другой конфиденциальной информации. Он представляет собой защищенную область памяти, которая может быть использована для безопасного хранения и передачи данных.

Криптоконтейнеры обычно создаются с использованием специальных функций API операционной системы или программного обеспечения, которое предоставляет криптографические сервисы. Эти функции позволяют создавать, открывать, закрывать и уничтожать криптоконтейнеры.

Один из основных способов использования криптоконтейнера — это хранение пары ключей. Например, при использовании протокола SSL/TLS для защиты соединения между веб-сервером и браузером, серверный сертификат и соответствующий ему секретный ключ могут быть сохранены в криптоконтейнере. Это обеспечивает безопасность хранения этих важных данных.

Кроме того, криптоконтейнер может использоваться для хранения других типов конфиденциальной информации, такой как пароли, токены доступа и другие данные, которые должны быть защищены от несанкционированного доступа.

Важно отметить, что криптоконтейнеры не являются абсолютно безопасными. Они могут быть взломаны или скомпрометированы, если злоумышленник получит доступ к компьютеру или устройству, где они хранятся. Поэтому важно использовать надежные методы защиты, такие как шифрование и аутентификация, чтобы минимизировать риски.

Создаем собственный криптоконтейнер

Существует множество программ для создания криптоконтейнеров. Наиболее популярные из них это TrueCrypt и его приемник VeraCrypt.

TrueCrypt был популярным инструментом для шифрования до 2014 года, когда его разработчики объявили о прекращении поддержки. После этого, проект был переименован в VeraCrypt, и его исходный код был опубликован на GitHub.

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

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

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

Теперь можем приступать.

Скачаем архив с официального сайта

029d92dc46a28a450707da649d480941.png

Так как хостовой системой в нашем примере является AstraLinux и её разрядность равна 64 мы выбираем 4 вариант.

Распаковываем скачанный архив
tar xfvz truecrypt-7.1a-linux-x64.tar.gz

c72d74ffe9bb916369b934584e2afc2c.png

Устанавливаем при помощи команды
./truecrypt-7.1a-setup-x64

6b7cda5b60b663bddf607e745ad411f6.png

В процессе установки соглашаемся со всеми разрешениями.

Затем запускаем установленное ПО путем ввода в консоль непосредственно название самой программы
truecrypt

e23400c1121659ccd9e8d6069554e14e.png

Далее для создания следует выбрать необходимый слот. Затем выбираем пункт 'Create Volume' и следуем подсказкам.

Когда доходим до пункта Select File указываем путь до места где будет храниться контейнер и в поле «имя» вводим его название

1bc7c10f3379fee7c0a4c97b1f6c634e.png

При выборе алгоритмов шифрования и хэширования следует быть внимательным и сделать выбор на основе ваших требований, будь то скорость шифрования/расшифрования или же надежность алгоритмов и их криптостойкость. Для примера я ничего не изменял и оставил значения по умолчанию.

Размер следует указывать с небольшим запасом, никто ведь не знает будете ли вы «докладывать» данные в контейнер. В моем случае это 2 Mb.

Затем задаем пароль. Пусть будет просто «password».

После создания подключаем его при помощи выбора в главном окне «Select File» и указываем месторасположение нашего контейнера.

Выбираем первый слот и нажимаем Mount, вводим пароль.

2d9bffbe3b7f3f698204157ab121bbe3.png

Теперь мы имеем к нему доступ по пути /media/truecrypt1

56e8ee1d8e8b0ecdf8faf9fa3f873ec4.png

Для примера создадим там текстовый файл

cca2ebfdb40b68f2ebec80a360b3cee4.png

Дамп оперативной памяти

Для начала следует разобраться что такое дамп памяти.

Дамп памяти — это содержимое рабочей памяти одного процесса, ядра или всей операционной системы. Он может включать дополнительную информацию о состоянии программы или системы, такую как значения регистров процессора и содержимое стека. Дамп памяти может быть сохранен автоматически при завершении процесса из-за критической ошибки или вручную через отладчик или специальную программу. В Unix-подобных операционных системах дамп памяти сохраняется в виде файла, обычно называемого core или core.<номер процесса>. В Windows существуют два вида дампов: дампы режима ядра и дампы пользовательского режима. Дамп пользовательского режима, также известный как minidump, содержит выбранные к записи виды данных, такие как полная или частичная память процесса, список, стек, состояние потоков, дескрипторы объектов ядра, список загруженных и выгруженных библиотек. Дамп памяти может быть полезен для отладки программы и анализа ошибок.

После ознакомления с теорией перейдем к практике. Перепробовав множество способов создания дампа именно в AstraLinux делюсь с вами инструментом, который подошёл для меня.

Для меня это был LiME. LiME является opensource проектом, поэтому его можно скачать из GitHub при помощи команды
git clone https://github.com/504ensicsLabs/LiME.git

После установки переходим в LiME/src/ и выполняем команду make

c15873913d6b4f9d907c92cccc177c21.png

Создаем дамп командой
sudo insmod lime-5.15.0-70-generic.ko "path=/home/memory_dump format=raw"

1e1469ff3f29c546c12491c6e2c544c6.png

path-путь куда сохраняется файл
format-формат сохраняемого файла

Теперь можно отмонтировать контейнер путем нажатия кнопки dismount в программе TrueCrypt.

Анализ дампа оперативной памяти

Существует несколько способов анализа дампа оперативной памяти:

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

  2. Использование отладчика: Отладчики, такие как gdb в Linux или WinDbg в Windows, позволяют анализировать дамп памяти более глубоко. Они предоставляют инструменты для просмотра стека вызовов, переменных и структур данных, а также позволяют устанавливать точки останова и выполнять команды в контексте процесса.

  3. Автоматизированный анализ: Существуют специализированные инструменты, которые могут автоматически анализировать дамп памяти и обнаруживать распространенные ошибки, такие как использование неинициализированных переменных, обращение к уже освобожденной памяти и т.д. Примерами таких инструментов являются Valgrind в Linux и Dr. Memory в Windows.

  4. Анализ с помощью статического анализатора кода: Некоторые статические анализаторы кода, такие как Clang Static Analyzer, могут анализировать исходный код и предупреждать о потенциальных проблемах, которые могут привести к сбоям.

  5. Использование профилировщиков: Профилировщики, такие как gprof в Linux или Visual Studio Profiler в Windows, могут помочь выявить узкие места в производительности программы и указать на возможные причины сбоев.

  6. Использование инструментов для анализа памяти: Такие инструменты, как Memcheck в Valgrind, могут обнаруживать проблемы с управлением памятью, такие как утечки памяти и использование неинициализированных переменных.

  7. Использование инструментов для анализа стека: Инструменты, такие как StackWalker в Windows, могут помочь в анализе стека вызовов и обнаружении причин, по которым программа могла перейти в некорректное состояние.

  8. Использование инструментов для анализа журналов: Журналы могут предоставить ценную информацию о том, что происходило в системе перед сбоем. Инструменты, такие как Log Analyzers, могут помочь в поиске и анализе этих записей.

  9. Использование инструментов для реверс-инжиниринга: Реверс-инжиниринг может быть полезен для анализа дампа памяти, особенно если исходный код программы недоступен. Инструменты, такие как IDA Pro, могут помочь в этом процессе.

Выбор метода зависит от конкретной ситуации и доступных ресурсов.

Анализ будем производить на любимой многими OC Windows. Для этого будем использовать программу Passware, интерфейс которой выглядит следующим образом.

11f5ea5c3faa435b54e4185f23c98696.png

Функционал программы достаточно большой, но нас интересует лишь одна из её возможностей, а именно пункт Full Disk Encryption.

21faa108bd59dfc806491f3e9dedfdd1.png

Затем выбираем необходимый нам TrueCrypt.

Теперь у нас появляются два варианта взлома криптоконтейнера:

Начнем с первого варианта

170351bc961d4e2461e5ecea00a123b8.png4a6eb903532d844be3ef1c875a5f1d33.png

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

Возвращаемся на главную и выбираем второй вариант.

Указываем файлы с контейнером и дампом соответственно.

d42eca06fd384c99f410e4feee118cbf.png4593c9610bcbd98bf876785c17e78077.png

Теперь мы знаем пароль и можем вернуться на Astra и при монтировании указать пароль и извлечь содержимое.

Заключение

Криптоконтейнеры являются важным инструментом защиты данных, а их взлом может представлять значительные трудности для злоумышленников. Однако, существует способ обойти защиту криптоконтейнера, используя дамп оперативной памяти. Этот метод позволяет получить доступ к содержимому контейнера без знания пароля или ключа шифрования.

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

В целом, взлом криптоконтейнера через дамп оперативной памяти является сложной задачей, требующей специальных знаний и инструментов. Но при правильном подходе этот метод может быть эффективным способом получения доступа к защищенным данным.

P.S.
Полезные OSINT инструменты в телеграме (всегда рабочие ссылки)

LHMedia в телеграме:

© Habrahabr.ru