FRP 反向代理渗透
前言
之前在一个项目中遇到了一个渗透环境,只能使用工具代理远程访问内网,于是便接触了FRP这款内网穿透工具,通过内网反向代理进行远程渗透测试。这篇文章就简单介绍如何实现FRP反向代理渗透,作为个人笔记方便以后查阅,也分享给大家提供参考。
0x01 工具简介
FRP 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。通过在具有公网 IP 的节点上部署 FRP 服务端,可以轻松地将内网服务穿透到公网。
0x02 模拟场景
使用一台工作电脑(处于外网),对一个处于内网的系统进行渗透测试。但是这两个处于不互通的网段,唯一的共同点就是都可以访问互联网。
如果直接将内网系统绑定到服务器的端口上进行访问,那么无疑是将内网系统暴露于公网之上,是非常不安全的。
为了安全性考虑,可以通过一个加密访问的代理服务,实现两个网段的互通。使用一台在公网上的ip服务器,对这两个不互通的网段进行流量中转,使它们能够进行间接性互通访问。
- 云服务器(对两个不互通的网段流量进行中转)
- 内网主机(存在web系统,不能被外网访问)
- 外网主机(开启中转代理,访问内网系统)
0x03 服务器操作
首先,需要自己准备一台有公网IP的服务器,然后将FRP下载到服务器上,进入到FRP文件夹下,修改配置文件 frps.ini 如下:
[common]
bind_addr = 0.0.0.0
bind_port = 7100 # 绑定服务器端口
token = 123456789 # 自定义的配对密钥
复制
启动服务端FRP命令
./frps -c ./frps.ini
复制

注意:服务器上相对应的端口7100要对外开放,如果服务器上安装了宝塔,也必须要在宝塔上设置下开放端口。
0x04 客户端操作
在内网任意一台主机上也需要下载FRP文件,进入FRP文件夹下,修改配置文件 frpc.ini 如下:
[common]
server_addr = x.x.x.x # 服务器的IP
server_port = 7100 # 服务器的绑定端口
token = 123456789 # 服务器的配对密钥
[http_proxy]
type = tcp
remote_port = 9876 # 服务器的另一个端口
plugin = http_proxy # 设置为http代理
复制
启动客户端FRP命令
.\frpc.exe -c ./frpc.ini
复制

注意:不是内网主机,是服务器上相对应的端口9876也要对外开放。如果服务器上安装了宝塔,也必须要在宝塔上设置下开放端口。
0x05 代理访问内网
当服务器与内网主机都开启FRP后,在工作电脑(处于外网)的浏览器中设置服务器的frp_http代理

注意:浏览器设置代理ip为服务器的公网ip,以及端口为9876
然后就可以直接远程访问内网的web系统了

0x06 Burp 代理抓包
做渗透测试的话,抓取数据包是必不可少的步骤,接下来介绍如何用Burp抓取访问内网web系统的数据包。
首先,设置Burp的下游代理,监听本地的8080端口

然后,设置Burp的上游代理,内容为服务器上的公网ip和9876端口

之后,在浏览器中设置代理,与Burp的下游代理一致

最后,就可以使用Burp进行抓取数据包了。

0x07 AWVS 代理扫描
同样,渗透测试也必须要对内网系统进行扫描测试,可以用到的扫描器有很多,例如常见的AWVS、Nessus、AppScan等等。
以 AWVS 10.5 为例,设置AWVS的代理,内容为服务器的公网ip和9876端口

设置完代理后,就可以对内网web站点进行渗透扫描了

0x08 SQLmap 代理测试
当扫描器扫出来SQL注入点后,或者自己对于其他可疑注入点进行测试验证,可以利用SQLmap工具进一步验证结果的准确性。
sqlmap 可以使用 --proxy 参数,设置为服务器代理对目标系统进行测试
python sqlmap.py -u "http://192.168.31.177/labs/num_sql.php?id=2" -p "id" --proxy "http://x.x.x.x:9876"
复制

总结
综上所述,这篇文章总结了如何使用FRP访问内网系统,以及如何使用渗透工具去远程测试内网环境的系统。至于后续怎么去挖掘系统的漏洞,想必各位师傅们心里都有一套熟练的操作了,欢迎大家一起学习交流。
FRP 反向代理渗透的更多相关文章
- 微信公众号本地断点调试(frp反向代理或Remote Debugger)
问题描述: 需要开发微信授权和订阅推送,但是感觉调试不方便,就试着几种方式.因为是用的C#开发,Visual Studio工具自带配套的远程工具 (Remote Debugger).但是感觉不稳定,容 ...
- 使用 FRP 反向代理实现 Windows 远程连接
互联网普及率的日渐攀升与 IPv4 资源的持续减少,现在大部分家庭宽带都不会分配公网 IP ,这使一些网络应用的实现多了些困难,像个人的 NAS 和一些智能家居设备.对于分配公网 IP ,各地运营商的 ...
- 借助FRP反向代理实现内网穿透
一.frp 是什么? frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便捷的方式通过具有公网 IP 节点的中转暴露到公 ...
- 反向代理在Web渗透测试中的运用
在一次Web渗透测试中,目标是M国的一个Win+Apache+PHP+MYSQL的网站,独立服务器,对外仅开80端口,网站前端的业务系统比较简单,经过几天的测试也没有找到漏洞,甚至连XSS都没有发现, ...
- frp ssh反向代理配置使用
本质是一个内网反向代理工具,需要一个vps配合,因为要外网ip. 主页: https://github.com/fatedier/frp 1.服务端(VPS) 可以用下面的一键安装脚本,也可以用主页上 ...
- frp实现基于反向代理的内网穿透
个人博客主页: xzajyjs.cn frp是什么 简单地说,frp就是一个反向代理软件,它体积轻量但功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP.TCP.UDP等众多协议 ...
- 使用 Frp 和 Docker 通过远程桌面和 SSH 来远程控制 Windows(反向代理)
最新博客文章链接 大体思路 使用 Docker 容器,在云服务器上部署 Frps 容器来中转流量,在被控制的 Windows 上部署 Frpc 容器来暴露内网的服务,在主控制端的 Windows 上直 ...
- 通过SOCKS代理渗透整个内网
https://blog.csdn.net/SouthWind0/article/details/83111044 通过SOCKS代理渗透整个内网 1.背景 经过前期的渗透工作,我们现在已经成功找到了 ...
- 浅析web网站反向代理的配置
一.背景 最近在部署项目到web服务器上时,该项目有一个打开视频监控的功能,视频的服务器是一台内网的服务器,不允许设置外网端口访问,网站服务器和视频服务器在同一个局域网内,可以相互联通.网络拓扑图如下 ...
- nginx配置反向代理或跳转出现400问题处理记录
午休完上班后,同事说测试站点访问接口出现400 Bad Request Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...
随机推荐
- springcloud与微服务
springcloud 与 微服务 父工程(按需导入依赖) <!--打包--> <packaging>pom</packaging> <properties& ...
- 基于View接口
目录 基于View接口 1.写模型表以及数据库迁移 3.使用CBV写查询所有的视图接口 4.配路由 基于View接口 Django原生即继承View来实现写接口,的确过程很繁杂,很多东西都是手动写 ...
- 支付对接常用的加密方式介绍以及java代码实现
京东科技 姚永健 一.术语表: 1.对称算法 加密解密密钥是相同的.这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥.对称算法的安全性依赖于密钥,泄漏密钥就意味着 ...
- Vue06 数据绑定
1 Vue模板语法 Vue模板语法分为两大类,插值语法和指令语法 1.1 插值语法 1)功能:用于解析标签体内容 2)写法:{{xxx}} xxx是js表达式,且可以直接读取到vue实例里面的属性 3 ...
- P2_小程序简介
小程序与普通网页开发的区别 运行环境不同 网页运行在浏览器环境中 小程序运行在微信环境中 API 不同 由于运行环境的不同,所以小程序中,无法调用 DOM 和 BOM 的 API. 但是,小程序中可以 ...
- 视觉十四讲:第十二讲_RGB-D稠密点云
1.点云地图 所谓点云,就是由一组离散的点表示的地图,最基本的点包含x,y,z三维坐标,也可以带有r,g,b的彩色信息. #include <iostream> #include < ...
- WAVE音频文件格式及其64位扩展格式的简要介绍
正文 关于 WAVE 文件格式,网上有不少介绍,但关于WAVE 64位扩展格式的介绍却是几乎没有. 所以本文的目的是简要介绍标准的 WAVE 格式,以及两种主要的扩展格式. 文中所有代码都用C语言来描 ...
- 【TS】any和void
any类型 any类型,在ts中是一个万能类型,它可以替代所有类型,也就是说定义了any类型,就不用担心ts的类型束缚,但如果所有的类型都使用any那么ts就失去了它的作用,我们使用ts就是为了规范类 ...
- 跳板攻击之:Socks 代理转发
跳板攻击之:Socks 代理转发 目录 跳板攻击之:Socks 代理转发 1 Socks 代理转发原理 2 实验环境 2.1 客户端配置 2.2 服务端配置 2.3 利用 Socks 代理扫描内网主机 ...
- 代码随想录算法训练营day08 | leetcode 344.反转字符串/541. 反转字符串II / 剑指Offer05.替换空格/151.翻转字符串里的单词/剑指Offer58-II.左旋转字符串
基础知识 // String -> char[] char[] string=s.toCharArray(); // char[] -> String String.valueOf(str ...