加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 服务器 > 系统 > 正文

端口复用后门

发布时间:2021-02-27 15:35:24 所属栏目:系统 来源:网络整理
导读:目录 端口复用后门 一. 端口复用 1.1 端口复用场景条件 1.2 类型 1.3 原理 二. HTTP.sys端口复用后门 2.1 简介 2.2 后门配置 2.3 后门连接和使用 2.4 UAC问题 2.5 Hash登录 2.6 防御: 2.7 检测 三. Refer 端口复用后门 一. 端口复用 1.1 端口复用场景条件 s

端口复用的原理是与源端口占用程序监听同一端口,当复用端口有数据来时,我们可以判断是否是自己的数据包,如果是自己的,那么就自己处理,否则把数据包交给源端口占用程序处理。

二. HTTP.sys端口复用后门

2.1 简介

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

HTTP.sys驱动是IIS的主要组成部分,主要负责HTTP协议相关的处理,它有一个重要的功能叫Port Sharing,即端口共享。所有基于HTTP.sys驱动的HTTP应用可以共享同一个端口,只需要各自注册的url前缀不一样即可。

Net.TCP Port Sharing服务是WCF(Windows Communication Foundation)中的一个新的系统组件,这个服务会开启net.tcp 端口共享功能以达到在用户的不同进程之间实现端口共享。这个机制的最终是在HTTP.sys中实现的,目前将许多不同HTTP应用程序的流量复用到单个TCP端口上的HTTP.SYS模型已经成为Windows平台上的标准配置。这为防火墙管理员提供了一个共同的控制点,同时允许应用程序开发人员最小化构建可利用网络新应用程序的部署成本。跨多个 HTTP应用程序共享端口的功能一直是Internet信息服务(IIS)的一项功能。实际上,HTTP.SYS允许任意用户进程共享专用于HTTP流量的TCP端口。

HTTP.sys是在Windows Server 2003最开始引进的,这个驱动监听HTTP流量,然后根据URL注册的情况去分发,这样多个进程可以在同一个端口监听HTTP流量

端口复用后门

匹配过程:

  1. 当IIS或者其他的应用使用HTTP Server API去监听请求路径的时候,这些应用需要在HTTP.SYS上面注册url prefix ,关于注册URL的规则。
  2. 当一个请求到来并被http.sys获取到,它需要分发这个请求给注册当前url对应的应用,这是路由的过程。

使用 netsh http show servicestate 命令可以查看所有在HTTP.sys上注册过的url前缀。

端口复用后门

实际上,WinRM就是在HTTP.sys上注册了wsman的URL前缀,默认监听端口5985。这点从微软公布的WinRM的架构图也可以看出来。

端口复用后门

因此,在安装了IIS的边界Windows服务器上,开启WinRM服务后修改默认listener端口为80或新增一个80端口的listener即可实现端口复用,可以直接通过Web端口登录Windows服务器。

2.2 后门配置

步骤:

  1. 开启WinRM服务
  2. 新增80端口Listerner
  3. 修改WinRM端口

2.2.1 开启WinRM服务

Windows Server 2012及以上,已经默认开启WinRM并监听了5985端口

Windows Server 2008及一下,使用 winrm quickconfig -q 命令开启WinRM并自动从防火墙放行5985端口。

winrm使用端口:http 5985 https 5986

2.2.2 新增80端口Listener

对于原本就开放了WinRM的机器(Server 2012),需要保留该端口,以免影响系统管理员正常使用,同时还需要新增一个80端口的Listener供攻击者使用。

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

端口复用后门

端口复用后门

即Windows Server 2012,只需要执行上述命令即可实现端口复用。

此时使用netsh http show servicestate查看可以看到,http.sys新注册了一条url前缀:

端口复用后门

2.2.3 修改WinRM端口

对于原本未开放WinRM服务的机器(Server 2008),需要把新开的5985端口修改至80端口,避免引起系统管理员怀疑。

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

即Windows Server 2008,需要开启WinRM服务后,使用上述命令修改端口即可实现端口复用。

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读