winrm service: 是windows 一种方便远程管理的服务;
开启winrm service,便于在日常工作中,远程管理服务器,或通过脚本,同时管理多台服务器,来提高工作效率;
在内网渗透中,往往用来进行内网的横向移动(主机的批量执行命令)

利用条件

1、在win 2012之后(包括win 2012)的版本是默认开启的,win 2012之前利用需要手动开启winRM。
2、防火墙对5986、5985端口开放。

基本使用方式

以下命令在Powershell下运行

#0、Test-WsMan 192.168.43.59
查看服务是否正常
image.png

#1、查看WinRM状态
winrm enumerate winrm/config/listener
image.png

2、开启/关闭WinRM远程管理
Enable-PSRemoting –force
disable-PSRemoting –force

Enable-PSRemoting -force -SkipNetworkProfileCheck 无视告警
image.png

3、对WinRM服务进行快速配置,包括开启WinRM和开启防火墙异常检测,默认的5985端口
winrm quickconfig -q
#对WinRM服务进行快速配置,包括开启WinRM和开启防火墙异常检测,HTTPS传输,5986端口winrm quickconfig -transport:https
image.png

4、#查看WinRM的配置
winrm get winrm/config
image.png

5、为WinRM服务配置认证
winrm set winrm/config/service/auth ‘@{Basic=”true”}’
image.png

6、修改WinRM默认端口
winrm set winrm/config/client/DefaultPorts ‘@{HTTPS=”8888”}’
image.png

7、为WinRM服务配置加密方式为允许非加密:
winrm set winrm/config/service ‘@{AllowUnencrypted=”true”}’

8、设置只允许指定IP远程连接
WinRMwinrm set winrm/config/Client ‘@{TrustedHosts=”192.168.10.*”}’

9、执行命令
winrm invoke create wmicimv2/win32_process -SkipCAcheck -skipCNcheck ‘@{commandline=”calc.exe”}’
image.png

8、执行指定命令程序
winrm invoke create wmicimv2/win32_process -SkipCAcheck -skipCNcheck ‘@{commandline=”C:\Windows\System32\calc.exe”}’

image.png

远程控制的两个命令

1、winrs -r:http://192.168.204.135:5985 -u:ice -p:123456 cmd
直接启用会失败,原因是没有计算机未和主控机在一个域内时,需要使用HTTPS传输或者进行信任配置。
image.png
在主机上使用如下命令,把*(所有主机)加入信任主机配置中,启用信任配置

Set-Item WSMan:localhost\client\trustedhosts -value *
Restart-Service WinRM

image.png
image.png

2、Enter-PSSession -ComputerName 192.168.204.135 -Credential ice**
此方法不会产生告警
image.png
image.png
image.png