红队对抗之Frp内网穿透
1 内网穿透工具介绍
内网穿透从本质上来讲也是端口映射,两者都是将内网地址映射到公网可访问的地址,而区别是端口映射直接在路由器中配置即可,而内网穿透配置的端口映射则需要客户端和服务端进行绑定后实现,相当于客户端和服务端之间建立了一条隧道,然后访问服务端的请求会通过隧道转发给内网主机,该情况多用于没有公网 IP 的情况下使用; frp是一个高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务, 支持tcp, udp, http, https等协议类型,可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网; ## 中文文档地址: https://gofrp.org/docs/ ## github 下载地址: https://github.com/fatedier/frp/releases ## 文件介绍 frpc 客户端程序 frpc_full.ini 客户端完整配置文件 frpc.ini 客户端简易配置文件 frps 服务端程序 frps_full.ini 服务端完整配置文件 frps.ini 服务端简易配置文件
2 实验工具下载安装
3 映射内网SSH服务
提示:需要被映射SSH的服务器运行frpc,接收映射的服务器运行frps
查看服务端简易配置文件
这里我在另一台ubuntu(192.168.0.129)上上传frp并开启服务端进行演示
./frps -c ./frps.ini
然后在kali(192.168.0.128)上,上传frp
## 客户端简易配置文件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 ## 将需要映射的本地端口映射到服务端的端口 ./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端口
4 映射内网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
[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服务的截图
5 msf映射frp流量
Kali:192.168.0.128(外网) Ubuntu:192.168.0.129(外网),10.0.1.6(内网) Win7:10.0.1.7(内网)
我在Kali上编辑frps.ini
[common] bind_addr = 192.168.0.128 bind_port = 7000
然后在Ubuntu上编辑frpc.ini
[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
# 设置代理和允许反向连接 setg Proxies socks5:192.168.0.128:1088 setg ReverseAllowProxy true
然后我们扫描下10.0.1.7是否开启了smb服务
use auxiliary/scanner/smb/smb_version set RhOSTS 10.0.1.7 run
可以看到10.0.1.7开启了smb服务,并且还存在域REDTEAM
