WinRM端口复用原理

使用Windows的远程管理服务WinRM,结合 HTTP.sys 驱动自带的端口复用功能,实现正向的端口复用。
使用命令

  1. netsh http show servicestate

image.png

端口复用配置

新增80端口监听
对于Windows Server 2012以上的服务器操作系统中,WinRM服务默认启动并监听了5985端口。如果服务器本来就监听了80和5985端口,则所以我们既需要保留原本的5985监听端口,同时需要新增Winrm监听80端口。这样的话,WinRM同时监听80和5985端口。既能保证原来的5985端口管理员可以正常使用,我们也能通过80端口远程连接WinRM。
通过命令:

  1. winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}

可以新增一个WinRM一个80端口的监听
image.png
输入命令查询:winrm e winrm/config/listener
image.png
查看监听端口
image.png
80端口正常访问网页
image.png

修改WinRM默认监听的端口

如果该计算机上原本没有开启WinRM服务的话,则需要将WinRm端口监听端口修改为80端口。不然管理员看到该机器开起来5985端口的话,肯定会有疑问。

  1. 快速启动WinRM
  2. winrm quickconfig -q
  3. 修改WinRM默认端口为80
  4. winrm set winrm/config/Listener?Address=*+Transport=HTTP @{Port="80"}

image.png
可以看出已经没有监听5985端口了,只有80端口
image.png
配置完成之后,原本的HTTP服务可以正常访问,我们也可以通过80端口进行远程WinRM连接管理

远程连接WinRM(本地物理机远程连接虚拟机)

本地连接需要WinRM服务时,首先也需要配置启动WinRM服务。如果是工作组环境的话,还需要设置信任连接的主机,执行以下两条命令即可。注:所有的命令是要以管理员身份进行的,不然会执行失败

  1. winrm quickconfig -q
  2. winrm set winrm/config/Client @{TrustedHosts="*"}

image.png

  1. 通过WinRM连接,并执行whoami命令
  2. winrs -r:http://192.168.x.x -u:admin -p:root whoami
  3. 通过WinRM连接,并获得交互式的shell
  4. winrs -r:http://192.168.x.x -u:admin -p:root cmd

本地物理机远程连接虚拟机
image.png
image.png

参考资料:
https://blog.csdn.net/qq_36119192/article/details/105864425?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163246881516780274116405%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163246881516780274116405&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-7-105864425.pc_v2_rank_blog_default&utm_term=%E7%AB%AF%E5%8F%A3&spm=1018.2226.3001.4450