【内网渗透】端口转发工具篇

需要一台公网服务器

一、nps

简介:

一款轻量级、高性能、功能强大的内网穿透代理服务器
几乎支持所有协议
支持内网http代理、内网socks5代理、p2p等
简洁但功能强大的WEB管理界面
支持服务端、客户端同时控制
扩展功能强大
全平台兼容,一键注册为服务

官网:https://ehang-io.github.io/nps/#/
github:https://github.com/ehang-io/nps/

1、nps服务端

下载相应的版本,我这里是centos7的服务器,下载的是linux版本的
在这里插入图片描述
上传到服务器进行使用tar命令进行解压,tar -zxvf linux_amd64_server.tar.gz

1.1 安装nps(必须要安装,不然在启动的时候会报错)

在解压目录下进行安装使用./nps install 进行安装,如果不行的话,可以chmod命令加执行权限 chmod 777 nps 读写执行权限都加。

1.2 修改配置文件

切换到conf目录下找到nps.conf使用vim打开进行修改
去除http代理把80和443删除掉或者#注释掉,我这里是直接把80和443端口删除的
在这里插入图片描述
修改web界面时候的登录的用户名和密码以及web界面的端口
在这里插入图片描述
修改完保存退出

1.3 启动nps服务端
linux :./nps start 
windows:nps.exe start 

发现没有启动成功可以使用 ./nps stop停止后再次启动
访问服务端ip:web服务端口(默认为8080)
使用用户名和密码登陆(默认admin/123,正式使用一定要更改)
在这里插入图片描述

2、客户端配置

我这里是windows的主机,上传windows的客户端nps
在这里插入图片描述

1.1 第一种方式连接
1.1.1 创建客户端

在这里插入图片描述
在这里插入图片描述
在客户端里输入生成的链接就成功了,windows是需要把./nps修改为nps.exe
在这里插入图片描述

1.2 第二种方式连接
1.2.1 修改客户端配置文件

服务器的地址,服务端配置的web界面的账号密码
在这里插入图片描述
本地要转发出去的端口,服务段接受的端口
在这里插入图片描述
完成了一个tcp的端口连接
直接在cmd里输入nps.exe 就进行3389端口转发了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、FRP

rp是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议

作用

1、利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
2、对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
3、利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。

github地址:https://github.com/fatedier/frp/
下载对应的版本
环境:
一台内网windows虚拟机
centos7有公网服务器
在这里插入图片描述

配置服务端的frp

上传到公网服务器,通过tar命令进行解压
我们只保留frps和frps.ini两个文件,s表示的是server,即服务端
在这里插入图片描述
打开frps.ini,可以看到默认的只有一条配置:

[common]
bind_port = 7000

即绑定了7000端口,这个端口是用来跟内网的机器进行通讯的。我们不做改变,直接启动frp服务端,开始监听。
启动命令

./frps -c ./frps.ini

在这里插入图片描述

配置客户端的frp

解压后同样得到一堆文件,我们只保留frpc.exe和frpc.ini,c表示的是client,即客户端
打开frpc.ini,可以看到默认的配置内容如下

[common]
server_addr = 127.0.0.1
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
server_addr表示服务端的ip地址,比如我们的服务端ip是x.x.x.x

server_port表示的服务器监听的端口,即frp服务端跟客户端通讯用的端口,我们之前配置服务端的时候没有修改,用的就是默认的7000

[ssh]这个节点名是可以随便修改的,然后下面的定义的就是客户端的信息,比如通讯协议,这里是tcp,然后是本地ip,直接用127.0.0.1就可以了。

再接着是本地监听的端口,比如我们这里演示的是穿透3389,那么这里就把22改成3389,然后是远程端口,即公网服务器哪个端口会指向我们本地的3389,假如我这里不改,使用默认的6000

在这里插入图片描述
然后我们启动frp客户端程序(需要在cmd下运行):frpc.exe -c frpc.ini
在这里插入图片描述
我们在frp服务器上也可以看到有新的客户端连接上来了
在这里插入图片描述
接下来我们打开mstsc远程桌面,输入我们公网服务器的ip加:6000,然后连接,此时连接就会自动指向我们内网的客户端机器。这样我们就实现了穿透内网连接远程桌面。

在这里插入图片描述

三、Ngrok

在这里插入图片描述

官网:https://www.ngrok.cc/
注册账号,隧道管理,可开通一个免费的隧道。
在这里插入图片描述
编辑可以修改转发的端口
在这里插入图片描述
在这里插入图片描述

购买之后可以下载客户端
在这里插入图片描述
直接启动,输入隧道id进行连接,输入隧道id进行连接
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
可以看到已经连接成功
在这里插入图片描述
成功连接
在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt内网穿透端口转发是一种将内网中的局域网设备通过穿透技术映射到公网上,实现公网访问的方法。Qt是一种跨平台的C++应用程序开发框架,可以用于编写各种类型的应用程序,包括网络通讯相关的应用。 内网穿透端口转发的实现原理是通过在 NAT 中间人攻击方式,将公网的请求转发到内网中指定设备的指定端口上,从而实现对内网设备的访问。Qt 提供了一些网络编程接口和类,可以用于实现内网穿透和端口转发功能。 在 Qt 中实现内网穿透端口转发,可以使用 Qt 的网络编程库进行开发。首先需要创建一个 TCP 服务端,监听公网的请求。当收到请求后,根据请求的目标设备和目标端口,在内网中找到对应的设备,并将请求转发到该设备的指定端口上。 具体步骤如下: 1. 创建一个 QTcpServer 对象,调用其 listen 方法,监听指定的公网端口。 2. 当收到公网请求时,QTcpServer 会触发一个新连接的信号。 3. 在新连接的槽函数中,获取请求的目标设备和目标端口。 4. 在内网中找到对应的设备和端口,创建一个 QTcpSocket 对象,连接到该设备的指定端口上。 5. 将公网请求的数据通过 QTcpSocket 的 write 方法发送到内网设备。 6. 同时监听 QTcpSocket 的 readyRead 信号,当内网设备返回数据时,通过 QTcpServer 的 write 方法将数据返回给公网。 通过以上步骤,就可以实现 Qt 内网穿透端口转发的功能。需要注意的是,为了确保内网设备的安全性,应当对公网请求进行必要的身份验证和安全控制。同时,在代码实现中,还需要处理异常情况和错误处理,确保端口转发的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值