渗透Tips之 不同中间件端口复用代理解决方案

admin 2024年10月8日11:22:11评论21 views字数 2026阅读6分45秒阅读模式
前言

frp 反弹确实很爽,但是很多时候这 B 服务器不出网,或者说动不动就被流量设备检测到了,这就比较难受了。

linux 下可以使用 ipt­a­bles 做端口复用,win­dows 下就没啥办法了。

除非你花一大笔钱找微软买个签名把驱动给签了然后做端口复用,这个土豪的方法我们先不提。

还有一个方法就是使用 Neo 这种类型的,挺好用的,但是有没有更快一点的方案?

比如:web­socket?直接长连接?直接做到原生 tcp 的运行效率?

开干!
iptables 端口复用

这里就随口提一下 ipt­a­bles 端口复用

如果我们直接请求目标服务器的任意端口,只要能在 netstat -anpt 里面看到我们的请求 IP,我们就能根据这个 IP 用 ipt­a­bles 做一个端口转发

iptables -t nat -A PREROUTING -p tcp -s 我们的IP --dport 目标WEB端口 -j REDIRECT --to-port 转发端口
GOST端口复用工具

原本想动手写的,但是想了想还是不能乱造轮子,于是乎 github 稍微搜索了一番,愉快的找到了这个工具
项目地址:https://github.com/ginuerzh/gost
我们目标也很简单,就是监听一个 web­socket 的代理,然后使用各种中间件中转,最后用本地代理,设置级联就行
项目里的功能正好符合我们的需要,我们只需要在远程服务器上,运行
gost  -L ws://:7000

然后在中间件各种配置,最后在我们本地使用

gost -L=:8080 -F=ws://远程web地址:远程web端口

就可以使用 web 端口复用走Web应用的长连接的web­socket代理了

Nginx中间件配置

ng­inx 的配置挺简单的,一个端口转发就行
location /ws {        proxy_redirect off;        proxy_pass http://ws监听ip:本地ws监听代理;        proxy_http_version 1.1;        proxy_set_header Upgrade $http_upgrade;        proxy_set_header Connection "upgrade";        proxy_set_header Host $http_host;        proxy_read_timeout 300s;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    }
Ng­inx 有个好,就是有热重载功能,直接一句 nginx -s reload 就行,至少不怕炸原本的业务
重新加载
nginx -s reload
Apache

Apache 修改的就有点多了, 得给配置文件添加模块引用。然而唯一有点安慰的就是,这玩意的模块是自带的。

先引用模块,有两个方案,直接用命令

sudo a2enmod proxy proxy_http proxy_ajp proxy_balancer mod_proxy_wstunnel.so
或者直接在你的 conf 里面添加,把上面这些模块都加进去
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so # 填写apache模块的绝对路径....
然后写入代码
ProxyPass /ws ws://127.0.0.1:7000/ws
‍‍最后重新加载
service apache2 reload
IIS

win­dows 就不大一样了,可以图形化点点点,应该也是可以使用cmd配置,但是命令行操作我不会。

应该可以用 pow­er­shell 解决,但是 win­dows 上其实非常滴麻烦,因为要手动安装两个模块,并不自带所以推荐还是 Neo 或者 IIS 插件后门,除非你觉得管理员水平实在太差。

首先是启用 Web­socket,打开控制面板,启用或删除 win­dows 功能。

渗透Tips之 不同中间件端口复用代理解决方案
选上Websocket
渗透Tips之 不同中间件端口复用代理解决方案

选上Websocket接下来就是安装 ARR 和 URL REWRITE

安装 ARR:application-request-routing

安装 URL REWRITE:url-rewrite

然后配置 ARR

渗透Tips之 不同中间件端口复用代理解决方案

渗透Tips之 不同中间件端口复用代理解决方案

渗透Tips之 不同中间件端口复用代理解决方案

点击启用就行

然后配置一个 URL 转发,找到你的项目吃,点击 URL 重写

渗透Tips之 不同中间件端口复用代理解决方案

也不需要什么通配符,直接完全匹配 GOST 的 ws 就行

渗透Tips之 不同中间件端口复用代理解决方案

其他中间件

原理基本就是配一个 web­socket 转发,大差不差

进阶

上面的 ws 全部应该都可以改成 MWS,我看 gost 是支持多路复用的,虽然不知道实际提升有多大,但是听起来很牛逼,那就当它很牛逼就好了

还有一个就是 ws 的通讯协议没加密,可以考虑升级 WSS,但是 WSS 配置又会遇到很多很麻烦的东西。最典型的就是证书啊证书啊证书啊。

还有一个就是 gost 的 ws 默认监听路由也得改一改,流量特征太大了。这些后续都要自己处理一下,避免实战中被发现。

 

原文始发于微信公众号(SecretTeam安全团队):渗透Tips之 不同中间件端口复用代理解决方案

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月8日11:22:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   渗透Tips之 不同中间件端口复用代理解决方案https://cn-sec.com/archives/3239798.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息