Модераторы Varset 286 Опубликовано 22 апреля Модераторы Поделиться #1 Опубликовано 22 апреля Quas Safe Unified Просмотр файла Quas Safe Unified Описание Программа разработана и написана на PowerShell и предназначена для шифрования кода, учетных записей, ссылок и т.д.. Она также может быть интегрирована в любой код, поддерживающий выполнение скриптов PowerShell. После дешифровки содержимое может быть передано в основной код в качестве параметров или значений (например, переменных) или непосредственно выполнено самой программой Quas Safe.. Для шифрования используются алгоритмы AES-256 и PBKDF2, весь код сохраняется в ключ, который может быть записан в реестр или файл. Зашифрованные ключи не содержат паролей и не поддаются взлому, поэтому их спокойно можно публиковать или пересылать в открытом виде. Для дополнительной защита от взлома через Rainbow Tables программа использует “соль”. Не пренебрегайте этой возможностью. Программа работает в трех режимах: шифрование, дешифрование, и Менеджер ключей. Она поддерживает множество параметров командной строки, позволяющие автоматизировать режимы шифрования и дешифровки. При запуске без параметров запустится графический Менеджер ключей, в котором можно управлять существующими ключами или создать новые. ВАЖНО: пароли нигде не хранятся и если вы их забудете, восстановить информацию будет невозможно! Работа с программой. Основное окно. Запускаем скрипт QuasSafe.ps1, откроется окно программы. Слева поле со списком ключей, под ним - описание ключа (если оно есть). Это поле 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 сохраняет созданный ключ. Пример создания ключа: После нажатия на кнопку Save Data будет создан ключ TextNote, который после дешифровки автоматически откроет текстовый файл note.txt с надписью “Hello World!” Еще один пример, как использовать учетные данные После расшифровки ключа будет создан и выполнен файл 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% и наш файл преспокойно скачается. Таким образом, основной код у нас будет состоять из трех частей: Вызов подпрограммы расшифровки ключа Выполнение программы после расшифровки Вызов подпрограммы действия (в данном случае - скачивания) Этап второй: Создание ключа. Здесь совсем все просто: исполняемый файл set_creds.bat у нас практически сформирован, и его мы помещаем в поле Payload. Заполняем остальные поля: Name, Output filename, Description (если нужно), Salt, Hint и Password. Примечание: если вы назначите свой параметр 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" без кавычек. Добавил Varset Добавлено 22.04.2026 Категория Приложения Ссылка на комментарий https://vrcomm.ru/forums/topic/1182-quas-safe-unified/ Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти