HTB-Cascade

news2025/4/17 7:20:11

HTB-Cascade

  • 信息收集
  • 立足
  • s.smith -> arksvc
    • 使用脚本获取CascAudit.exe加密的密码明文
    • 修改IL指令获取
  • arksvc -> administrator

请添加图片描述

信息收集

在这里插入图片描述
在这里插入图片描述

查看smbclient。
在这里插入图片描述
rpcclient空密码连接并收集信息。
在这里插入图片描述
收集到用户列表,此外没有有意思的信息。

CascGuest
arksvc
s.smith
r.thompson
util
j.wakefield
s.hickson
j.goodhand
a.turnbull
e.crowe
b.hanson
d.burman
BackupSvc
j.allen
i.croft

用crackmapexec对smb和winrm跑一遍均没结果。

在这里插入图片描述
看看能从LDAP上收集些什么。
在这里插入图片描述

ldapsearch -H ldap://10.10.10.182 -x -s base -b '' "(objectclass=*)" "*"

在这里插入图片描述
发现DC=cascade,DC=local

 ldapsearch -H ldap://10.10.10.182 -x -s sub -b 'DC=cascade,DC=local' "(objectclass=user)" "*"

在这里插入图片描述
有一个Ryan Thompson的用户以及此用户的cascadeLegacyPwd: clk0bjVldmE=
在这里插入图片描述

在这里插入图片描述
返回rpc收集到的用户表可以看到有一位r.thompson,这会不会是ryan thompson的smb用户名呢?

在这里插入图片描述
没错。
在这里插入图片描述
使用r.thompson:rY4n5eva登录smb收集信息。
在这里插入图片描述
有这些share文件。

    ADMIN$          Disk      Remote Admin
    Audit$          Disk      
    C$              Disk      Default share
    Data            Disk      
    IPC$            IPC       Remote IPC
    NETLOGON        Disk      Logon server share 
    print$          Disk      Printer Drivers
    SYSVOL          Disk      Logon server share 

不出意外末尾带$都无法访问。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DCs\dcdiag.log
在这里插入图片描述
Meeting_Notes_June_2018.html,从中可以获取到Steve Smith、TempAdmin:(password is the same as the normal admin account password)。在这里插入图片描述
什么叫和普通admin用户密码一样,是什么环境下的admin用户,继续看看吧。Temp\s.smith\VNC Install.reg里面可以知道Windows Registry Editor Version 5.00。
在这里插入图片描述
里面还有一句"Password"=hex:6b,cf,2a,4b,6e,5a,ca,0f将其转为字符串看看。
在这里插入图片描述
搜索得知VNC是经过DES加密。

echo -n 6bcf2a4b6e5aca0f| xxd -r -p | openssl enc -des-cbc --nopad --nosalt -K e84ad660c4721ae0 -iv 0000000000000000 -d | hexdump -Cv

获得密码。
在这里插入图片描述

立足

在这里插入图片描述
在这里插入图片描述
不出意外要先横向再纵向。
在这里插入图片描述

s.smith -> arksvc

收集s.smith用户信息。

在这里插入图片描述
可能Logon script的默认位置是Netlogon。

Logon script                 MapAuditDrive.vbs

想看看Shares目录,结果没权限。
在这里插入图片描述

可以通过smbclient查看NETLOGON。
在这里插入图片描述
使用s.smith的凭证登录smb看看。

在这里插入图片描述
在这里插入图片描述
下载当前目录下所有文件
在这里插入图片描述
以及X86和X64里面的文件
在这里插入图片描述
有如下文件。

RunAudit.bat文件类容如下,并且还有一个CascCrypto.dll文件,可能CascAudit.exe对这些文件做了什么处理。
在这里插入图片描述
逆向看看。
在这里插入图片描述使用dnspy32打开。
在这里插入图片描述

重点是这几句。

//定义str、password、str2为三个空字段
string str = string.Empty;
string password = string.Empty;
string str2 = string.Empty;	

using (SQLiteDataReader sqliteDataReader = sqliteCommand.ExecuteReader()) //数据库执行 ,并返回数据读取器
						{
							sqliteDataReader.Read();	//前进到结果集中的下一行
							str = Conversions.ToString(sqliteDataReader["Uname"]);	//获取Uname列的值并转化为字符串赋予str
							str2 = Conversions.ToString(sqliteDataReader["Domain"]);	//同上
							string encryptedString = Conversions.ToString(sqliteDataReader["Pwd"]);	//也同上
							try
							{
								password = Crypto.DecryptString(encryptedString, "c4scadek3y654321");
								//重点来了将获得的encryptedString和c4scadek3y654321传入Crypto的DecryptString函数进行加密
							}
							catch (Exception ex)
							{
								Console.WriteLine("Error decrypting password: " + ex.Message);
								return;
							}
						}

跟进函数查看内容。

public static string DecryptString(string EncryptedString, string Key)
		{
			byte[] array = Convert.FromBase64String(EncryptedString);//将EncryptedString的base64转化为等价8位无符号整形数组
			Aes aes = Aes.Create(); //生成一个新的密码钥和vector (IV)
			aes.KeySize = 128;
			aes.BlockSize = 128;
			aes.IV = Encoding.UTF8.GetBytes("1tdyjCbY1Ix49842");	//吧1tdyjCbY1Ix49842转化为UTF8编码组
			aes.Mode = CipherMode.CBC;	//以CBC模式编码
			aes.Key = Encoding.UTF8.GetBytes(Key);
			//底下就是加密的一些过程
			string @string;
			using (MemoryStream memoryStream = new MemoryStream(array))
			{
				using (CryptoStream cryptoStream = new CryptoStream(memoryStream, aes.CreateDecryptor(), CryptoStreamMode.Read))
				{
					byte[] array2 = new byte[checked(array.Length - 1 + 1)];
					cryptoStream.Read(array2, 0, array2.Length);
					@string = Encoding.UTF8.GetString(array2);
				}
			}
			return @string;
		}

使用脚本获取CascAudit.exe加密的密码明文

根据分析可知CascAudit.exe对某个用户的PWD也就是password进行了AES的CBC模式加密。我们现在有了VI、KEY、还差Base64的密码。哎我数据库呢?重新下载好数据库后设置一个断点在PWD处运行即可获得我们需要的数据。
先在要断电的语句前面点一下添加断点。

在这里插入图片描述
接着调试,参数填写数据库的所在位置,中断于入口点。
在这里插入图片描述
在这里插入图片描述

一路F10跑下来获取PWD值。

在这里插入图片描述
当然也可以直接查看数据库内容
BQO5l5Kj9MdErXx6Q6AGOw==
在这里插入图片描述

from Crypto.Cipher import AES
import base64

def decrypt(pwd, key, iv):
    cipher = AES.new(key, AES.MODE_CBC, iv)
    decryptByts = base64.b64decode(pwd)
    msg = cipher.decrypt(decryptByts)
    paddingLen = ord(msg[len(msg)-1])
    return msg[0:-paddingLen]

if __name__ == "__main__":
    key = "c4scadek3y654321"
    iv = "1tdyjCbY1Ix49842"
    pwd ="BQO5l5Kj9MdErXx6Q6AGOw=="
    print decrypt(pwd, key, iv)

在这里插入图片描述

修改IL指令获取

找到加密的那条语句右键选择“编辑IL指令”。
在这里插入图片描述
找到那条加密语句单机选择“方法”,并找到EncryptString解密函数。
在这里插入图片描述
在这里插入图片描述
修改完成之后的样子。
在这里插入图片描述
在这里插入图片描述
最后一直F10到解密语句即可。
在这里插入图片描述

使用arksvc:w3lc0meFr31nd登录。
在这里插入图片描述

arksvc -> administrator

查看用户更多信息时发现了AD Recycle Bin。

在这里插入图片描述

AD Recycle Bin顾名思义,就是AD的回收桶,拥有恢复和删除的能力。前面我们从EMAIL知道有一个临时的admin密码和administrator是一样的,但是临时的admin账号密码在2018年底被删除了。去垃圾桶看看。

get-adobject -searchscope subtree -filter {displayname -eq “TempAdmin”} -includedeletedobjects 查看TempAdmin用户状况。
在这里插入图片描述
现在需要查看一下TempAdmin的更加详细的信息。在Microsoft learn官方文档有参数介绍,其中有一个-Properties参数用来查看指定对象属性,查看全部属性使用*。
在这里插入图片描述

Get-ADObject -Filter {samaccountName -eq "TempAdmin"} -IncludeDeletedObjects -Properties *

在这里插入图片描述
会得到cascadeLegacyPwd : YmFDVDNyMWFOMDBkbGVz。
在这里插入图片描述
使用administrator:baCT3r1aN00dles
在这里插入图片描述

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

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

相关文章

Qt/QML编程学习之心得:二进制兼容、私有实现及Q_D/Q_Q指针(三)

QML画好或说描述好界面之后,实现部分通过C++实现,Qt采用了私有实现的设计模式解决了二进制兼容的问题。 二进制兼容问题描述: 现在有一个Widget, 包含一个私有成员变量m_geometry ,编译 Widget 并且发布为MyWidgetLib 1.0 。该应用程序名字为TestAPP,基于 Qt 4.9。 cla…

【Linux网络服务】Linux网络设置

一、查看网络配置 1.1ifconfig 1.2ip a 1.3什么是mtu 最大传输单元MTU,是指网络能够传输的最大数据包大小,以字节为单位。MTU的大小决定了发送端一次能够发送报文的最大字节数。如果MTU超过了接收端所能够承受的最大值,或者是超过了发送路径…

异步爬虫的原理和解析

我们知道爬虫是 IO 密集型任务,比如如果我们使用 requests 库来爬取某个站点的话,发出一个请求之后,程序必须要等待网站返回响应之后才能接着运行,而在等待响应的过程中,整个爬虫程序是一直在等待的,实际上…

焦虑症会出现哪些问题 什么因素导致的焦虑症

当说起焦虑症,大多数人想到的就是植物神经紊乱,确实,这两种疾病是非常容易混淆的,甚至很多时候植物神经紊乱都会当做焦虑症进行治疗,虽然这种疾病大多效果不会太理想。 你们知道什么是焦虑症吗? 很多人当出…

Android ProtoLog动态开启相关wm logging源码分析补充

Android ProtoLog动态开启相关wm logging源码分析补充 针对上一节已经清楚了相关的代码中怎么可以打印到logcat中,其实本质上还就是protologtool这个工具对代码中的所有ProtoLog进行了相关的替换成了具体实现,最后会条件判断输出到Slog中 本文就重点来看…

【池化方法】多示例学习池化(MIL pooling)公式与代码

一般的池化方法包括最大池化、平均池化、自适应池化与随机池化,这几天意外看到了多示例学习池化,感觉挺有意思的,记录一下。   论文   代码 1. 多示例学习(Multiple instance learning,MIL) 经典深度学…

梯度下降算法原理详解及MATLAB程序代码(最简单)

模型就是线性规划及线性规划的对偶理论,单纯形法以及它的实际应用:整数规划及其解法(分支定界法、割平面法匈牙利算法Q),目标规划,非线性规划动态规划、决策分析等等。 其它的一些优化算法。比如说一维搜索里面的黄金分割法、加步…

PostMan笔记(二)发送请求

1. 发送请求功能介绍 Postman是一款流行的API开发工具,它可以让开发人员更方便地测试、调试和使用API。其中,发送请求功能是Postman最为重要和基础的功能之一。 在Postman中,发送请求功能主要包括以下几个步骤: 选择请求方法&am…

数据分析时,进行数据建模该如何筛选关键特征?

1.为什么要做关键特征筛选? 在数据量与日俱增的时代,我们收集到的数据越来越多,能运用到数据分析挖掘的数据也逐渐丰富起来,但同时,我们也面临着如何从庞大的数据中筛选出与我们业务息息相关的数据。(大背景…

Java的对象克隆

本节我们会讨论 Cloneable 接口,这个接口指示一个类提供了一个安全的 clone() 方法。 Object 类提供的 clone() 方法是 “浅拷贝”,并没有克隆对象中引用的其他对象,原对象和克隆的对象仍然会共享一些信息。深拷贝指的是:在对象中…

微服务---一篇学完SpringCloud

SpringCloud 1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 1.0.学习目标 了解微服务架构的优缺点 1.1.单体架构 单体架构&#xff1a…

java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC

文章目录 一、学习目标二、Spring MVC概述1、MVC架构2、Spirng MVC3、使用Spring MVC的两种方式 三、基于xml配置与注解的方式使用Spring MVC(一)创建Maven项目(二)添加相关依赖(三)给项目添加Web功能&…

SpringMVC表格提交中文乱码和配置logback

最佳解决方案还是使用Spring提供的过滤器&#xff0c;将其配置到WEB.XML文件中&#xff1a; <filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class&g…

nginx部署VUE项目

前言 目前公司的前端代码基本都是部署在nginx下&#xff0c;特此来记录一下 开发环境&#xff1a;window10 nginx环境搭建&#xff08;参考下方文章&#xff09; window环境安装 mac环境安装 本地我将nginx放置于F盘 前端项目打包 一个nginx服务下可能会放置多个前端包&…

echarts 折线图

Echarts 常用各类图表模板配置 注意&#xff1a; 这里主要就是基于各类图表&#xff0c;更多的使用 Echarts 的各类配置项&#xff1b; 以下代码都可以复制到 Echarts 官网&#xff0c;直接预览&#xff1b; 图标模板目录Echarts 常用各类图表模板配置一、简洁折线图二、环形图…

结构体的存储

由于要想知道结构体的大小&#xff0c;了解结构体是如何存储在内存中的 我们需要先了解一个知识点&#xff1a; 结构体内存对齐 1. 第一个成员在与结构体变量偏移量为0的地址处 (偏移量是某个字节相较于起始存储空间的相差字节数 例如第一个字节的偏移量是0&#xff0c;第二个…

一套专业的C#医院体检管理系统源码 PEIS体检报告管理系统源码 C/S医院PEIS系统源码

医院PEIS体检管理系统源码&#xff0c;有源码&#xff0c;有演示&#xff0c;自主研发&#xff0c;官方正版授权&#xff01; 开发语言&#xff1a;C# 开发工具&#xff1a;VS2013版本起 后端框架&#xff1a;winform 数 据 库&#xff1a;oracle 12c 医院体检系统主要特点…

人大金仓亮相2023CHITEC,五大看点不容错过

近日&#xff0c;由中国卫生信息与健康医疗大数据学会和《中国卫生信息管理杂志》社联合举办的2023&#xff08;17th&#xff09;中国卫生信息技术/健康医疗大数据应用交流大会暨软硬件与健康医疗产品展览会&#xff08;2023 CHITEC&#xff09;在安徽合肥顺利召开。 作为数据库…

【DAY38】BOM/VUE初步学习

pageXOffset 设置或返回当前页面相对于窗口显示区左上角的 X 位置。 pageYOffset 设置或返回当前页面相对于窗口显示区左上角的 Y 位置。 screenLeft&#xff0c;screenTop&#xff0c;screenX&#xff0c;screenY 声明了窗口的左上角在屏幕上的的 x 坐标和 y 坐标。IE、Safari…

JavaScript历史

JavaScript历史 参考视频1 1990年&#xff0c;第一个终端显示网页被蒂姆博士创造出来&#xff0c;表现为超链接跳转、无图的特点。文本格式定义、文本传输协议即应用层协议&#xff0c;解析显示引擎是关键。1993年&#xff0c;随着人们对视觉效果的要求逐渐变高&#xff0c;马…