Свойства:
- Кросс-платформенность
- Минимализм
- Простота
- Интерактивность
- Совместимость / Переносимость
- Обработка процесса
- Инъекция процесса
Зависимости:
- 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
Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.