CryKeX — извлечение криптографических ключей памяти Linux — Information Security Squad

CryKeX — извлечение криптографических ключей памяти Linux

Свойства:

  • Кросс-платформенность
  • Минимализм
  • Простота
  • Интерактивность
  • Совместимость / Переносимость
  • Обработка процесса
  • Инъекция процесса

Зависимости:

  • Unix — должен работать на любой ОС на базе Unix
  • BASH — весь скрипт
  • привилегии root (необязательно)

Ограничения:

  • Только ключи AES и RSA
  • Большую часть времени не работает браузер Firefox.
  • Не будет работать для шифрования диска (LUKS) и PGP / GPG
  • Требует правильных прав пользователя и прав доступа к памяти

Как это работает

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

В целом, для этой цели существуют инструменты.

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

Это позволяет сбрасывать ключи практически из любого процесса / двоичного кода в системе.

Конечно, доступ к памяти ограничен ядром, а это значит, что вам все равно потребуются привилегии для процесса.

Linux ecnryption (LUKS) использует анти-форензииковую технику, чтобы смягчить такую ​​проблему, однако извлечение ключей из целой памяти все еще возможно.

Браузер Firefox использует какое-то подобное управление памятью, поэтому, похоже, это не затрагивается.

То же самое касается PGP / GPG.

Как установить

Установка зависимостей:

 # sudo apt install gdb aeskeyfind rsakeyfind || echo 'have you heard about source compiling?' 

Интерактивный пример для ключей OpenSSL AES:

 # openssl aes-128-ecb -nosalt -out testAES.enc 

Введите пароль дважды, затем текст и перед завершением:

 # CryKeX.sh openssl 

Наконец, нажмите Ctrl + D 3 раза и проверьте результат.

Ключи RSA OpenSSL:

 # openssl genrsa -des3 -out testRSA.pem 2048 

Когда будет предложено ввести парольную фразу:

 # CryKeX.sh openssl 

Убедитесь, что:

 # openssl rsa -noout -text -in testRSA.pem 

Давайте извлечем ключи из SSH:

 # echo 'Ciphers aes256-gcm@openssh.com' >> /etc/ssh/sshd_config
# ssh user@server
# CryKeX.sh ssh 

Из OpenVPN:

 # echo 'cipher AES-256-CBC' >> /etc/openvpn/server.conf
# openvpn yourConf.ovpn
# sudo CryKeX.sh openvpn 

TrueCrypt / VeraCrypt также задевает: выберите «veracrypt» файл в VeraCrypt, установите с паролем «pass» и:

 # sudo CryKeX.sh veracrypt 

Chromium-основанные браузеры (спасибо Google):

 #CryKeX.sh chromium
# CryKeX.sh google-chrome 

Несмотря на то, что Firefox не был явно затронут, Tor Browser Bundle все еще подвержен туннелированию:

 # CryKeX.sh tor 

Как уже было сказано, вы можете также запаковывать процессы:

 # apt install libssl-dev
# gcc -lcrypto cipher.c -o cipher
# CryKeX.sh cipher
# wrap
# cipher 

Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40