某60内网渗透之frp实战指南2

内网渗透


frp实战指南2

实验目的

让学员通过该系统的练习主要掌握:

frp工具的常见用法

实验环境

操作机:Ubuntu(PC1),Ubuntu(PC2), Ubuntu(PC3)

实验工具

frp

实验原理

frp是一款跨平台的代理工具,分为客户端和服务端两个部分。其将需要暴露的内网主机配置成客户端,通过和服务端的连接提供端口的映射和流量的转发。在这次的实验中,我们就实战frp的服务端和客户端的配置过程,并尝试使用frp建立通道,转发连接数据。

在实验机上我们准备了frp的两种版本,服务端和客户端:
frpc :c即client,是frp的客户端。客户端是我们希望借助服务端暴露给外接访问的主机。
frps:s即server,是frp的服务端。服务端是中间的跳板机,客户端的服务借由服务端转发到外界。

frp通过读取配置文件来管理端口映射的参数和过程。客户端,我们需要明确的参数有以下几个方面:
common字段:用于定义客户端需要连接到的服务端的IP和端口。
具体服务字段:用来规定希望映射出去的本地端口(local_port)和映射到外网的相应外部端口(remote_port)。

在服务端,我们需要明确的参数有以下几个方面:bind_port字段:用来规定提供转发服务的端口。

实验内容

1、确认三台PC的IP并记录;
2、配置frp服务端,开启12345端口,监听客户端的连接请求;
3、配置frp客户端,将pc1的ssh服务通过frp服务端以socks5代理方式映射到8080端口;
4、frp服务端利用python开启一个web服务器;
5、PC3通过代理访问web站点;
在这里插入图片描述

frp实战指南2 实验步骤

(1)确定基本信息。

我们先在三台主机中记录清楚各台主机的IP,以确定后续使用的参数。

首先先在操作机PC3的控制台中输入ifconfig,记录下PC3的ip地址:
在这里插入图片描述

同样的方法,我们分别在PC1,PC2的控制台中输入ifconfig,记录下PC1和PC2的ip地址:

PC1:

在这里插入图片描述

PC2:

在这里插入图片描述

接下来请牢记,我们要使用PC3(192.168.246.20),借助PC1(192.168.246.18)来访问PC2(192.168.246.17)。

(2)查看frp工具的基本用法

在实验机上我们准备了frp的两种版本,服务端和客户端:

frpc :c即client,是frp的客户端。客户端是我们希望借助服务端暴露给外接访问的主机。
frps:s即server,是frp的服务端。服务端是中间的跳板机,客户端的服务借由服务端转发到外界。
frp通过读取配置文件来管理端口映射的参数和过程。

在客户端,我们需要明确的参数有以下几个方面:

common字段:用于定义客户端需要连接到的服务端的IP和端口。
具体服务字段:用来规定希望映射出去的本地端口(local_port)和映射到外网的相应外部端口(remote_port)。
在服务端,我们需要明确的参数有以下几个方面:

bind_port字段:用来规定提供转发服务的端口。
在这次的实验中,我们以PC3为攻击者,以PC2为frp服务端,PC1为frp的客户端。因此,我们的实验目的就是利用frp建立一个这样的通道:

PC3(操作机) —PC2:remote_port—>PC2(frp服务端)—PC2:common_port—>PC1(frp客户端)

下面我们就来实战配置frp的服务端和客户端。

(3)服务端frp的配置

我们将PC2作为服务端。首先,我们编辑服务端的配置文件/etc/frp/frps.ini,来指定服务端所需要的参数。

我们输入:

sudo vim /etc/frp/frps.ini

在这里插入图片描述

按下i即可打开插入模式,然后我们输入下列文本:

[common]

bind_port=12345

即,在服务端我们开启12345端口,监听客户端的连接请求。

下面,我们要开启frps,即frp的服务端。使用-c参数指定配置文件的位置:

/etc/frp/frps -c /etc/frp/frps.ini

在这里插入图片描述

(4)客户端frp的配置

我们将PC1作为客户端。在这一边,我们需要制定利用服务端暴露出去的本地端口,映射到的远程端口,以及服务端的IP和端口。编辑客户端的配置文件/etc/frp/frpc.ini,输入:

vim /etc/frp/frpc.ini

按下i打开插入模式,然后我们输入下列文本:

[common]
service_addr=192.268.246.17
server_port=12345

[ssh]
type=tcp
remote_port=8080
plugin = socks5

在这里插入图片描述
上面的配置文件可以将PC1的ssh服务通过服务端frp映射到8080端口。我们来详细解读一下:

第一段common字段指定了服务端的IP和端口,而下面的ssh字段则指定了我们希望映射出去的本地服务。
type规定了映射服务的类型(tcp)
remote_port规定了映射出去的服务暴露外部访问的端口,对于上面的配置文件来说,即为23456端口
plugin规定了代理方式
然后,我们启动客户端frp:/etc/frp/frpc -c /etc/frp/frpc.ini

在这里插入图片描述

(5)使用frp服务

通过客户端与服务端的配合,作为操作机的PC3即可以直接透过PC1的转发访问到PC2的web服务。根据上面的配置过程的讲解,我们不难得出,此时,我们需要连接PC1的IP,配合上PC2配置文件中写入的remote_port(8080端口),即可访问到PC2的web服务(22端口)。

首先为了测试,我们在PC2上输入:python -m SimpleHTTPServer 8081

在这里插入图片描述

利用python起一个web服务器即可

然后我们在PC3上先输入:curl 192.168.246.17:8081
在这里插入图片描述

再输入:curl --socks5 192.168.246.17:8080 192.168.246.18:8081

curl命令可以发出网络请求,通过–socks5 选项可以连接到对应的socks5服务器,通过代理访问对应的web站点

发现第一次请求来自于192.168.246.20自身,而第二次请求来自于192.168.246.18(代理服务器)

猜你喜欢

转载自blog.csdn.net/weixin_51387754/article/details/134994979