Введение

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

Полезные 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.

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

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

  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, интерфейс которой выглядит следующим образом.

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

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

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

  • Первый вариант без дампа оперативной памяти.

  • Второй вариант с дампом оперативной памяти.

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

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

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

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

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

Заключение

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

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

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

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

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

Комментарии (11)


  1. NikaLapka
    28.07.2024 12:53
    +2

    Предвидя возмущения со стороны некоторых читателей по вопросу использования не актуального ПО

    В чём заключается неактуальность TC? Насколько знаю, он до сих пор более чем надёжен и не имеет выявленных уязвимостей, даже имеет ряд преимуществ над VС, а описанное в теме и "исправленное в VC" - это всё относится к выполнению на хост машине, т.е. если система не скомпрометирована или посторонний не сможет получить доступ к включенном компьютеру - то это нивелирует все выявленные недостатки.


    1. zhka
      28.07.2024 12:53
      +1

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


  1. CitizenOfDreams
    28.07.2024 12:53

    Учитывая туманную историю, на которой закончился TC, я бы доверял ему больше, чем "преемнику".

    Ну а против физического доступа к компьютеру ни один "-крипт" стопроцентно не поможет, только увеличит шансы.


    1. fujikiriku
      28.07.2024 12:53

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

      Ну и конечно, для работы с тс- контейнерами есть несколько сторонних программ, не столь удобных, но открывающих контейнеры.


  1. DennisP
    28.07.2024 12:53
    +2

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


  1. fujikiriku
    28.07.2024 12:53
    +1

    Простите, но я не очень понял - вы сняли дамп памяти с примонтированным образом? А что мешало зайти на сам криптоконтейнер и скопировать файлы? Зачем дамп памяти то снимать, если файлы доступны?

    Лучше расскажите, как вскрыть криптоконтейнер, с дампом памяти, когда он не смонтирован? Ну, сразу после загрузки снимаете дамп памяти, не запуская перед этим трукрипт. Пароль от контейнера тоже в памяти будет? Или ещё лучше - как снять дамп памяти с выключенного разобранного компьютера, какой программой? Какие команды вписывать и куда, в соседний компьютер, наверное?

    Просто то что вы сказали - это как подбирать код к уже открытому сейфу, чтобы вытащить из него деньги. Зачем?


    1. dimsoft
      28.07.2024 12:53

      дамп может получиться случайно, например при падении windows


    1. CitizenOfDreams
      28.07.2024 12:53

      Лучше расскажите, как вскрыть криптоконтейнер, с дампом памяти, когда он не смонтирован? Ну, сразу после загрузки снимаете дамп памяти, не запуская перед этим трукрипт.

      Типичный сценарий работы Трукрипта такой: в дверь вежливо стучат тараном и видят компьютер, который только что выключился, перегрузился или спрашивает пароль для входа. Где-то в памяти при этом могут остаться искомые ключи.

      И нет, содержимое динамической памяти не исчезает моментально при выключении питания, даже при комнатной температуре.


      1. fujikiriku
        28.07.2024 12:53

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

        То, что вы говорите - снятие данных с памяти - возможно опосредовано - за 10 минут вытащить плашки памяти, подключить их к считавающему устройству, а если его с собой нет - то залить жидким азотом. В теории возможно, на практике - скорее нет, для этого надо заранее знать что на компе был открытый криптоконтейнер и компьютер не успели перезагрузить, а только выключили (впрочем можно отрубить электричество).

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


  1. Iglez
    28.07.2024 12:53

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


    1. CitizenOfDreams
      28.07.2024 12:53

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

      Речь идет о ситуации, когда тот, кто может ввести этот пароль, сидит в наручниках, цитирует Пятую поправку и требует адвоката.