一文打尽 LinuxWindows端口复用实战

访客4年前关于黑客接单1178

本文作者:Spark(Ms08067内网安全小组成员)

定义:端口复用是指不同的应用程序使用相同端口进行通讯。
场景:内网渗透中,搭建隧道时,服务器仅允许指定的端口对外开放。利用端口复用可以将3389或22等端口转发到如80端口上,以便外部连接。

示意图

image.png
功能:

  • 端口复用可以更好地隐蔽攻击行为,提高生存几率。

  • 端口复用有时也用作通道后门。

特点:

  • 端口复用在系统已开放的端口上进行通讯,只对输入的信息进行字符匹配,不对 *** 数据进行任何拦截、复制类操作,所以对 *** 数据的传输性能几乎没有影响。

一、 Linux端口复用

1.概述:

使用iptables实现端口复用,使用socat进行连接。
使用该 *** 开启的端口复用为有限的端口复用,复用后端口正常业务会受影响,仅用于后门留存,或者临时使用,不建议长期使用。

2. 原理:

(1)iptables
iptables是linux下的防火墙管理工具。

  • 真正实现防火墙功能的是netfilter,它是linux内核中实现包过滤的核心。

  • 免费。

  • 可实现封包过滤、封包重定向和网路地址转换(NAT)等功能。

(2)数据通过防火墙流程

image.png(3)链
链是一些按顺序排列的规则的列表。

  • PREROUTING链——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)

  • INPUT链——进来的数据包应用此规则链中的策略

  • OUTPUT链——外出的数据包应用此规则链中的策略

  • FORWARD链——转发数据包时应用此规则链中的策略

  • POSTROUTING链——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)

(4)表
表由一组预先定义的链组成。

  • filter表——用于存放所有与防火墙相关操作的默认表。通常用于过滤数据包。

  • nat表——用于 *** 地址转换

  • mangle表——用于处理数据包

  • raw表——用于配置数据包,raw 中的数据包不会被系统跟踪。

(5)链和表的关系及顺序
表由一组预先定义的链组成。

  • PREROUTING: raw -> mangle -> nat

  • INPUT: mangle -> filter

  • FORWARD: mangle -> filter

  • OUTPUT: raw -> mangle -> nat -> filter

  • POSTROUTING: mangle -> nat

(6)表和链的关系
实际使用中是从表作为操作入口:

  • aw 表:PREROUTING,OUTPUT

  • mangle表:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

  • nat 表:PREROUTING,OUTPUT,POSTROUTING

  • filter 表:INPUT,FORWARD,OUTPUT

(7)添加规则

(8)socat
Socat是linux下的一个多功能的 *** 工具,名字来由是socket cat。其功能与netcat类似,可以看做是netcat的加强版。

3.指令速查:

(1)配置端口复用及开关规则

  • 目标主机上创建新转发链

  • 设置复用规则(设置转发规则)

  • 设置开关规则(接受约定字符后规则生效/失效)

  • 约定字符尽量复杂

(2) 使用socat连接
使用socat发送约定口令至目标主机打开端口复用开关

使用完毕后,发送约定关闭口令至目标主机目标端口关闭端口复用

4.实验:

  • Target:Ubuntu 16.04 x64

  • IP:192.168.245.135

  • 开启8000端口的web服务

  • 开启22端口
    image.png

配置端口复用:
image.png

  • Attacker:Kali 2020 x64

  • IP:192.168.245.130
    使用socat连接:
    image.png

此时ssh可以通过8000访问,但是8000端口的正常web业务受到影响:

image.png

使用socat断开连接,ssh无法再连接,但是8000端口回复正常:

image.png

5.参考链接:

  • https://www.jianshu.com/p/12a24a95fe2c

  • https://www.freebuf.com/articles/network/137683.html

二、 Windows端口复用

1.概述:

使用HTTP.sys中的Net.tcp Port Sharing服务,配合WinRM实现端口复用。

  • 优点:HTTP.sys为windows原生机制,WinRM为windows自带功能,动作较小,不易触发主动防御。

  • 需要管理员权限。

2. 原理:

(1)HTTP.sys
HTTP.sys是Microsoft Windows处理HTTP请求的内核驱动程序。

  • 为了优化IIS服务器性能

  • 从IIS6.0引入(即Windows Server 2003及以上版本)

  • IIS服务进程依赖HTTP.sys

HTTP.sys监听HTTP流量,然后根据URL注册的情况去分发,以实现多个进程在同一个端口监听HTTP流量。微软公开了HTTP Server API库,Httpcfg、Netsh等都是基于它的。

image.png

整个过程描述如下:
Step 1.注册:IIS或其他应用使用HTTP Server API时,需要先在HTTP.sys上面注册url prefix,以监听请求路径。
Step 2.路由:HTTP.sys获取到request请求,并分发这个请求给注册当前url对应的应用。

(2)Net.tcp Port Sharing

Net.tcp Port Sharing服务是WCF(Windows Communication Foundation,微软的一个框架)中的一个新系统组件,这个服务会开启Net.tcp端口共享功能以达到在用户的不同进程之间实现端口共享。这个机制的最终是在HTTP.sys中实现的。目前将许多不同HTTP应用程序的流量复用到单个TCP端口上的HTTP.sys模型已经成为windows平台上的标准配置。
在以前的web应用中,一个web应用绑定一个端口,若有其他应用则需要绑定其他的端口才能实现监听。如下图所示,Web Application 1绑定了80端口后,Web Application 2再去绑定80端口会出错。

image.png

现在使用微软提供的NET.tcp Port Sharing服务,只要遵循相关的开发接口规则,就可以实现不同的应用共享相同的web服务器端口。如下图中Web Application 1和Web Application 2同时绑定在80端口。
image.png

(3)WinRM
WinRM全称是Windows Remote Management,是微软服务器硬件管理功能的一部分,能够对本地或远程的服务器进行管理。WinRM服务能够让管理员远程登录windows操作系统,获得一个类似telnet的交互式命令行shell,而底层通讯协议使用的正是HTTP。
事实上,WinRM已经在HTTP.sys上注册了名为w *** an的url前缀,默认监听端口5985。因此,在安装了IIS的边界windows服务器上,开启WinRM服务后修改默认listener端口为80或新增一个80端口的listener即可实现端口复用,可以直接通过80端口登录windows服务器。

3.指令速查:

查询当前注册url前缀:

(1)开启winrm服务
Windows 2012及以上:winrm默认启动并监听了5985端口。
Windows 2008:需要手动启动winrm。

(2) 增加80端口复用

(3) 更改winrm为80端口

  • 默认5985端口开启,不需要更改端口。

  • 默认5985端口不开启,则更改winrm为80端口,否则会因端口改变而引起管理员关注。

(4) 攻击机也需要启动winrm并设置信任连接

(5) 连接使用winrs命令接口连接远程winrm服务执行命令,并返回结果
winrs,Windows Remote Shell,windows远程shell,是winrm的一个组件。

4.实验:

  • Target:Windows Server 2008 R2 x64

  • IP:192.168.245.133
    开启IIS服务。

image.png先看一下当前注册的url前缀:

image.png启动winrm:

image.png

再看一下注册的url前缀,发现winrm已注册:
image.png看一下端口情况:
image.png

增加80端口复用:
image.png

更改winrm为80端口:

image.png

再看一下端口情况,发现5985端口已关闭:
image.png

  • Attacker:Windows Server 2008 R2 x64

  • IP:192.168.245.134
    启动winrm并设置信任主机地址:

image.png

使用winrs远程执行命令:
image.png

执行cmd命令可获取交互式shell:
image.png

此时IIS的正常服务并未受到影响:
image.png

5.提升权限(未亲测):

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

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

6.Hash登录(未亲测):

系统自带的winrs命令登录时需要使用明文账号密码,那很多场景下尤其是windows 2012以后,经常只能抓取到本地用户的hash,无法轻易获得明文密码。因此需要实现一款支持使用NTLM hash登录的客户端,使用python来实现不难。
image.png

7.参考链接::

  • https://www.freebuf.com/articles/web/142628.html

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

MS08067实验室官网:www.ms08067.com

公众号:" Ms08067安全实验室"

Ms08067安全实验室目前开放知识星球: WEB安全攻防,内网安全攻防,Python安全攻防,KALI Linux安全攻防,二进制逆向入门

最后期待各位小伙伴的加入!

相关文章

黑客翻译成英语-怎样找靠谱的黑客给我找回微信-怎样系统学习 Web 前端技术?

怎样找靠谱的黑客给我找回微信-怎样系统学习 Web 前端技术? 本文主要是朝向新手客户的,假如你一些基本,自然也提议你看一下,尤其是最后一个主题风格,也许你可以获得一些启迪。文中的见解,实属本人自高...

欧洲杯淘汰赛(欧洲杯淘汰赛赛程表)

2020年欧洲足球锦标赛推迟到2021年夏天举行,但仍然命名为“2020欧洲杯”。2020年3月12日,根据欧足联官网消息,鉴于。 可以下载企鹅体育,虎扑体育,猎趣TV等足球app了解到2020年的具...

怎么找手机黑客(黑客手机号码定位教程)

有全套教程。需要付费 黑客真的能根据手机号码找到您的位置,无论是否关机,只要你的手机卡在你的手机里,就能找到你。“黑客”也可以指:1.泛指擅长IT技术的人群、计算机科学。 可以。因为每部手机都有G...

罗丽丝内衣加盟费用是多少,罗丽丝内衣属于什

罗丽丝内衣加盟费用是多少,罗丽丝内衣属于什

近期,上海市工商局集中组织力量对普陀、浦东、闵行、杨浦、黄浦5个区域13家商场、超市、专卖店销售的52个品牌80个批次女式内衣(含塑身衣)进行了市场检查和质量抽检,经检测,有23个批次不合格,不合...

越南全陪伴游-【尤访琴】

“越南全陪伴游-【尤访琴】” 3:通过生活中的朋友,让他推荐可靠的经纪人,添加并且联系。对于每一个上海高端模特的私人定制,寻找起来也是很困难的,因为很多的伤害模特,它们的发展是根据一些经纪人或者是...

求大佬,哪里有免费黑客人员联系方式

  白帽子出于好意挖掘漏洞并通知相关企业;而世纪佳缘出于用户隐私安全考虑,将白帽子移交公安部门。两件单独出现就会是一件极好的事,一碰在一起,就一引起了轩然大波。谁对谁错,现在很难说清,或许在多年以后,...