Шифрование и дешифрование в PowerShell

В PowerShell командлеты ConvertTo-SecureString и ConvertFrom-SecureString можно использовать для шифрования и дешифрования стандартной строки System.String в System.Security.SecureString.

Пример: строка шифруется и сохраняется в переменной:

data = "This is some extremely important data"

$encryptedData = ConvertTo-SecureString -String $data -AsPlainText

При введении имя переменной, содержащей зашифрованную строку, то увидим ее тип System.Security.SecureString (в картинке)

Также можем расшифровать данные, хранящиеся в объекте System.Security.SecureString, следующим образом:

ConvertFrom-SecureString -SecureString $encryptedData -AsPlainText

Использование зашифрованных строк для учетных данных PowerShell

Возможность выполнения командлета от имени другого пользователя – полезная опция, особенно для Red Team-ов, которые могут использовать украденные учетные данные для взлома удаленной машины. Для указания учетных данных, необходимых при запуске командлета, используется параметр Credential, который требует объект PSCredential. Для создания этого объекта необходимо указать имя пользователя и зашифрованный пароль.

Рекомендуется использовать командлет Read-Host с параметром AsSecureString для ввода пароля в безопасной форме, т.к. это предотвратит регистрацию учетных данных в журналах PowerShell.

С помощью кода PowerShell можно считывать данные со стандартного ввода и сохранять их в переменной в виде защищенной строки:

$password = Read-Host -AsSecureString

Затем можем взять эту безопасную строку и создать требуемый объект PSCredential:

$Cred = New-Object System.Management.Automation.PSCredential("domain\user", $password)

Теперь можем использовать этот объект PSCredential с командлетами, позволяющими указать параметр Credential. Вот как выполняется командлет Invoke-Command на удаленной машине с WINRM от имени другого пользователя, используя созданный нами PSCredential:

Invoke-Command -Credential $Cred -ScriptBlock { whoami } -ComputerName 10.10.1.11

Информация предоставлена исключительно для ознакомительных целей!

Мы в телеграме!

Life-Hack [Жизнь-Взлом]/Хакинг

251 пост2.7K подписчиков

Добавить пост

Правила сообщества

Просьба уважать друг друга.