저는 현재 Windows 10 20H2 OS에 대한 모든 해킹을 한 번에 수행하는 스크립트를 작업 중입니다.
PowerShell 7.0.4 x64를 사용하고 있습니다. Admin에서 스크립트를 실행하고 싶습니다 pwsh
. 일부 레지스트리 키를 변경하려면 TrustedInstaller 권한이 필요하다는 것을 알았습니다. 해결책을 찾았습니다. 프로세스 psexec -S
를 시작하여 권한이 pwsh
있는 명령을 실행하는 데 을 (를) 사용했습니다. 변수를 새 프로세스에 전달하는 방법과 스크립트 실행을 계속하기 위해 TrustedInstaller
자동으로 종료되도록 만드는 방법을 모릅니다 .psexec
나는 이것을 예로 사용하겠습니다:
$TiSvc=@(
"PrintWorkflowUserSvc"
"RmSvc"
"SCardSvr"
"SecurityHealthService"
"Sense"
"SgrmBroker"
"wscsvc"
)
$TiSvc | %{Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\$_" -Name Start -Type DWord -Value 4}
권한이 없으면 TrustedInstaller
액세스 거부 오류로 인해 명령이 실패합니다.
이제 이 문제를 해결하려면 다음 명령을 실행하십시오 ( 폴더를 에 psexec
넣었습니다 ).SysInternals
path
$PwSh=(Get-Process -Id $pid).path
PsExec -S $PwSh ???
[array]
현재 세션에서 변수를 설정하고 싶은데 새 세션에 $TiSvc
전달하고 다음 명령을 실행하는 방법을 모르겠습니다 .$TiSvc
pwsh
$TiSvc | %{Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\$_" -Name Start -Type DWord -Value 4}
그리고 명령이 실행된 후 새 pwsh
세션을 종료하고 종료하여 psexec
스크립트 실행을 계속합니다.
어떻게 해야 합니까? 도움을 주시면 감사하겠습니다.
답변1
실행하려는 명령을 TrustedInstaller
스크립트 파일과 동일한 경로의 텍스트 파일에 넣고 가 있는지 확인한 후 PsExec.exe
다음 Path
명령을 사용하십시오.
$PwSh=(Get-Process -Id $pid).path
psexec -S $pwsh -file $psscriptroot\tiworker.txt
다른 프로세스에서 TrustedInstaller 권한이 필요한 명령을 실행하기 위해 PowerShell
실행이 완료된 후 프로세스가 자동으로 종료되어 기본 스크립트 실행이 계속되도록 합니다.
TrustedInstaller 권한 없이 PowerShell 프로세스가 시작되는 사소한 실수를 수정했습니다.
위의 방법은 다음 명령을 실행하려고 시도했을 때 제대로 작동하지 않았습니다.
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\WinDefend" -Name "Start" -Type DWord -Value 4
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\WdBoot" -Name "Start" -Type DWord -Value 4
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\WdFilter" -Name "Start" -Type DWord -Value 4
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\WdNisDrv" -Name "Start" -Type DWord -Value 4
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\WdNisSvc" -Name "Start" -Type DWord -Value 4
오류가 발생했습니다.
Set-ItemProperty: Attempted to perform an unauthorized operation.
내가 사용한다면reg add
ERROR: Access is denied.
그러나 이전 명령은 모두 반환되었습니다.
The operation completed successfully.
특히 다음 명령은 다음과 같습니다.
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows Defender" -Name "DisableAntiSpyware" -Type DWord -Value 1
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows Defender" -Name "DisableRoutinelyTakingAction" -Type DWord -Value 1
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows Defender" -Name "ProductStatus" -Type DWord -Value 0
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows Defender\Real-Time Protection" -Name "DisableAntiSpywareRealtimeProtection" -Type DWord -Value 1
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows Defender\Real-Time Protection" -Name "DisableRealtimeMonitoring" -Type DWord -Value 1
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows Defender\Scan" -Name "AutomaticallyCleanAfterScan" -Type DWord -Value 0
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows Defender\Scan" -Name "ScheduleDay" -Type DWord -Value 8
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows Defender\UX Configuration" -Name "AllowNonAdminFunctionality" -Type DWord -Value 0
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows Defender\UX Configuration" -Name "DisablePrivacyMode" -Type DWord -Value 1
TrustedInstaller가 아닌 관리자로 실행하면 각각 다음 오류가 반환됩니다.
Set-ItemProperty: Requested registry access is not allowed.
를 사용하여 실행하면 PsExec
이 오류가 생성되지 않습니다.
하지만 이 오류는 다음과 같습니다.
Set-ItemProperty: Attempted to perform an unauthorized operation.
여전히 생성됩니다.
PsExec
나는 이것이 원격 작업에 의존하고 "원격 지원", "원격 데스크톱" 및 "원격 레지스트리"를 비활성화했기 때문이라고 생각합니다 .
나는 NSudoLC.exe
오류없이 Windows Defender를 성공적으로 비활성화했습니다.
NSudoLC.exe -U:T -P:E $pwsh -file $home\desktop\tisvc.txt
NSudo
위에서 언급한 두 가지 오류를 모두 사용하면 생성되지 않습니다.