Skip to main content

WinRM - 5985/5986

기본 정보​

포트: 5985 (HTTP), 5986 (HTTPS)

WinRM(Windows Remote Management)은 Windows 시스템의 원격 관리를 위한 프로토콜입니다.

Evil-WinRM​

# 기본 연결
evil-winrm -i <RHOST> -u <USERNAME> -p <PASSWORD>

# 인증서 기반 연결
evil-winrm -i <RHOST> -c /PATH/TO/CERTIFICATE/<CERTIFICATE>.crt -k /PATH/TO/PRIVATE/KEY/<KEY>.key -p -u -S

Evil-WinRM 내부 명령어​

# 파일 업로드
*Evil-WinRM* PS> upload /path/to/local/file C:\path\to\remote\file

# 파일 다운로드
*Evil-WinRM* PS> download C:\path\to\remote\file /path/to/local/file

# PowerShell 스크립트 로드
*Evil-WinRM* PS> menu

# 서비스 목록
*Evil-WinRM* PS> services

# 프로세스 목록
*Evil-WinRM* PS> processes

NetExec​

# 명령 실행
netexec winrm <RHOST> -u '<USERNAME>' -p '<PASSWORD>' -X <COMMAND>

# 해시 사용
netexec winrm <RHOST> -u '<USERNAME>' -H '<HASH>' -X <COMMAND>

# 여러 호스트 스캔
netexec winrm <RHOST_RANGE> -u '<USERNAME>' -p '<PASSWORD>'

Nmap​

# WinRM 포트 스캔
sudo nmap -p5985,5986 -sV <RHOST>

# WinRM 정보 수집
sudo nmap -p5985 --script http-methods <RHOST>

Hydra 브루트포스​

# WinRM 브루트포스
hydra -L users.txt -P passwords.txt <RHOST> http-post -m "/wsman"

PowerShell Remoting​

# PowerShell에서 WinRM 세션 생성
$password = ConvertTo-SecureString '<PASSWORD>' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential('<USERNAME>', $password)
Enter-PSSession -ComputerName <RHOST> -Credential $cred

# 명령 실행
Invoke-Command -ComputerName <RHOST> -Credential $cred -ScriptBlock { whoami }

# 스크립트 실행
Invoke-Command -ComputerName <RHOST> -Credential $cred -FilePath C:\path\to\script.ps1

WinRM 활성화 (로컬)​

# WinRM 서비스 시작
Enable-PSRemoting -Force

# 방화벽 규칙 추가
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP" -RemoteAddress Any

# TrustedHosts 설정
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force

# 설정 확인
winrm get winrm/config

참고​

  • WinRM 활성화 여부 확인
  • 5985 (HTTP) vs 5986 (HTTPS)
  • Remote Server Administration 그룹 멤버 확인
  • Pass-the-Hash 가능
  • Evil-WinRM으로 쉘 획득
  • PowerShell Remoting 사용 가능