红队攻击之Frp内网穿透

2022-05-27 08:42:19 浏览数 (1)

文章来源|MS08067 安全实验室

本文作者:大方子(Ms08067实验室核心成员)

  • 介绍
  • 实验
  • 映射内网SSH服务
  • 映射内网Web服务
  • msf映射frp流量

介绍

代码语言:javascript复制
内网穿透从本质上来讲也是端口映射,两者都是将内网地址映射到公网可访问的地址,而区别是端口映射直接在路由器中配置即可,而内网穿透配置的端口映射则需要客户端和服务端进行绑定后实现,相当于客户端和服务端之间建立了一条隧道,然后访问服务端的请求会通过隧道转发给内网主机,该情况多用于没有公网 IP 的情况下使用;

frp是一个高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务, 支持tcp, udp, http, https等协议类型,可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网;

代码语言:javascript复制
## 中文文档地址:  
https://gofrp.org/docs/ 
## github 下载地址:  
https://github.com/fatedier/frp/releases
代码语言:javascript复制
## 文件介绍
frpc   客户端程序 
frpc_full.ini 客户端完整配置文件 
frpc.ini  客户端简易配置文件 
frps   服务端程序 
frps_full.ini 服务端完整配置文件 
frps.ini  服务端简易配置文件

实验

映射内网SSH服务

提示:需要被映射SSH的服务器运行frpc,接收映射的服务器运行frps

查看服务端简易配置文件

这里我在另一台ubuntu(192.168.0.129)上上传frp并开启服务端进行演示

代码语言:javascript复制
 ./frps -c ./frps.ini

然后在kali(192.168.0.128)上,上传frp

代码语言:javascript复制
## 客户端简易配置文件frpc.ini
[common]             ## 这个部分类似于口令-对接口
server_addr = 192.168.0.129    ## 服务端的公网ip地址
server_port = 7000                ## 服务端侦听的端口
[ssh] 
type = tcp      ## 协议类型     
local_ip = 127.0.0.1   ## 本地的ip地址
local_port = 22    ## 需要映射的本地端口
remote_port = 6000    ## 将需要映射的本地端口映射到服务端的端口

代码语言:javascript复制
./frpc -c frpc.ini

服务端和客户端都运行之后,我们访问Ubuntu(192.168.0.129)的6000端口即可穿透访问到Kali(192.168.0.128)的22端口

然后通过Ubuntu(192.168.0.129)的6000端口来访问到Kali(192.168.0.128)的22端口

映射内网Web服务

这里Ubuntu(192.168.0.129)里面有个docker容器(172.17.0.2)的8080端口有spring服务,我们现在将其映射到Kali(192.168.0.128)的8085端口上。

这样我们访问Kali(192.168.0.128)的8085端口就可以访问到Ubuntu(192.168.0.129)内docker(172.17.0.2)的web服务

Kali的frps.ini配置如下

然后开启frps

然后我们编辑下ubuntu上的frpc.ini

代码语言:javascript复制
[common]
server_addr = 192.168.0.128     # 服务端的主机IP
server_port = 7000              # 服务端主机监听的端口

[http]
type = tcp  # 连接类型
local_port = 8080   # 本地端口
local_ip = 172.17.0.2   # 本地地址
remote_port = 8085      # 映射成服务端的端口

然后开启frpc

接下来我们访问下Kali(192.168.0.128)的8085端口看看,可以发现成功访问

下面这张图是Ubuntu本机访问docker里面Web服务的截图

msf映射frp流量

Kali:192.168.0.128(外网) Ubuntu:192.168.0.129(外网),10.0.1.6(内网) Win7:10.0.1.7(内网)

我在Kali上编辑frps.ini

代码语言:javascript复制
[common]
bind_addr = 192.168.0.128
bind_port = 7000

然后在Ubuntu上编辑frpc.ini

代码语言:javascript复制
[common]
server_addr = 192.168.0.128
server_port = 7000

[msf]
type = tcp
remote_port = 1088
plugin = socks5

这里我们将Kali的1088端口作为进入内网的端口,只要流量通过Kali的1088端口就可以达到Ubuntu从而进入内网

先开启Kali上的frps,然后在开启ubuntu上的frpc

然后我们开启msf

代码语言:javascript复制
# 设置代理和允许反向连接
setg Proxies socks5:192.168.0.128:1088
setg ReverseAllowProxy true

然后我们扫描下10.0.1.7是否开启了smb服务

代码语言:javascript复制
use auxiliary/scanner/smb/smb_version
set RhOSTS 10.0.1.7
run

可以看到10.0.1.7开启了smb服务,并且还存在域REDTEAM

0 人点赞