Специальные символы в скрипте взлома PowerShell? - PullRequest
0 голосов
/ 30 января 2020

Я создаю сценарий PowerShell, и часть его состоит в том, чтобы разблокировать учетные записи пользователей AD. Мне интересно, может ли мой пароль содержать какие-то специальные символы, даже если они заключены в ''. Тот же процесс, который использовался для работы с более коротким паролем, но без новых правил для паролей, затем должен быть длиннее. Из того, что я могу найти, это должно работать.

Import-Module activedirectory
$password = "Myreallylongpassword!@#2020" | ConvertTo-SecureString -asPlainText -Force 
$username = "myusername-admin" | ConvertTo-SecureString
$cred = New-Object System.Management.Automation.PSCredential($username,$password)

Затем, чтобы фактически запустить это, у меня есть раздел сценария:

$username = read-host "Enter username you want to unlock"
Unlock-ADaccount -identity $username -credential $cred

Из того, что я знаю, это должно работать, если я не пропал у кого-то или у кого-то есть лучший способ сделать это и иметь дело с UA C в окружающей среде Windows 10.

Спасибо за внимание!

Ответы [ 2 ]

2 голосов
/ 30 января 2020

Кавычки и специальные символы

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

Пример:

$longpassword = 'this is not good'

$password = "Myreally$longpassword!@#2020"
# Myreallythis is not good!@#2020
$password = 'Myreally$longpassword!@#2020'
# Myreally$longpassword!@#2020

Создание PSCredential

Так что для генерации учетных данных есть несколько вещей, которые нужно исправить.

  • Ваше имя пользователя не обязательно должно быть SecureString .
  • Обратите внимание на использование одинарных кавычек вместо двойных.
$username = 'myusername-admin'
$password = 'Myreallylongpassword!@#2020' | ConvertTo-SecureString -asPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username,$password 
0 голосов
/ 30 января 2020

Попробуйте использовать это вместо своего:

    $cred = New-Object Management.Automation.PSCredential “UsernameHere”, (“PasswordHere” | ConvertTo-SecureString -AsPlainText -Force)
...