前言

之前在一个项目中遇到了一个渗透环境,只能使用工具代理远程访问内网,于是便接触了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 反向代理渗透的更多相关文章

  1. 微信公众号本地断点调试(frp反向代理或Remote Debugger)

    问题描述: 需要开发微信授权和订阅推送,但是感觉调试不方便,就试着几种方式.因为是用的C#开发,Visual Studio工具自带配套的远程工具 (Remote Debugger).但是感觉不稳定,容 ...

  2. 使用 FRP 反向代理实现 Windows 远程连接

    互联网普及率的日渐攀升与 IPv4 资源的持续减少,现在大部分家庭宽带都不会分配公网 IP ,这使一些网络应用的实现多了些困难,像个人的 NAS 和一些智能家居设备.对于分配公网 IP ,各地运营商的 ...

  3. 借助FRP反向代理实现内网穿透

    一.frp 是什么? frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便捷的方式通过具有公网 IP 节点的中转暴露到公 ...

  4. 反向代理在Web渗透测试中的运用

    在一次Web渗透测试中,目标是M国的一个Win+Apache+PHP+MYSQL的网站,独立服务器,对外仅开80端口,网站前端的业务系统比较简单,经过几天的测试也没有找到漏洞,甚至连XSS都没有发现, ...

  5. frp ssh反向代理配置使用

    本质是一个内网反向代理工具,需要一个vps配合,因为要外网ip. 主页: https://github.com/fatedier/frp 1.服务端(VPS) 可以用下面的一键安装脚本,也可以用主页上 ...

  6. frp实现基于反向代理的内网穿透

    个人博客主页: xzajyjs.cn frp是什么 简单地说,frp就是一个反向代理软件,它体积轻量但功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP.TCP.UDP等众多协议 ...

  7. 使用 Frp 和 Docker 通过远程桌面和 SSH 来远程控制 Windows(反向代理)

    最新博客文章链接 大体思路 使用 Docker 容器,在云服务器上部署 Frps 容器来中转流量,在被控制的 Windows 上部署 Frpc 容器来暴露内网的服务,在主控制端的 Windows 上直 ...

  8. 通过SOCKS代理渗透整个内网

    https://blog.csdn.net/SouthWind0/article/details/83111044 通过SOCKS代理渗透整个内网 1.背景 经过前期的渗透工作,我们现在已经成功找到了 ...

  9. 浅析web网站反向代理的配置

    一.背景 最近在部署项目到web服务器上时,该项目有一个打开视频监控的功能,视频的服务器是一台内网的服务器,不允许设置外网端口访问,网站服务器和视频服务器在同一个局域网内,可以相互联通.网络拓扑图如下 ...

  10. nginx配置反向代理或跳转出现400问题处理记录

    午休完上班后,同事说测试站点访问接口出现400 Bad Request  Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...

随机推荐

  1. ES6 01 简介

    1 记录一个好的笔记 一个非常详细的笔记:https://es6.ruanyifeng.com/#docs/intro 2 简介 2.1 ECMAScript 和 JavaScript ECMAScr ...

  2. shrio

    Shrio 页面报错 <link rel="shortcut icon" href="#"/> 简单的安全框架 官网:https://shiro.a ...

  3. 获取某地模型并用Cesium加载(一)

    2023-01-04 最近想用Cesium给学校做一个类似智慧校园的东西,要做的东西很多,首先是获取学校模型的问题,然后怎么用Cesium加载3Dtile 1.获取学校模型 想到之前被老师抓苦力去做春 ...

  4. 使用NAT网络模式搭建内网,修改IP地址

    使用NAT网络模式搭建内网,修改IP地址 首先说明一下虚拟机的三种联网方式: 桥接模式: 简单来说就是使这台虚拟机成为一台在互联网中的有独立IP的一台新设备和Mac地址(不够都是虚拟的) NAT模式: ...

  5. 如何将项目打包成apk或exe程序

    一. 打包成exe 确认已经安装了pyinstaller,然后依次执行下面指令 pyinstaller -F setup.py 打包exe pyinstaller -F -w setup.py 不带控 ...

  6. 【模板】动态树(Link Cut Tree)

    模板 \(\text{Code}\) #include <cstdio> #include <iostream> #define IN inline #define RE re ...

  7. Luogu P3919 【模板】可持久化线段树 1(可持久化数组)

    板子,正好温习一下主席树的写法 记得数组开 \(32\) 倍!! \(Code\) #include<cstdio> using namespace std; const int N = ...

  8. CCRD_TOC_2008年第5期

    中信国健临床通讯 2008年第5期 目 录   RA: 临床缓解与亚临床炎症 1.     DMARD诱导缓解的RA患者中仍有影像学确证的亚临床炎症 Brown AK, et al. Arthriti ...

  9. 05#Web 实战:可拖拽的侧边栏

    效果演示图 可拖拽的左.右侧边栏的使用情况还是挺多的,博客园后台管理的左侧边栏就可以拖拽哟!效果演示如下图: HTML 代码 <div class="container"&g ...

  10. docker下netcore内存dump

    一般开发阶段可以通过visualstudio来检查程序的内存 .cup等的优化问题.vs下调试=>性能探查器,这里面大有千秋. 但是好多内存问题是经过时间积累下来才暴露出来的,在生产环境中不做不 ...