内网穿透工具frp学习

前言

因为自己在内网,但是目标站在外网,这时候可以通过内网穿透工具,将接收到的请求转发到内网,实现在内网的msf可以控制外网的靶机。

也看了一些Ngrok,花生壳的,发现Ngrok.cc这个看文章说有的时候代理太慢,但是自己配置Ngrok太过复杂,看到frp,发现操作非常的简单,这里来搭建学习

frp介绍

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

搭建

服务端

frp程序地址:

https://github.com/fatedier/frp/releases

我在我的cent7的vps上搭建

服务端配置

wget https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_amd64.tar
tar -zxvf frp_0.32.1_linux_amd64.tar.gz
cd frp_0.32.1_linux_amd64
rm -rf frpc*

这里有区分服务端和客户端,frpc就是客户端,frps就是服务端

frps.ini配置

[common]
bind_port = 7100
dashboard_port = 7500
dashboard_user = xx
dashboard_pwd = xx

其中dashboard是可视化的观察页面

运行

./frps -c frps.ini

客户端

在kali上搭建

wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.32.1_linux_amd64.tar.gz
tar -zxvf frp_0.32.1_linux_amd64.tar.gz
cd frp_0.32.1_linux_amd64
rm -rf frps*

frpc.ini配置客户端,将本地的80端口映射到外网的7200端口上

[common]
server_addr = xxx
server_port = 7100

[web]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port=7200

启动客户端

./frpc -c frpc.ini

访问

这里访问公网IP的7200端口,目录下有默认的index.html,并且我在网站目录下放置了a.php

 

访问成功,并且速度非常的快。

如果看以前的教程的话,可以发现是没有systemd目录的,这个目录可以将frp配置成服务启动。

设置如下:

vim /usr/lib/systemd/system/frp.service

[Unit]
Description=frp service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
# 服务端
ExecStart=/home/ubuntu/frp/frps -c /home/ubuntu/frp/frps.ini
# 客户端
# ExecStart=/root/frp/frpc -c /root/frp/frpc.ini

[Install]
WantedBy=multi-user.target

只需要修改一个路径ExecStart即可。配置完后,就可以用如下命令来控制frp,非常的方便。

systemctl daemon-reload
service frp start
service frp restart
service frp stop

dashboard可视化就可以用来监控流量协议等

反向socks代理

上面是之前写的了,上文描述的是在内网使用msf的时候可以用到frp的端口映射,但是frp也可以直接用来做反向socks代理,在从外网渗透到内网,在跳板机上可以用到,相比于msf的路由转发、cs的socks代理更稳定点

服务端配置:

[common]
bind_port = 7100 #连接端口
dashboard_port = 7500 #图形化管理端口
dashboard_user = test
dashboard_pwd = test61
token = yunyingfrp #客户端连接密码

./frps -c frps.ini

客户端配置:

[common]
server_addr = x.x.x.x
server_port = 7100
token = yunyingfrp

[socks5_proxy]
type = tcp
remote_port =7777
plugin = socks5
#use_encryption = true         #是否加密
#use_compression = true

./frpc -c frpc.ini

socks5代理:

这时候就可以将vps的7777端口作为socks5代理服务器地址。

当连接vps 7777后通过端口转发映射传输数据到内网开启frp的主机上,相当于一个内网主机与vps间开了一个隧道,使我们可以通过这套反向代理将数据直达内网,使我们可以访问到内网

浏览器设置代理socks5 vps_ip 7777

访问内网web地址

当然这时候也可以通过proxifier设置socks5代理服务器将一些工具代理进去扫描探测等。由于设置了TCP,所以只支持tcp传输方式

拓展

unknow的无文件落地Frp

 

推荐文章:

https://mp.weixin.qq.com/s/cTOPmZ_lfEpkbMTblO9X6Q

https://mp.weixin.qq.com/s/ai8IFbSlr7gkLRj8xNaESg

埋坑:

NPS的使用

无文件落地frp

 

posted @ 2020-04-17 19:11  yunying  阅读(3056)  评论(0编辑  收藏  举报