Перейти к содержанию

Quas Safe Unified


Рекомендуемые сообщения

  • Модераторы

Quas Safe Unified

Просмотр файла

Quas Safe Unified

 

Описание

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

После дешифровки содержимое может быть передано в основной код в качестве параметров или значений (например, переменных) или непосредственно выполнено самой программой Quas Safe..

Для шифрования используются алгоритмы AES-256 и PBKDF2, весь код сохраняется в ключ, который может быть записан в реестр или файл. Зашифрованные ключи не содержат паролей и не поддаются взлому, поэтому их спокойно можно публиковать или пересылать в открытом виде. Для дополнительной защита от взлома через Rainbow Tables программа использует “соль”. Не пренебрегайте этой возможностью.

 

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

 

ВАЖНО: пароли нигде не хранятся и если вы их забудете, восстановить информацию будет невозможно!

 

Работа с программой.

 

Основное окно.

 

Запускаем скрипт QuasSafe.ps1, откроется окно программы.

2026-04-22_171454.jpg

 

Слева поле со списком ключей, под ним - описание ключа (если оно есть). Это поле Description (см. дальше) и в нем можно указать для чего используется ключ. Это не секретная информация.

Справа кнопки:

Theme - переключение тем, светлая/темная.

? - краткое описание и помощь по работе с программой.

Add New Key - создать новый ключ.

Delete Key - удаляет ключ под курсором. Потребуется подтверждение удаления.

Export Key - экспортировать из реестра в файл vault.txt ключ под курсором.

Export All Keys - экспортировать все ключи из реестра в файл vault.txt

Import Key - импортировать в реестр все ключи из файла vault.txt

View / Edit Key - просмотреть или отредактировать ключ под курсором.

Run Decryptor - запустить процедуру дешифровки ключа для проверки его работы. Будет запрошен пароль.

 

Создание ключа

 

Кнопка Add New Key откроет окно Create Key с несколькими полями и параметрами.

 

Name - Имя или идентификатор ключа. Под этим именем ключ сохраняется в реестре и отображается в списке ключей. Это обязательный параметр.

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

Output filename - название файла, в который будет сохранено содержимое Payload после расшифровки.Это обязательный параметр

Description - описание ключа. Здесь можно указать для чего используется ключ.

Salt - дополнительный параметр шифрования “соль”, предназначен для защиты от взлома с помощью Rainbow Tables. Если не прописан, записывается как Default

Hint - подсказка пароля. Здесь может быть фраза или намек на пароль, которые будут понятны только автору ключа  и которые помогут вспомнить пароль, если он забудется.

Password - собственно пароль и его подтверждение

Save to reg - ключ будет сохранен в реестр в раздел HKCU\Software\Quas\Credentials

Save to file - ключ будет сохранен в файл vault.txt

After decrypt (Run file) - если установлена галка, файл будет выполнен или открыт после дешифровки.

Кнопка Save сохраняет созданный ключ.

 

Пример создания ключа:

qsu-adk1.jpg

 

 

После нажатия на кнопку Save Data будет создан ключ TextNote, который после дешифровки автоматически откроет текстовый файл note.txt с надписью “Hello World!

 

 

Еще один пример, как использовать учетные данные

2026-04-22_171541.jpg

 

 

После расшифровки ключа будет создан и выполнен файл set_creds.bat, который пропишет переменные для подключения к Webdav и скачивания файла myfile.txt с помощью curl.

Использовать файл set_creds.bat следует вызовом из подпрограммы, тогда переменные передадутся в основной код. Вот пример такого вызова на cmd:

setlocal

:_Main
rem Вызываем подпрограмму расшифровки, которая вернет нам переменные
call :_Decryption
curl -Lko -u  %curllogin%:%curlpass% myfile.txt %curllink%
exit

:_Decryption
rem Запуск QuaSafe для дешифровки ключа CurlWebdav
powershell -NoProfile -ExecutionPolicy Bypass -File "QuasSafe3.9.3.ps1" -Decrypt -keyName "CurlWebdav"
if %errorlevel% equ 0 (
rem Если ошибок дешифровки нет и файл создался, выполняем его, затем удаляем
if exist "set_creds.bat" (
call "set_creds.bat"
del /f /q "set_creds.bat"
)
) else (
rem Если пароль трижды неправильный, выходим из программы
echo Access Denied.
pause
exit
)
exit /b

 

После запуска этого кода будет вызвана подпрограмма дешифровки, которая попросит ввести пароль от ключа CurlWebdav. Если пароль будет трижды введен неверно, всплывет сообщение Access Denied и программа будет закрыта.

После ввода правильного пароля будет создан и выполнен файл set_creds.bat, который в переменные curllogin, curlpass запишет учетные данные, а в curllink ссылку, и затем эти переменные будут переданы утилите curl, которая по этим данным скачает файл myfile.txt

В данном случае важно, чтобы файл set_creds.bat выполнялся в отдельной подпрограмме (call “set_creds.bat”), иначе переменные не будут переданы в основной код

 

Работа с командной строкой.

 

В командной строке поддерживаются следующие параметры:

 

   -Encrypt       : Режим шифрования. Создает или обновляет ключ.

   -Decrypt       : Режим дешифрования. Требуются параметры -keyName (из реестра) или -payload.

   -ToReg          : Флаг: Сохранить ключ в реестр (HKCU:\Software\Quas\Credentials).

   -ToFile          : Флаг: сохраняет или добавляет ключи из реестра в файл 'vault.txt'.

   -keyName   : Уникальное имя/ID ключа в реестре.

   -payload      : Данные для шифрования. Если содержат точку с запятой, парсятся как 'Salt;Hint;Desc;Cipher;Outfile;RunFlas'.

   -outFile        : Имя файла в котором будут сохранены расшифрованные данные (например, creds.bat)

   -pass             : Пароль для использхования в командной строке (иначе программа попросит его ввести)

   -saltText       : Параметр усложняет взлом По умолчанию это 'Default'.

   -hint              : Подсказка пароля.

   -Run              : Флаг: запуск выходного файла после дешифровки. Переопределяет флаг в настройках.

 

Примеры запуска из командной строки:

          

    .\QuasSafe.ps1 -Encrypt -keyName "MyGoogleCreds" -saltText "MySalt" -hint "Year"

    Шифрование данных (из source.txt или ввода вручную) и сохранение в реестр под именем "Koofr".

 

    .\QuasSafe.ps1 -Encrypt -keyName "Test" -saltText "MySalt" -hint "Birth year" -payload "set login=admin & set pass=123"

    Шифрование данных с указанием всех параметров в строке запуска скрипта

 

    .\QuasSafe.ps1 -Encrypt -ToReg -ToFile -DelSource -keyName "MyService" -saltText "Salt123"

    Шифрует данные из 'source.txt', сохраняет в реестр и файл, затем удаляет исходник. Полная автоматизация.

 

    .\QuasSafe.ps1 -Decrypt -payload "MySalt;MyHint;Base64Data..."

    (Сценарий А) Расшифровка строки, содержащей все компоненты.

 

    .\QuasSafe.ps1 -Decrypt -payload "Base64Data..." -saltText "MySalt" -hint "MyHint"

    (Сценарий Б) Расшифровка, где каждый компонент передан отдельным параметром.

 

    .\QuasSafe.ps1 -Decrypt -keyName "MyKey"

    (Сценарий В) Поиск и расшифровка данных в реестре по имени "MyKey".

 

Дополнение:

Ключи в файле vault.txt сохраняются в таком формате:

KeyNam = Salt;Hint;Description;Payload;Outfile;Run_flag

В реестре сохраняются точно так же.

 

Все это очень красиво и выглядит солидно, но как всем  этим пользоваться?

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

 

Этап первый: Постановка задачи.


Для начала следует решить, какие данные будем туда вносить и как их обрабатывать после расшифровки.

Для скачивания файла нужна такая строка:

curl -Lko -u  mylogin:mypassword myfile.txt mylink


Здесь:
mylogin - логин для авторизации в облако
mypassword - пароль для авторизации туда же.
myfile.txt - файл, который будем скачивать
mylink - ссылка для скачивания файла.

Назначим переменные для всех этих параметров, кроме myfile.txt:

set "curllogin=mylogin"
set "curlpass=mypassword"
set "mylink=https://example.com/webdav/Folder/Files/myfile.txt"


Собственно, вот эти три строчки и представляют собой содержимое файла set_creds.bat, который будет выполнен после расшифровки (если вы установите флаг RunFile)
В результате его выполнения трем переменным будут присвоены значения, которы нам и нужны. Затем мы передадим эти значения основному коду, в котором будет выполнена строка с уже назначенными переменными после выполнения set_creds.bat:

curl -Lko -u  %curllogin%:%curlpass% myfile.txt %curllink%


и наш файл преспокойно скачается.

Таким образом, основной код у нас будет состоять из трех частей:

  1. Вызов подпрограммы расшифровки ключа
  2. Выполнение программы после расшифровки
  3. Вызов подпрограммы действия (в данном случае - скачивания)

 

Этап второй: Создание ключа.

Здесь совсем все просто: исполняемый файл set_creds.bat у нас практически сформирован, и его мы помещаем в поле Payload.
Заполняем остальные поля: Name, Output filename, Description (если нужно), Salt, Hint  и Password.

mysecretkey.jpg

 

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

Пароль в этом примере - mypassword, так же, как имя его переменной.

Итак, поля заполнены, отмечаем галку на поле Run File, переключаем на Save to file (так будет проще извлечь ключ) и жмем кнопку Save Data.
Рядом появится файл vault.txt примерно такого вида:

MySecretKey = MySalt;MyHint;Описание ключа;iPaVllcKST2ZngcntNlxZEWgqyR6lit7ET77ILS2qttol9IssNKB5dX16u6O+hUJI5ckN/YyB9XXa4yJdStzrsdyMVR9CETl9dWfewrc4cddxpImKPooktIJfN6WhKIfgqd1207QQcXyNrQIBDg3Jw==;set_creds.bat;1

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

Этап третий: Подпрограмма дешифровки.

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

Строка запуска дешифровки будет выглядеть так:

powershell -NoProfile -ExecutionPolicy Bypass -File "QuasSafe.3.9.4.ps1" -Decrypt -payload "%payload%" -outfile "set_creds.bat" -hint "MyHint" -saltText "MySalt"


Здесь прописаны все параметры и их значения, которые мы использовали при создании ключа.
Как можно заметить, в строке используется переменная %payload% - это и есть наш ранее созданный ключ.
Чтобы присвоить этой переменной наш ключ, перед запуском дешифровки назначьте его переменной payload, вот так:

set "payload=iPaVllcKST2ZngcntNlxZEWgqyR6lit7ET77ILS2qttol9IssNKB5dX16u6O+hUJI5ckN/YyB9XXa4yJdStzrsdyMVR9CETl9dWfewrc4cddxpImKPooktIJfN6WhKIfgqd1207QQcXyNrQIBDg3Jw=="

Небольшое отступление:
Существуют два режима ввода параметров при дешифровке: параметры из реестра и непосредственно в строке запуска.
В данном случае мы используем строку с набором параметров.

rem Подпрограмма дешифровки, состояит из двух строк - назначение ключа и запуск QuasSafe, который попросит нас ввести пароль.
rem После ввода пароля файл set_creds будет расшифрован.
set "payload=iPaVllcKST2ZngcntNlxZEWgqyR6lit7ET77ILS2qttol9IssNKB5dX16u6O+hUJI5ckN/YyB9XXa4yJdStzrsdyMVR9CETl9dWfewrc4cddxpImKPooktIJfN6WhKIfgqd1207QQcXyNrQIBDg3Jw=="
powershell -NoProfile -ExecutionPolicy Bypass -File "QuasSafe.3.9.4.ps1" -Decrypt -payload "%payload%" -outfile "set_creds.bat" -hint "MyHint" -saltText "MySalt"

Еще одно отступление:
Флаг RunFile у нас записывается отдельно и он служит маркером для QuasSafe - запускать на выполнение после дешифровки или нет.
Поскольку мы в данном случае не используем параметр запуска Run, подпрограмму set_creds.bat можно запускать отдельным вызовом.
Или просто добавить параметр -Run к строке дешифровки. Я специально не добавлял этот параметр, чтобы показать как вызывать и запускать подпрограмму set_creds.bat отдельно.
Собственно, почти все готово, можно сочинять основной код.


Этап четвертый: Собираем все вместе.

Выше описаны три части, из которых будет состоять код, так его и строим:

rem 1. Вызов подпрограммы дешифровки
call :_Decryption
rem 2. Выполнение расшифрованного файла set_creds.bat
call :_ActionSetCredsBat
rem 3. Вызов подпрограммы скачивания
call :_CurlDownload
echo  Done.
pause
exit

rem 1a. Подпрограмма дешифровки
:_Decryption
set "payload=iPaVllcKST2ZngcntNlxZEWgqyR6lit7ET77ILS2qttol9IssNKB5dX16u6O+hUJI5ckN/YyB9XXa4yJdStzrsdyMVR9CETl9dWfewrc4cddxpImKPooktIJfN6WhKIfgqd1207QQcXyNrQIBDg3Jw=="
powershell -NoProfile -ExecutionPolicy Bypass -File "QuasSafe.3.9.4.ps1" -Decrypt -payload "%payload%" -outfile "set_creds.bat" -hint "MyHint" -saltText "MySalt"
exit /b

rem 2a. Выполнение расшифрованного файла с последующим его удалением
:_ActionSetCredsBat
if exist set_creds.bat call set_creds.bat&&del /f /q set_creds.bat
exit /b

rem 3a. Скачивание файла
:_CurlDownload
curl -Lko -u  %curllogin%:%curlpass% myfile.txt %curllink%
exit /b

Первую и вторую части можно совместить, а также сделать проверку на ошибки (см. пример в начале статьи)
Собственно, это все.

 

Несколько важных пояснений:
Шифровать можно все что угодно, не обязательно логины и пароли. Но следует иметь в виду, что код будет записан в одну строку, а ее размер ограничен.
Скриптовые файлы (cmd, bat, ps1) будут выполнены в соответствующей оболочке, а остальные открыты программами по умолчанию, например если расширение файла будет txt, то он откроется программой Notepad, и так далее.
Ключ в примере приведен настоящий, со всеми вышеописанными параметрами и значениями, можете попрактиковаться на нем, например импортировать файл vault.txt, который будет приложен к статье.
Напомню, пароль к ключу тоже указан здесь же, это "mypassword" без кавычек.
 


 

Ссылка на комментарий
https://vrcomm.ru/forums/topic/1182-quas-safe-unified/
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...

Важная информация

Правила пользования сайтом Условия использования