内网横向移动—Kerberos攻击SPN扫描WinRMWinRSRDP( 三 )


3. WinRM&WinRS
WinRM 是( 远程管理)的简称,是 Web 服务管理标准 - 协议的实现 。该协议是基于简单对象访问协议(SOAP)的、防火墙友好的标准协议,允许来自不同供应商的硬件和操作系统能够互操作 。
WinRM 作为操作系统的一部分,是一项允许管理员在系统上远程执行管理任务的服务 。并且,WinRM 默认情况下支持和 NTLM 身份验证以及基本身份验证,初始身份验证后,WinRM 会话将使用 AES 加密保护 。使用 WinRM 服务需要拥有管理员级别的权限 。
在现代系统中,WinRM HTTP 通过 TCP 端口 5985 进行通信,而 HTTPS(TLS)通过 TCP 端口 5986 进行通信 。如果所有的机器都是在域环境下,则可以使用默认的 5985 端口,否则的话则通过 5986 端口使用 HTTPS 传输 。
使用 WinRM 我们可以在远程主机设置了防火墙的情况下远程管理这台服务器,因为启动 WinRM 服务后,防火墙默认会自动放行 5985 端口 。这样的管理服务当然不会被攻击者错过,在内网渗透中,我们可以使用 WinRM 服务进行横向移动,并且使用这种远程连接进行横向移动不容易被察觉到,也不会占用远程连接数 。
3.1. WinRM安装与配置
如果想要利用WinRM服务,并且让winrm命令行工具执行操作,那么通信双方必须同时安装并配置好远程管理 。
同时winrs适用于2008及 7 以后的操作系统上并自动与操作系统一同安装,但是只有在2008以上的操作系统winrs服务才会自启动,其它的都是需要手动开启的 。
不过通过验证 2008以上版本都是自动开启默认状态,7则必须手动开启,同时2012之后的版本默认开启同时运行远程任意主机来管理 。
3.1.1. 查看winrm侦听器配置情况
这是在2012上面,我在2008上设置,发现还是有一些小问题的,虽然自动开启,但是并不是默认允许任何主机连接 。
Address:表示监听器所监听的地址 。Transport:用于指定用于发送和接收 WS-Management 协议请求和响应的传输类型,如HTTP 或 HTTPS,其默认值为 HTTP 。Port:表示监听器所监听 TCP 端口 。Hostname:正在运行 WinRM服务的计算机的主机名 。该值必须是完全限定的域名、IPv4 或 IPv6文本字符串或通配符 。Enabled:表示是启用还是禁用侦听器,其默认值为 True,表示启用 。URLPrefix:用于指定要在其上接受HTTP 或 HTTPS 请求的 URL 前缀 。例如,如果计算机名称为 SampleMachine,则 WinRM 客户端将在目标地址中指定 `https://SampleMachine/<在目标地址中指定的 URLPrefix>` 。默认 URL 前缀为 "wsman" 。CertificateThumbprint:用于指定服务证书的指纹 。ListeningOn:用于指定侦听器使用的 IPv4 和 IPv6 地址 。
winrm e winrm/config/listener 或 winrm enumerate winrm/config/listenerwinrm get winrm/config#查看具体配置
3.1.2. 启动winrm服务
使用命令启动 WinRM 服务,并对 WinRM 服务进行默认配置 。
默认是配置以下内容:
启动 WinRM 服务,并将服务启动类型设置为 "自动启动" 。启动后,防火墙会默认并放行 5985 端口 。为在任何 IP 地址上使用 HTTP 或 HTTPS 发送和接收 WS-Management 协议消息的端口配置侦听器 。定义 WinRM 服务的 ICF 异常,并打开 HTTP 和 HTTPS 端口 。
winrm quickconfig
3.1.3. 其它配置命令
以下命令是可以对其winrm进行修改的一些命令 。
使用 PowerShell 查询 WinRM 状态:Get-WmiObject-Class win32_service | Where-Object{$_.name -like "WinRM"}开启 WinRM 远程管理:Enable-PSRemoting–force设置 WinRM 自启动:Set-ServiceWinRM-StartModeAutomatic对 WinRM 服务进行快速配置,包括开启 WinRM 和开启防火墙异常检测, HTTPS传输, 5986端口:winrm quickconfig -transport:https为 WinRM 服务配置认证:winrm set winrm/config/service/auth @{Basic="true"}修改 WinRM 默认端口:winrm set winrm/config/client/DefaultPorts @{HTTPS="8888"}为 WinRM 服务配置加密方式为允许非加密:winrm set winrm/config/service @{AllowUnencrypted="true"}设置只允许指定 IP 远程连接:winrm set winrm/config/Client @{TrustedHosts="192.168.10.*"}设置允许所有 IP 远程连接:winrm set winrm/config/Client @{TrustedHosts="*"}