Введение
Как говорится, Добрый день! Сегодня хотелось бы обсудить с вами тему криптоконтейнеров и их вскрытия. С каждым годом всё более острым становится вопрос безопасности данных, а также вопрос их надежного хранения. Именно в данном случае нам на помощь приходит технология хранения данных в криптоконтейнерах.
Полезные OSINT инструменты в телеграме (всегда рабочие ссылки)
Что такое криптоконтейнер
Криптоконтейнер - это специальный объект, который используется для хранения ключей и другой конфиденциальной информации. Он представляет собой защищенную область памяти, которая может быть использована для безопасного хранения и передачи данных.
Криптоконтейнеры обычно создаются с использованием специальных функций API операционной системы или программного обеспечения, которое предоставляет криптографические сервисы. Эти функции позволяют создавать, открывать, закрывать и уничтожать криптоконтейнеры.
Один из основных способов использования криптоконтейнера - это хранение пары ключей. Например, при использовании протокола SSL/TLS для защиты соединения между веб-сервером и браузером, серверный сертификат и соответствующий ему секретный ключ могут быть сохранены в криптоконтейнере. Это обеспечивает безопасность хранения этих важных данных.
Кроме того, криптоконтейнер может использоваться для хранения других типов конфиденциальной информации, такой как пароли, токены доступа и другие данные, которые должны быть защищены от несанкционированного доступа.
Важно отметить, что криптоконтейнеры не являются абсолютно безопасными. Они могут быть взломаны или скомпрометированы, если злоумышленник получит доступ к компьютеру или устройству, где они хранятся. Поэтому важно использовать надежные методы защиты, такие как шифрование и аутентификация, чтобы минимизировать риски.
Создаем собственный криптоконтейнер
Существует множество программ для создания криптоконтейнеров. Наиболее популярные из них это TrueCrypt и его приемник VeraCrypt.
TrueCrypt был популярным инструментом для шифрования до 2014 года, когда его разработчики объявили о прекращении поддержки. После этого, проект был переименован в VeraCrypt, и его исходный код был опубликован на GitHub.
VeraCrypt продолжает поддерживать многие функции TrueCrypt, включая создание зашифрованных контейнеров и разделов дисков, а также возможность шифрования всего жесткого диска. Он также добавляет новые функции, такие как поддержка новых алгоритмов шифрования и улучшенная защита от атак.
Оба инструмента предоставляют простой и удобный способ защитить ваши данные от несанкционированного доступа.
Предвидя возмущения со стороны некоторых читателей по вопросу использования не актуального ПО скажу сразу, технологии и методы приведенные в данной статье несут лишь ознакомительный характер и формируют общее понимание прикладной области для дальнейшего совершенствования своих навыков в данной сфере.
Теперь можем приступать.
Скачаем архив с официального сайта

Так как хостовой системой в нашем примере является AstraLinux и её разрядность равна 64 мы выбираем 4 вариант.
Распаковываем скаченный архив
tar xfvz truecrypt-7.1a-linux-x64.tar.gz

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

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

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

При выборе алгоритмов шифрования и хэширования следует быть внимательным и сделать выбор на основе ваших требований, будь то скорость шифрования/расшифрования или же надежность алгоритмов и их криптостойкость. Для примера я ничего не изменял и оставил значения по умолчанию.
Размер следует указывать с небольшим запасом, никто ведь не знает будете ли вы "докладывать" данные в контейнер. В моем случае это 2 Mb.
Затем задаем пароль. Пусть будет просто "password".
После создания подключаем его при помощи выбора в главном окне "Select File" и указываем месторасположение нашего контейнера.
Выбираем первый слот и нажимаем Mount, вводим пароль.

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

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

Дамп оперативной памяти
Для начала следует разобраться что такое дамп памяти.
Дамп памяти - это содержимое рабочей памяти одного процесса, ядра или всей операционной системы. Он может включать дополнительную информацию о состоянии программы или системы, такую как значения регистров процессора и содержимое стека. Дамп памяти может быть сохранен автоматически при завершении процесса из-за критической ошибки или вручную через отладчик или специальную программу. В Unix-подобных операционных системах дамп памяти сохраняется в виде файла, обычно называемого core или core.<номер процесса>. В Windows существуют два вида дампов: дампы режима ядра и дампы пользовательского режима. Дамп пользовательского режима, также известный как minidump, содержит выбранные к записи виды данных, такие как полная или частичная память процесса, список, стек, состояние потоков, дескрипторы объектов ядра, список загруженных и выгруженных библиотек. Дамп памяти может быть полезен для отладки программы и анализа ошибок.
После ознакомления с теорией перейдем к практике. Перепробовав множество способов создания дампа именно в AstraLinux делюсь с вами инструментом, который подошёл для меня.
Для меня это был LiME. LiME является opensource проектом, поэтому его можно скачать из GitHub при помощи команды
git clone https://github.com/504ensicsLabs/LiME.git
После установки переходим в LiME/src/ и выполняем команду make

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

path-путь куда сохраняется файл
format-формат сохраняемого файла
Теперь можно отмонтировать контейнер путем нажатия кнопки dismount в программе TrueCrypt.
Анализ дампа оперативной памяти
Существует несколько способов анализа дампа оперативной памяти:
Ручной анализ: Это самый простой способ, который заключается в просмотре дампа памяти с помощью текстового редактора или специализированной программы. Пользователь может искать определенные строки кода, переменные или структуры данных, чтобы понять, что происходило в момент сбоя.
Использование отладчика: Отладчики, такие как gdb в Linux или WinDbg в Windows, позволяют анализировать дамп памяти более глубоко. Они предоставляют инструменты для просмотра стека вызовов, переменных и структур данных, а также позволяют устанавливать точки останова и выполнять команды в контексте процесса.
Автоматизированный анализ: Существуют специализированные инструменты, которые могут автоматически анализировать дамп памяти и обнаруживать распространенные ошибки, такие как использование неинициализированных переменных, обращение к уже освобожденной памяти и т.д. Примерами таких инструментов являются Valgrind в Linux и Dr. Memory в Windows.
Анализ с помощью статического анализатора кода: Некоторые статические анализаторы кода, такие как Clang Static Analyzer, могут анализировать исходный код и предупреждать о потенциальных проблемах, которые могут привести к сбоям.
Использование профилировщиков: Профилировщики, такие как gprof в Linux или Visual Studio Profiler в Windows, могут помочь выявить узкие места в производительности программы и указать на возможные причины сбоев.
Использование инструментов для анализа памяти: Такие инструменты, как Memcheck в Valgrind, могут обнаруживать проблемы с управлением памятью, такие как утечки памяти и использование неинициализированных переменных.
Использование инструментов для анализа стека: Инструменты, такие как StackWalker в Windows, могут помочь в анализе стека вызовов и обнаружении причин, по которым программа могла перейти в некорректное состояние.
Использование инструментов для анализа журналов: Журналы могут предоставить ценную информацию о том, что происходило в системе перед сбоем. Инструменты, такие как Log Analyzers, могут помочь в поиске и анализе этих записей.
Использование инструментов для реверс-инжиниринга: Реверс-инжиниринг может быть полезен для анализа дампа памяти, особенно если исходный код программы недоступен. Инструменты, такие как IDA Pro, могут помочь в этом процессе.
Выбор метода зависит от конкретной ситуации и доступных ресурсов.
Анализ будем производить на любимой многими OC Windows. Для этого будем использовать программу Passware, интерфейс кот��рой выглядит следующим образом.

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

Затем выбираем необходимый нам TrueCrypt.
Теперь у нас появляются два варианта взлома криптоконтейнера:
Первый вариант без дампа оперативной памяти.
Второй вариант с дампом оперативной памяти.
Начнем с первого варианта


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


Теперь мы знаем пароль и можем вернуться на Astra и при монтировании указать пароль и извлечь содержимое.
Заключение
Криптоконтейнеры являются важным инструментом защиты данных, а их взлом может представлять значительные трудности для злоумышленников. Однако, существует способ обойти защиту криптоконтейнера, используя дамп оперативной памяти. Этот метод позволяет получить доступ к содержимому контейнера без знания пароля или ключа шифрования.
Важно отметить, что данный метод является незаконным и может привести к серьезным последствиям для тех, кто его использует. Кроме того, использование этого метода требует определенных знаний и навыков в области компьютерной безопасности.
В целом, взлом криптоконтейнера через дамп оперативной памяти является сложной задачей, требующей специальных знаний и инструментов. Но при правильном подходе этот метод может быть эффективным способом получения доступа к защищенным данным.
P.S.
Полезные OSINT инструменты в телеграме (всегда рабочие ссылки)
LHMedia в телеграме:
