Введение
Как говорится, Добрый день! Сегодня хотелось бы обсудить с вами тему криптоконтейнеров и их вскрытия. С каждым годом всё более острым становится вопрос безопасности данных, а также вопрос их надежного хранения. Именно в данном случае нам на помощь приходит технология хранения данных в криптоконтейнерах.
Полезные OSINT инструменты в телеграме (всегда рабочие ссылки)
Что такое криптоконтейнер
Криптоконтейнер - это специальный объект, который используется для хранения ключей и другой конфиденциальной информации. Он представляет собой защищенную область памяти, которая может быть использована для безопасного хранения и передачи данных.
Криптоконтейнеры обычно создаются с использованием специальных функций API операционной системы или программного обеспечения, которое предоставляет криптографические сервисы. Эти функции позволяют создавать, открывать, закрывать и уничтожать криптоконтейнеры.
Один из основных способов использования криптоконтейнера - это хранение пары ключей. Например, при использовании протокола SSL/TLS для защиты соединения между веб-сервером и браузером, серверный сертификат и соответствующий ему секретный ключ могут быть сохранены в криптоконтейнере. Это обеспечивает безопасность хранения этих важных данных.
Кроме того, криптоконтейнер может использоваться для хранения других типов конфиденциальной информации, такой как пароли, токены доступа и другие данные, которые должны быть защищены от несанкционированного доступа.
Важно отметить, что криптоконтейнеры не являются абсолютно безопасными. Они могут быть взломаны или скомпрометированы, если злоумышленник получит доступ к компьютеру или устройству, где они хранятся. Поэтому важно использовать надежные методы защиты, такие как шифрование и аутентификация, чтобы минимизировать риски.
Создаем собственный криптоконтейнер
Существует множество программ для создания криптоконтейнеров. Наиболее популярные из них это TrueCrypt и его приемник VeraCrypt.
TrueCrypt был популярным инструментом для шифрования до 2014 года, когда его разработчики объявили о прекращении поддержки. После этого, проект был переименован в VeraCrypt, и его исходный код был опубликован на GitHub.
VeraCrypt продолжает поддерживать многие функции TrueCrypt, включая создание зашифрованных контейнеров и разделов дисков, а также возможность шифрования всего жесткого диска. Он также добавляет новые функции, такие как поддержка новых алгоритмов шифрования и улучшенная защита от атак.
Оба инструмента предоставляют простой и удобный способ защитить ваши данные от несанкционированного доступа.
Предвидя возмущения со стороны некоторых читателей по вопросу использования не актуального ПО скажу сразу, технологии и методы приведенные в данной статье несут лишь ознакомительный характер и формируют общее понимание прикладной области для дальнейшего совершенствования своих навыков в данной сфере.
Теперь можем приступать.
Скачаем архив с официального сайта
![](https://habrastorage.org/getpro/habr/upload_files/029/d92/dc4/029d92dc46a28a450707da649d480941.png)
Так как хостовой системой в нашем примере является AstraLinux и её разрядность равна 64 мы выбираем 4 вариант.
Распаковываем скаченный архив
tar xfvz truecrypt-7.1a-linux-x64.tar.gz
![](https://habrastorage.org/getpro/habr/upload_files/c72/d74/ffe/c72d74ffe9bb916369b934584e2afc2c.png)
Устанавливаем при помощи команды
./truecrypt-7.1a-setup-x64
![](https://habrastorage.org/getpro/habr/upload_files/6b7/cda/5b6/6b7cda5b60b663bddf607e745ad411f6.png)
В процессе установки соглашаемся со всеми разрешениями.
Затем запускаем установленное ПО путем ввода в консоль непосредственно название самой программы
truecrypt
![](https://habrastorage.org/getpro/habr/upload_files/e23/400/c11/e23400c1121659ccd9e8d6069554e14e.png)
Далее для создания следует выбрать необходимый слот. Затем выбираем пункт 'Create Volume' и следуем подсказкам.
Когда доходим до пункта Select File указываем путь до места где будет храниться контейнер и в поле «имя» вводим его название
![](https://habrastorage.org/getpro/habr/upload_files/1bc/7c1/0f3/1bc7c10f3379fee7c0a4c97b1f6c634e.png)
При выборе алгоритмов шифрования и хэширования следует быть внимательным и сделать выбор на основе ваших требований, будь то скорость шифрования/расшифрования или же надежность алгоритмов и их криптостойкость. Для примера я ничего не изменял и оставил значения по умолчанию.
Размер следует указывать с небольшим запасом, никто ведь не знает будете ли вы "докладывать" данные в контейнер. В моем случае это 2 Mb.
Затем задаем пароль. Пусть будет просто "password".
После создания подключаем его при помощи выбора в главном окне "Select File" и указываем месторасположение нашего контейнера.
Выбираем первый слот и нажимаем Mount, вводим пароль.
![](https://habrastorage.org/getpro/habr/upload_files/2d9/bff/be3/2d9bffbe3b7f3f698204157ab121bbe3.png)
Теперь мы имеем к нему доступ по пути /media/truecrypt1
![](https://habrastorage.org/getpro/habr/upload_files/56e/8ee/1d8/56e8ee1d8e8b0ecdf8faf9fa3f873ec4.png)
Для примера создадим там текстовый файл
![](https://habrastorage.org/getpro/habr/upload_files/cca/2eb/fdb/cca2ebfdb40b68f2ebec80a360b3cee4.png)
Дамп оперативной памяти
Для начала следует разобраться что такое дамп памяти.
Дамп памяти - это содержимое рабочей памяти одного процесса, ядра или всей операционной системы. Он может включать дополнительную информацию о состоянии программы или системы, такую как значения регистров процессора и содержимое стека. Дамп памяти может быть сохранен автоматически при завершении процесса из-за критической ошибки или вручную через отладчик или специальную программу. В Unix-подобных операционных системах дамп памяти сохраняется в виде файла, обычно называемого core или core.<номер процесса>. В Windows существуют два вида дампов: дампы режима ядра и дампы пользовательского режима. Дамп пользовательского режима, также известный как minidump, содержит выбранные к записи виды данных, такие как полная или частичная память процесса, список, стек, состояние потоков, дескрипторы объектов ядра, список загруженных и выгруженных библиотек. Дамп памяти может быть полезен для отладки программы и анализа ошибок.
После ознакомления с теорией перейдем к практике. Перепробовав множество способов создания дампа именно в AstraLinux делюсь с вами инструментом, который подошёл для меня.
Для меня это был LiME. LiME является opensource проектом, поэтому его можно скачать из GitHub при помощи команды
git clone https://github.com/504ensicsLabs/LiME.git
После установки переходим в LiME/src/ и выполняем команду make
![](https://habrastorage.org/getpro/habr/upload_files/c15/873/913/c15873913d6b4f9d907c92cccc177c21.png)
Создаем дамп командой
sudo insmod lime-5.15.0-70-generic.ko "path=/home/memory_dump format=raw"
![](https://habrastorage.org/getpro/habr/upload_files/1e1/469/ff3/1e1469ff3f29c546c12491c6e2c544c6.png)
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, интерфейс которой выглядит следующим образом.
![](https://habrastorage.org/getpro/habr/upload_files/11f/5ea/5c3/11f5ea5c3faa435b54e4185f23c98696.png)
Функционал программы достаточно большой, но нас интересует лишь одна из её возможностей, а именно пункт Full Disk Encryption.
![](https://habrastorage.org/getpro/habr/upload_files/21f/aa1/08b/21faa108bd59dfc806491f3e9dedfdd1.png)
Затем выбираем необходимый нам TrueCrypt.
Теперь у нас появляются два варианта взлома криптоконтейнера:
Первый вариант без дампа оперативной памяти.
Второй вариант с дампом оперативной памяти.
Начнем с первого варианта
![](https://habrastorage.org/getpro/habr/upload_files/170/351/bc9/170351bc961d4e2461e5ecea00a123b8.png)
![](https://habrastorage.org/getpro/habr/upload_files/4a6/eb9/035/4a6eb903532d844be3ef1c875a5f1d33.png)
Данный вариант является не желательным. В нашем случае это сработало лишь за счёт того, что пароль является простым и используются не самые стойкие алгоритмы.
Возвращаемся на главную и выбираем второй вариант.
Указываем файлы с контейнером и дампом соответственно.
![](https://habrastorage.org/getpro/habr/upload_files/d42/eca/06f/d42eca06fd384c99f410e4feee118cbf.png)
![](https://habrastorage.org/getpro/habr/upload_files/459/3c9/610/4593c9610bcbd98bf876785c17e78077.png)
Теперь мы знаем пароль и можем вернуться на Astra и при монтировании указать пароль и извлечь содержимое.
Заключение
Криптоконтейнеры являются важным инструментом защиты данных, а их взлом может представлять значительные трудности для злоумышленников. Однако, существует способ обойти защиту криптоконтейнера, используя дамп оперативной памяти. Этот метод позволяет получить доступ к содержимому контейнера без знания пароля или ключа шифрования.
Важно отметить, что данный метод является незаконным и может привести к серьезным последствиям для тех, кто его использует. Кроме того, использование этого метода требует определенных знаний и навыков в области компьютерной безопасности.
В целом, взлом криптоконтейнера через дамп оперативной памяти является сложной задачей, требующей специальных знаний и инструментов. Но при правильном подходе этот метод может быть эффективным способом получения доступа к защищенным данным.
P.S.
Полезные OSINT инструменты в телеграме (всегда рабочие ссылки)
LHMedia в телеграме:
Комментарии (11)
CitizenOfDreams
28.07.2024 12:53Учитывая туманную историю, на которой закончился TC, я бы доверял ему больше, чем "преемнику".
Ну а против физического доступа к компьютеру ни один "-крипт" стопроцентно не поможет, только увеличит шансы.
fujikiriku
28.07.2024 12:53Как раз преемник трукрипта - веракрипт - вполне надёжен, и проходил аудит несколько раз. Трукрипт был проверен однократно, после чего стал считаться небезопасным, именно из-за туманной истории с исчезновением разработчиков и их странными заявлениями.
Ну и конечно, для работы с тс- контейнерами есть несколько сторонних программ, не столь удобных, но открывающих контейнеры.
DennisP
28.07.2024 12:53+2В итоге не понятно, насколько сильно помог этот самый дамп памяти. Логичней было задать более сложный пароль, который не подбирается за минуту по словарю и посмотреть, как поможет анализ дампа.
fujikiriku
28.07.2024 12:53+1Простите, но я не очень понял - вы сняли дамп памяти с примонтированным образом? А что мешало зайти на сам криптоконтейнер и скопировать файлы? Зачем дамп памяти то снимать, если файлы доступны?
Лучше расскажите, как вскрыть криптоконтейнер, с дампом памяти, когда он не смонтирован? Ну, сразу после загрузки снимаете дамп памяти, не запуская перед этим трукрипт. Пароль от контейнера тоже в памяти будет? Или ещё лучше - как снять дамп памяти с выключенного разобранного компьютера, какой программой? Какие команды вписывать и куда, в соседний компьютер, наверное?
Просто то что вы сказали - это как подбирать код к уже открытому сейфу, чтобы вытащить из него деньги. Зачем?
CitizenOfDreams
28.07.2024 12:53Лучше расскажите, как вскрыть криптоконтейнер, с дампом памяти, когда он не смонтирован? Ну, сразу после загрузки снимаете дамп памяти, не запуская перед этим трукрипт.
Типичный сценарий работы Трукрипта такой: в дверь вежливо стучат тараном и видят компьютер, который только что выключился, перегрузился или спрашивает пароль для входа. Где-то в памяти при этом могут остаться искомые ключи.
И нет, содержимое динамической памяти не исчезает моментально при выключении питания, даже при комнатной температуре.
fujikiriku
28.07.2024 12:53Погодите, вы хотите сказать, что после перезагрузки компьютера - в оперативной памяти остаются доступные средствами операционной системы данные с прошлого сеанса? Быть того не может, перезагрузка обнуляет память в самом начале работы.
То, что вы говорите - снятие данных с памяти - возможно опосредовано - за 10 минут вытащить плашки памяти, подключить их к считавающему устройству, а если его с собой нет - то залить жидким азотом. В теории возможно, на практике - скорее нет, для этого надо заранее знать что на компе был открытый криптоконтейнер и компьютер не успели перезагрузить, а только выключили (впрочем можно отрубить электричество).
Вот кстати насчёт случайного дампа системы или работы файла подкачки - это было бы любопытно и актуально, статью была бы намного интересней, рассмотреть разные варианты операционных систем, разные варианты настроек ос для создания служебных дампов. А так - вообще ни о чем, впрочем пример с брутфорсом пароля "password" - ещё смешнее
Iglez
28.07.2024 12:53Если есть исходный код программы, конечно можно пошагав дебагером узнать, что почем, написать "десериализатор" дампа и достать пароль, НО если исходного кода нет, найти с помощью реверс инженеринга какие там происходят преобразования, какой алгоритм шифрования пароля используется еще разгадать дополнительные трюки сокрытия пароля в памяти(вариант два есть известная уязвимость шифровальщика)....ну хз, наверно такое только в фильмах. Считаю любой нормальный "хакер" имея полный доступ к хосту не будет заниматься всей этой ерундой с дампами, а просто поставит "кейлогер" и возьмет пароль.
CitizenOfDreams
28.07.2024 12:53Считаю любой нормальный "хакер" имея полный доступ к хосту не будет заниматься всей этой ерундой с дампами, а просто поставит "кейлогер" и возьмет пароль.
Речь идет о ситуации, когда тот, кто может ввести этот пароль, сидит в наручниках, цитирует Пятую поправку и требует адвоката.
NikaLapka
В чём заключается неактуальность TC? Насколько знаю, он до сих пор более чем надёжен и не имеет выявленных уязвимостей, даже имеет ряд преимуществ над VС, а описанное в теме и "исправленное в VC" - это всё относится к выполнению на хост машине, т.е. если система не скомпрометирована или посторонний не сможет получить доступ к включенном компьютеру - то это нивелирует все выявленные недостатки.
zhka
В век, когда новые версии софта принято выпускать даже для того, чтобы просто подогравать интерес (потенциальных) пользователей, программа не менявшаяся годами кажется устаревшей просто так. К сожалению...