内网代理转发工具汇总
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
概念区分端口转发端口转发就是将一个端口,这个端口可以本机的端口也可以是本机可以访问到的任意主机的端口,转发到任意一台可以访问到的IP上,通常这个IP是公网IP。 适用端口转发的网络环境有以下几种:
端口映射映射端口,就是将一个内网端口映射到公网上的某个端口,假设我自己的电脑是在内网中,没有公网IP,但是我想提供一个端口供其他人使用,这就是端口映射。
代理代理(Proxy),也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。 代理一般可以分为http代理、socks代理、ftp代理、telent代理、ssl代理等 正向代理和反向代理的区别 正向代理中,proxy 和 client 同属一个 LAN,对 server 透明; 反向代理中,proxy 和 server 同属一个 LAN,对 client 透明。 一个代理的是客户端,一个代理的是服务器,实际上proxy在两种代理中做的事都是代为收发请求和响应,不过从结构上来看正好左右互换了下,所以把前者那种代理方式叫做正向代理,后者叫做反向代理。 隧道隧道是远距离的服务器和客户端之间的中转站。隧道可按要求建立起一条与其他服务器的通信线路,届时使用 SSL 等加密手段进行通信。隧道的目的是确保客户端能与服务器进行安全的通信。隧道本身不会去解析 HTTP 请求。也就是说,请求保持原样中转给之后的服务器。隧道会在通信双方断开连接时结束。
端口转发工具概念讲解这里以lcx为例子做一个说明,lcx.exe 是一个基于 socket 套接字实现的端口转发工具,它是从 linux 下的htran 工具移植到windows平台的。 socket端口转发一条正常的socket隧道必具备两端,一侧为服务端,它会监听一个端口等待客户端连接;另一侧为客户端,通过传入服务端的ip和端口,才能主动连接到服务器。 而端口转发工具(lcx.exe/htran)的工作原理其实是将两条 socket 隧道对接起来,打造一条可“异步双向通讯”的转接隧道。由于合法的socket隧道有两种接口分别对应服务端和客户端,根据数学中的排列组合可计算出端口转发供具有4种工作状态,它们是:
又由于端口转发为“异步双向通讯”隧道,隧道转接不分先后,所以状态2和状态3 是相同的,合并之后,便分别对应了lcx的三种工作模式,如下所示:
于是便可理解lcx工具的三种命令参数的格式为何是以下的样子了:
socks代理Socks 代理从名字中的“代理”二字就可以了解它的功能核心:那就是帮他人完成socket访问网络。
有的同学大概知道浏览器(IE/Chrome/FireFox等)有设置socks代理的配置项,可用来访问网络的能力。当我们通过代理服务器访问一个网址时,socks服务器其实是起到了一个中间人的身份,他分别与两方(浏览器/被访问的网站)通讯然后将获取到的结果告知另一方。在使用代理服务的过程中我们会发现,只要配置好socks代理后,就不再需要指定被访问目标,直接在浏览器的地址栏输入地址就能访问任意网站。这是由于socks代理中有一个交互协议,当我们准备访问一个网站并敲击回车时,浏览器会先发送一个被访问目标的基本信息(URL和服务端口)给socks服务端,socks服务端解析了这个信息后,会代替浏览器去访问目标网站,并将访问结果回复给浏览器端。这便是socks代理的工作原理了。通过这段对socks代理的描述,可知socks代理其实可理解为一个增强版的 lcx -tran 它在服务端监听一个服务端口(ConnectPort),当有新的连接请求时会从socks协议中解析出访问目标的URL(TransmitHost)的目标端口(TransmitPort),再开始执行lcx -tran 的具体功能。 两者的异同1.socket端口转发无需通讯协议支持,而socks代理需要socks协议支持。2.socket端口转发有三种工作方式,而socks代理仅有一种工作方式。3.如果说socks是帮他人访问网络(一对多),那么端口转发就是帮他人访问主机的某个端口(一对一)。 端口转发常用工具msf反弹木马
#转发目标主机的3389远程桌面服务端口到本地的8888 lcx
#根据前文内容可以判断该命令是监听vps的9999发端口,将其转发到3389端口。 portmap./portmap -m 2 -p1 3389 -h2 x.x.x.x -p2 9999
ssh端口转发SSH 提供了一个非常有意思的功能,就是端口转发,它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。使用可以参考https://www.cnblogs.com/keerya/p/7612715.html#_label1 (1) 本地端口转发(正向连接) #ssh -L [local_bind_addr:]local_port:remote:remote_port middle_host (2) 远程端口转发(反向连接) #ssh -R [bind_addr:]remote1_port:host:port remote1
(3) 动态转发 #ssh -D [bind_addr:]port remote
iptables 端口转发CentOS 7.0 以下使用的是iptables,可以通过iptables实现数据包的转发 (1) 开启数据转发功能 vi /etc/sysctl.conf (2)将本地的端口转发到本机端口 iptables -t nat -A PREROUTING -p tcp --dport 2222 -j REDIRECT --to-port 22 (3)将本机的端口转发到其他机器 iptables -t nat -A PREROUTING -d 192.168.172.130 -p tcp --dport 8000 -j DNAT --to-destination 192.168.172.131:80 firewall 端口转发CentOS 7.0以上使用的是firewall,通过命令行配置实现端口转发。 (1) 开启伪装IP firewall-cmd --permanent --add-masquerade (2) 配置端口转发,将到达本机的12345端口的访问转发到另一台服务器的22端口。 firewall-cmd --permanent --add-forward-port=port=12345:proto=tcp:toaddr=192.168.172.131:toport=22 (3) 重新载入,使其失效 firewall-cmd --reload socks代理工具基于web服务的socks5工具基于web服务的socks5工具的优点是,在内网服务器不通外网的情况下也能正常使用。例如: 资产组里有2台机器:主机A、主机B。其中主机A上运行了Web服务,且IP或者端口映射到公网,可以被外部人员访问,主机B是在外网访问不到的。攻击者通过漏洞在主机A上传了Webshell,但同时又出于某些限制并未能得到主机A的主机权限也无法反弹shell,那么他这个时候,也是无法通过常规方法反弹shell或者直接登录主机A从而访问到主机B的。 此时基于web服务的socks5隧道就在这个时候起了作用,攻击者已经有了主机A的webshell权限(即可以在web服务器中上传文件),而主机A可以和主机B通信。那么在主机A上安装相应工具,使得攻击者发出的请求以及目标机器的响应经过A的http转发,达到攻击者可以和主机B进行通信的效果。
常用的工具有:reGeorg,reDuh,Tunna和Proxifier。 reGeorgreGeorg是reDuh的升级版,主要是把内网服务器的端口通过http/https隧道转发到本机,形成一个回路。用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部开放端口。它利用webshell建立一个socks代理进行内网穿透,服务器必须支持aspx、php或jsp这些web程序中的一种。 下载地址:https://github.com/sensepost/reGeorg 首先选择对应脚本的tunnel上传到服务器 然后访问上传文件,显示如下则表示成功
在reGeorg文件夹下执行reGeorgSocksProxy.py,-p为指定隧道的端口,-u为刚刚上传的tunnel文件地址。 python reGeorgSocksProxy.py -p 8888 -u http://x.x.x.x/tunnel.php 打开Proxifier,更改为脚本指定的端口
本地电脑成功通过socks5带进了目标主机的内网 Tunna下载地址:https://github.com/SECFORCE/Tunna Tunna和reduh原理一样..使用方法:
其它功能 #socks代理 能够进行多层代理的工具Earthworm(又称ew)该工具能够以“正向”、“反向”、“多级级联”等方式打通一条网络隧道,直达网络深处。 使用教程:http://rootkiter.com/EarthWorm/ 使用条件:目标主机通外网,拥有自己的公网ip 选择对应主机操作系统的执行文件。 首先在公网vps上执行: ./ew_for_linux64 -s rcsocks -l 10000 -e 11000 然后在目标主机中执行: ew_for_Win.exe -s rssocks -d 1.1.1.1 -e 11000 socks5隧道建立成功,成功把自己的主机带进目标内网。 使用Proxifier,配置ip和连接端口。 TermiteTermite 是EW(EarthWorm)的最新版,主要特性: 多平台支持、跳板机互联、正反向级联、小巧无依赖、内置Shell令主机管理更方便。 官方网站: http://rootkiter.com/Termite/ 项目地址:https://github.com/rootkiter/Termite ew 和 termite已经不再进行维护了,下载方式如下 git clone https://github.com/rootkiter/Binary-files.git 使用方式 目标在公网 #目标A: 目标在内网(能出网) #在vps运行: 目标B在内网(不出网,通出网机器A) agent正向连接 #a.在vps运行: agent间反向连接 #a.在vps运行: venomVenom是一款为渗透测试人员设计的使用Go开发的多级代理工具。Venom可将多个节点进行连接,然后以节点为跳板,构建多级代理。渗透测试人员可以使用Venom轻松地将网络流量代理到多层内网,并轻松地管理代理节点。 下载地址:https://github.com/Dliv3/Venom 安装 go get -u github.com/Dliv3/Venom/... admin/agent命令行参数,admin节点和agent节点均可监听连接也可发起连接。 admin监听端口,agent发起连接: ./admin_macos_x64 -lport 9999 ./agent_linux_x64 -rhost 192.168.0.103 -rport 9999 agent监听端口,admin发起连接: ./agent_linux_x64 -lport 8888 ./admin_macos_x64 -rhost 192.168.204.139 -rport 8888 fusohttps://github.com/editso/fuso 这是一款用于内网穿透 端口转发的神器,帮助运维 开发 快速部署与接入内网 同时支持CobaltStrike 一键转发等功能。 多功能型的代理工具frp通过SSH访问内网机器服务端配置 [common] ./frps -c ./frps.ini # 临时 客户端配置 [common]
启动 ./frpc -c ./frpc.ini # 临时 使用 ssh -oPort=6000 test@x.x.x.x frp 会将请求 x.x.x.x:6000 的流量转发到内网机器的 22 端口 通过HTTP协议访问内网WEB服务HTTP 类型的代理相比于 TCP 类型,不仅在服务端只需要监听一个额外的端口 服务端配置,修改 frps.ini 文件,设置监听 HTTP 请求端口为 8080: [common] 客户端配置 修改 frpc.ini 文件,假设 frps 所在的服务器的 IP 为 x.x.x.x, [common] 使用
通过socks5搭建隧道服务端配置,修改frps.ini配置文件 [common]
客户端配置,修改frpc.ini配置文件 [common]
使用 然后可以本机设置代理: socks5 xxx.xxx.xxx.xxx(VPS) 10000,即可访问内网系统 可以利用命令如下命令来测试sockets代理搭建的是否成功 curl --socks5 x.x.x.x:10000 http://www.baidu.com 另外可以在SwitchyOmega中配置sockets5代理可以实现2.2的功能
iox具有流量加密、友好的命令行参数、逻辑优化、UDP流量转发等优点 下载地址:https://github.com/EddieIvan01/iox 使用教程:https://www.freebuf.com/articles/network/244567.html 两种工作模式 fwd模式:同时监听 0.0.0.0:8888 和0.0.0.0:9999,将两个连接间的流量进行转发。 /iox fwd -l 8888 -l 9999 监听0.0.0.0:8888,把流量转发到1.1.1.1:9999。 ./iox fwd -l 8888 -r 1.1.1.1:9999 连接1.1.1.1:8888和1.1.1.1:9999, 在两个连接间转发流量。 ./iox fwd -r 1.1.1.1:8888 -r 1.1.1.1:9999 proxy模式:在本地 0.0.0.0:1080启动Socks5服务 ./iox proxy -l 1080 在目标主机上开启Socks5服务,将通信流量转发至公网VPS,VPS上将流量从0.0.0.0:9999转发到0.0.0.0:1080。此时,你必须将两条命令成对使用,因为它内部包含了一个简单的协议来控制回连。 ./iox proxy -r 1.1.1.1:9999 内网穿透工具npsnps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。 下载地址:https://github.com/ehang-io/nps/releases 参考文档:https://ehang-io.github.io/nps/#/?id=nps ngrokgithub地址:https://github.com/inconshreveable/ngrok 官网:https://ngrok.com/ 官方文档:https://ngrok.com/docs 阅读原文:原文链接 该文章在 2025/10/9 11:40:29 编辑过 |
关键字查询
相关文章
正在查询... |