文章来源|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