文章目录

  • 前言
  • FRP反向代理
    • 内网环境搭建
    • 服务端的配置
    • 客户端的配置
    • FRP内网穿透
    • FRP进阶使用
  • fscan内网神器
  • 总结

前言

当我们拿下目标单位的一台外网服务器后,需要借助外网服务器作为跳板机去开展内网渗透,这个时候必不可少的就是在跳板机上设置代理。在前面的文章中,曾经在实际案例中介绍了两种代理方式:

  1. Webshell 管理工具——冰蝎直接设置 HTTP 隧道代理实现内网穿透:2021强网杯全国网络安全挑战赛Writeup;
  2. Cobaltstrike 建立 Socks4 代理实现内网穿透:Cobaltstrike内网渗透神器入门使用教程。

以上两种代理方式虽均能实现内网穿透的目的,但是代理质量相对来说并不稳定,难以满足内网渗透的需求。本文将介绍一个专注于内网穿透的高性能的反向代理应用——FRP,其支持 TCP、UDP、HTTP、HTTPS 等多种协议,可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

FRP反向代理

FRP 的 中文官方文档 可了解其作用和用法。

简而言之,FRP 通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  1. 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  2. 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  3. 代理组间的负载均衡。
  4. 端口复用,多个服务通过同一个服务端端口暴露。
  5. 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  6. 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  7. 服务端和客户端 UI 页面。

内网环境搭建

本文将借助以下靶场环境进行 FRP 工具实现内网穿透的实验演示:

没错,以上环境基于红日安全 Vulnstack 内网靶场环境,详情可参见Vulnstack红日安全内网域渗透靶场1实战。

1、由于虚拟机仅主机模式下默认是可与物理机连通的,故在 Win2008 域控主机上,防火墙新建了如下入站规则来拒绝 Win10 物理机的访问(禁止访问的 IP 为物理机的仅主机模式 VMnet1 网卡的网关 192.168.52.1):
2、此时 Win7 跳板机访问 Win2008 的 80 端口 Web 服务是正常的:
3、但是“外网”角色的 Win10 物理机则无法正常访问 Win2008 的 Web 服务:
4、而同样是与物理机做了仅主机模式网络连接的 Win2003 虚拟机,由于没有做防火墙策略,Win10 物理机是可以直接连通的:

以上就是本次实验的演示环境,接下来我的目标就是借助 FRP 反向代理工具,实现 Win10 物理机通过 Win7 跳板机的代理成功访问到内网 Win2008 的 Web 服务!

服务端的配置

FRP 代理工具可以直接在 Github下载 :
从下图的 frp 架构图可以看出 frp 的工作流程——在服务端部署 frps,在要访问的 内网机器(或者跳板机)上部署 frpc,实现服务端对该主机的反向代理,接着便可以通过访问服务端来实现对该内网主机的远程访问(或者借助跳板机访问内网):

1、下载 frp_0.37.0_linux_amd64.tar.gz 并传输到 VPS 服务器上后解压缩获得如下文件:
其中的关键文件如下:

├── frpc          #frp客户端执行程序
├── frpc_full.ini
├── frpc.ini      #frp客户端配置文件
├── frps          #frp服务端执行程序
├── frps_full.ini
├── frps.ini      #frp服务端配置文件
└── LICENSE

2、frp 服务默认不设置连接密码,frps.ini 文件默认只设置了端口:

我们可以修改服务端配置文件frps.ini来配置代理的连接密码,如下图所示:

3、执行命令./frps -c ./frps.ini开始运行 FRP 服务:

客户端的配置

1、将对应版本的 FRP 工具下载到 Win7 跳板机上并解压缩,客户端配置文件frpc.ini初识参数如下:
2、同样的修改 FRP 客户端配置文件frpc.ini来设置服务端的 IP 地址、端口、连接密码:

参数释义:

[common]
server_addr = 104.168.***.*** #VPS服务器的 IP
server_port = 7000            #VPS服务器上设置的 FRP 服务绑定端口
token = ftp1234               #VPS服务端设置的 FRP 服务连接密码[socks5]      #这个是反向代理的名称,可以随意设置
type = tcp    #socks5 是 TCP 协议的
remote_port = 6666   #指定建立的反向代理的连接端口
plugin = socks5      #指定建立 socks5 代理隧道
use_encryption = true
use_compression = true

3、接下来执行命令frpc.exe -c frpc.ini启动客户端即可:

4、此时查看 VPS 服务器监听的 7000 端口已成功与客户端连接,同时开启了 6666 端口并建立了 socks5 代理通道:

FRP内网穿透

配置完 FRP 服务端和客户端并建立起 socks5 隧道后,下面就来见证下利用该 FRP 代理隧道如何穿透内网!

1、在 Win10 物理机的谷歌浏览器设置如下代理:
2、然后让 Win10 的谷歌浏览器流量走 VPS 建立的 FRP socks5 代理,即可访问到内网域控主机的 Web 服务,成功实现内网穿透!
返回 VPS 也能查看到对应流量转发的信息:
3、以上除了在浏览器直接连接 frp 的 socks5 代理外,在实际渗透过程中为了结合 BurpSsuite 对内网 Web 系统进行抓包测试,还可以在浏览器连接 BurpSuite 代理,并在 BurpSuite 中设置流量走 frp 服务器的 socks5 代理即可,如下图所示:
4、此时谷歌浏览器挂着 BurpSuite 的代理便可以访问到内网的服务了:
同时 BurpSuite 也能抓到内网服务的数据包了:
至此已成功借助 frp 搭建 socks5 代理隧道、实现内网穿透的目的!

FRP进阶使用

上文搭建的 socks5 隧道用于将公网主机(本文代指 Win10 物理机)访问内网服务器的请求流量直接通过访问 Win7 跳板机转发,从而实现内网穿透的目的。

FRP 反向代理还可以将内网主机的 22、3389 等端口转发到公网主机的指定端口,从而实现远程连接内网服务器的目的,如下图所示:

相关用法请参见前文提及的 FRP 的 中文官方文档,此处不再演示。

fscan内网神器

此处搞点跟本文题目无关的题外知识hh,某次攻防演习看到同事使用了 fscan 扫描内网的服务,被秀了一把,不得不感叹真香!在此顺便借助该靶场环境记录下该工具的用法。

Fscan 工具的 Github 项目地址,有使用说明:

可直接下载:
简单用法:
下面来体验下该工具,看看实际的使用效果!

1、拿到 Win7 跳板机的 Shell:
2、上传 fscan64.exe 文件到跳板机上:
3、在 Cknife 中打开命令终端,执行命令fscan64.exe -h 192.168.52.0/24 -o result.txt,进行内网信息探测:

4、下载并打开程序运行结果 result.txt,可以看到如下搜集到的全面的内网信息:
附上所有结果:

192.168.52.138:445 open
192.168.52.143:139 open
192.168.52.138:88 open
192.168.52.141:7001 open
192.168.52.143:3306 open
192.168.52.141:445 open
192.168.52.143:445 open
192.168.52.141:139 open
192.168.52.138:139 open
192.168.52.143:135 open
192.168.52.141:135 open
192.168.52.141:21 open
192.168.52.143:80 open
192.168.52.138:80 open
192.168.52.141:8099 open
192.168.52.141:7002 open
192.168.52.138:135 open
192.168.52.141:8098 open
NetInfo:
[*]192.168.52.143[->]stu1[->]192.168.52.143[->]169.254.129.186[->]192.168.92.130
NetInfo:
[*]192.168.52.138[->]owa[->]192.168.52.138
[*] 192.168.52.143       __MSBROWSE__\STU1              Windows 7 Professional 7601 Service Pack 1
[+] 192.168.52.143 MS17-010    (Windows 7 Professional 7601 Service Pack 1)
NetInfo:
[*]192.168.52.141[->]root-tvi862ubeh[->]192.168.52.141
[*] WebTitle:http://192.168.52.141:7002 code:200 len:2632   title:Sentinel Keys License Monitor
[*] 192.168.52.141       GOD\SNTL_ROOT-TVI86
[+] 192.168.52.138 MS17-010    (Windows Server 2008 R2 Datacenter 7601 Service Pack 1)
[*] 192.168.52.138 [+]DC GOD\OWA               Windows Server 2008 R2 Datacenter 7601 Service Pack 1
[+] 192.168.52.141 MS17-010    (Windows Server 2003 3790)
[*] WebTitle:http://192.168.52.138     code:200 len:4      title:IIS7
[*] WebTitle:http://192.168.52.141:8099 code:403 len:1409   title:The page must be viewed over a secure channel
[*] WebTitle:http://192.168.52.143     code:200 len:21     title:phpStudy 探针 2014
[+] ftp://192.168.52.141:21:anonymous

可以看到,扫描结果里包括了几大类信息:

  1. 扫描的内网网段里存活的主机 IP 及其开放的端口;
  2. 扫描的内网网段里主机的名称、MS17-010 永恒之蓝等漏洞扫描结果(两台主机存在该漏洞);
  3. 扫描的内网网段里主机开放的 Web 服务的标题、端口地址!

此处验证下扫描到的几个内网 Web 服务是否真实存在:
看到这,你应该明白 fscan 这款内网神器有多香了吧!收集到如此多的内网资产信息,接下来的内网横向渗透就更加简便清晰了!

总结

本文学习、总结了内网穿透神器 FRP 反向代理工具的使用方法,同时介绍了 fscan 内网资产情况扫描神器的使用。在实际的攻防演习、内网渗透中,拿到外网跳板机的 Shell 权限后,我们可以使用 fscan 在跳板机上扫描内网进行资产搜集,然后使用 FRP 进行内网穿透后对收集到的内网资产进行横向渗透攻击!

基于FRP反向代理工具实现内网穿透攻击相关推荐

  1. 基于windows系统前后端分离多端发布的调试解决方案(WSL+Nginx反向代理+编辑器debug+内网穿透)

    今天是 怪物猎人崛起 的发售日,早点撸完回家砍龙

  2. frp工具实现内网穿透以及配置多个ssh和web服务

    frp简介 frp简介 环境准备 安装及配置步骤 frp简介 frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力, ...

  3. 搭建nginx反向代理用做内网域名转发

    搭建nginx反向代理用做内网域名转发 一.安装nginx $ sudo yum install nginx 二.修改配置文件 1 先备份配置文件 $ sudo cp /etc/nginx/nginx ...

  4. 内网穿透 NPS工具实现内网穿透

    内网穿透    NPS工具实现内网穿透 官网的简介 NPS是一款轻量级.高性能.功能强大的内网穿透代理服务器.目前支持tcp.udp流量转发,可支持任何tcp.udp上层协议(访问内网网站.本地支付接 ...

  5. 渗透测试常用工具-stunnel内网穿透

    关于内网穿透原理可以查看我另外一篇文章介绍:渗透测试常用工具-ptunnel内网穿透 目录 关于内网穿透原理可以查看我另外一篇文章介绍:[渗透测试常用工具-ptunnel内网穿透](https://b ...

  6. frp内网穿透工具实现内网穿透

    frp实现内网穿透 前言 frp简介 frp是什么 frp 的作用 frp的架构 准备工作 frp下载地址 frp的文件结构 frp配置与使用 linux公网服务器的配置(windows配置同理,这里 ...

  7. windows搭建frp服务器_使用阿里云服务器配置frp实现Windows系统RDP内网穿透

    1.frp服务器采用阿里云ecs的centos7.5系统,客户端是台windows10的系统,做一个RDP服务的内网穿透用. 2.首先下载frp到服务器(链接:https://github.com/f ...

  8. nps+Proxifier搭建socks5代理隧道进行内网穿透

    目录 一.实验环境搭建 二.nps 服务端配置 客户端配置 将npc注册到系统服务 三.Proxifiers使用 在渗透过程中,我们需要快速实现内网穿透,从而绕过网络访问限制,直接从外网来访问内网 正 ...

  9. FTP、FTPS frp(传送协议与内网穿透)

    1.FTP(File Transfer Protocol) FTP是基于TCP的服务,使用两个端口,命令端口和数据端口,命令端口是21,数据端口在主动模式下为20,在被动模式随机分配. FTP协议有主 ...

最新文章

  1. #define 的换行问题
  2. 爬取小说1--高并发
  3. ubuntu 编译内核并更换
  4. boost::mutex相关的测试程序
  5. WPF中一个通用的BoolToXXX转换类
  6. Docker最全教程——从理论到实战(二)
  7. pyinotify结合ftplib自动上传新建的文件
  8. Swift 优雅的打印Log
  9. 端到端半监督目标检测框架Instant-Teaching:
  10. SpringBoot脚手架工程快速搭建
  11. ITU-R BT.1788建议书 对多媒体应用中视频质量的主观评估方法
  12. python百度语音实时识别成文字_python 上传百度语音识别+文字返回结果
  13. rename python_谈谈重命名方法renames详解
  14. python线程池管理两个队列_Python 线程池使用有限大小的工作队列
  15. 如何快速合并多个PDF文件或图片为一个PDF文件?
  16. 企业员工人事管理系统(数据库课设)
  17. html5 龙,百度移动可搜龙点睛 技术创新挺进HTML5元年
  18. 【离散数学】单射、满射与双射
  19. java poi解析excel_Java 利用POI 解析Excel
  20. IDEA 使用ctrl + alt + 方向键无法返回上一步解决办法

热门文章

  1. NOIP2009 普及组 复赛 poly 多项式输出
  2. 负载均衡之LoadBalancer
  3. android 人际关系 图,六张图说明六种人际关系(朋友圈转疯了)
  4. 2020算法面经问题汇总
  5. android 开发比较好的学习网站和博主
  6. java简介,java特点,java应用领域
  7. 1,10-菲啰啉是氧化还原指示剂|双齿配体各类反应
  8. 这36张图包含了高中英语所有生活用词,果断收藏!
  9. 说说qwerty、dvorak、colemak三种键盘布局
  10. GIS开发人员需要掌握的知识和技能