*CTF2021 Misc部分wp

摘要:
Littletricksbitlocker用hashcat解密了010编辑器。在查看了vhdx磁盘后,它被安装到了wink上,并发现在Bitlocker尝试加密后,某些软件无法正常工作。我仍然使用hashcat作为johntheriper的下载地址https://www.openwall.com/john/在运行中查找bitlocker2john.exebitlocker2john.exe-ill2.vhdx以生成四个h
little tricks

bitlocker用hashcat解密

010editor看了下是vhdx磁盘,挂载到win发现被bitlocker加密

尝试了一些软件都不好使,还是用hashcat做

john the ripper下载地址

https://www.openwall.com/john/

在run里找到bitlocker2john.exe

bitlocker2john.exe -i ll2.vhdx

image-20210119122123800

生成了四个hash,先保存下来

User Password hash:
$bitlocker$0$16$212afe1afbb733f18b043338d85c4744$1048576$12$80ad0e8486ead60103000000$60$01c1f4b616a85eecbd9d090ba2f0cbf5642f6591ff2abdf1df84e3fc33240b714e5fd280f03b7b4fbb8fe6f58dcea572f1258671c7d42748c76097ed
Hash type: User Password with MAC verification (slower solution, no false positives)
$bitlocker$1$16$212afe1afbb733f18b043338d85c4744$1048576$12$80ad0e8486ead60103000000$60$01c1f4b616a85eecbd9d090ba2f0cbf5642f6591ff2abdf1df84e3fc33240b714e5fd280f03b7b4fbb8fe6f58dcea572f1258671c7d42748c76097ed
Hash type: Recovery Password fast attack
$bitlocker$2$16$b044a4ad4fc868f736d0baf7ef47a9ea$1048576$12$80ad0e8486ead60106000000$60$58fe021061ac9673d8925324f7a353043381445679ab17420c05c408a728775c3fde50f1333b720a876dab4cc850e29078aa257dab9f4f690be0fb81
Hash type: Recovery Password with MAC verification (slower solution, no false positives)
$bitlocker$3$16$b044a4ad4fc868f736d0baf7ef47a9ea$1048576$12$80ad0e8486ead60106000000$60$58fe021061ac9673d8925324f7a353043381445679ab17420c05c408a728775c3fde50f1333b720a876dab4cc850e29078aa257dab9f4f690be0fb81

image-20210119143922423

找一下bitlocker对应哈希类型

hashcat --help

image-20210119121802404

用个工具里带的字典,感谢th31nk师傅

hashcat -m 22100 common_8k.txt

跑出结果后加--show查看

image-20210119140451598

得到密码12345678

这边看了盖乐希师傅的博客,说用第二种进行,我这边尝试了第一种hash也是可以的(还发现了jtr自带的字典)

image-20210119142415977

第三种和第四种,hashcat会识别不了

取证

用diskgenius在回收站里找到两个pdf,打开较大的那个就可以看到

image-20210119144401766

puzzle

gaps尝试了一下,试了很多参数发现拼不出来

google了一下原图,想到DDCTF的拼图技巧,把给的图片切片一下和原图进行对比

image-20210123111943360

上次DDCTF大师傅们的脚本利用一下

import cv2
from PIL import Image
import numpy as np
import os
import shutil
import threading
# 读取目标图片(原图)
source = cv2.imread(r"C:UsersLEOGGDesktopwallpaper.jpg")
# 拼接结果
target = Image.fromarray(np.zeros(source.shape, np.uint8))
# 图库目录(切片后的1100张图片)
dirs_path = r"C:UsersLEOGGDesktop	est	est"
# 差异图片存放目录(跑的时候生成的图片)
dst_path = r"C:UsersLEOGGDesktopdddiff"
def match(temp_file):
    # 读取模板图片
    template = cv2.imread(temp_file)
    # 获得模板图片的高宽尺寸
    theight, twidth = template.shape[:2]
    # 执行模板匹配,采用的匹配方式cv2.TM_SQDIFF_NORMED
    result = cv2.matchTemplate(source, template, cv2.TM_SQDIFF_NORMED)
    # 归一化处理
    cv2.normalize(result, result, 0, 1, cv2.NORM_MINMAX, -1)
    # 寻找矩阵(一维数组当做向量,用Mat定义)中的最大值和最小值的匹配结果及其位置
    min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
    target.paste(Image.fromarray(template), min_loc)
    return abs(min_val)
class MThread(threading.Thread):
    def __init__(self, file_name):
        threading.Thread.__init__(self)
        self.file_name = file_name
    def run(self):
        real_path = os.path.join(dirs_path, k)
        rect = match(real_path)
        if rect > 6e-10:
            print(rect)
            shutil.copy(real_path, dst_path)
count = 0
dirs = os.listdir(dirs_path)
threads = []
for k in dirs:
    if k.endswith('jpg'):
        count += 1
        print("processing on pic" + str(count))
        mt = MThread(k)
        mt.start()
        threads.append(mt)
    else:
        continue
# 等待所有线程完成
for t in threads:
    t.join()
target.show()
# 跑出来后的图片
target.save(r"C:UsersLEOGGDesktopdd.jpg")

image-20210123111920748

flag{you_can_never_finish_the}

免责声明:文章转载自《*CTF2021 Misc部分wp》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇(转)postman安装及简单使用ADC/DAC的一些参数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

分布式算法(一致性Hash算法)

转载:https://www.cnblogs.com/moonandstar08/p/5405991.html 一、分布式算法     在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(...

前端路由跳转基本原理

什么是前端路由? 前端路由,就是一个前端不同页面的状态管理器,可以不向后台发送请求而直接通过前端技术实现多个页面的效果。 单页路由跳转模式有两种: 哈希模式(利用hashchange 事件监听 url的hash 的改变) history模式(使用此模式需要后台配合把接口都打到我们打包后的index.html上) 1.哈希模式的原理:hashChang...

用Javascript进行HTML转义(分享)

  众所周知页面上的字符内容通常都需要进行HTML转义才能正确显示,尤其对于Input,Textarea提交的内容,更是要进行转义以防止javascript注入攻击。   通常的HTML转义主要是针对内容中的"<",">","&",以及空格、单双引号等。但其实还有很多字符也需要进行转义。具体的可以参考这篇文章。   ** 1、HTML转...

利用MySQL数据库如何解决大数据量存储问题?

提问:如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如何做,对于一个存储设计,必须考虑业务特点,收集的信息如下:1.数据的容量:1-3年内会大概多少条数据,每条数据大概多少字节; 2.数据项:是否有大字段,那些字段的值是否经常被更新; 3.数据查询SQL条件:哪些数据项的列名称经常出现在WHERE、GROUP BY、...

面试题:HashSet、TreeSet 和HashMap 的实现与原理

说下 TreeSet 和 HashSet 什么区别呢? 它们的区别点主要在他们的底层数据结构不同,HashSet 使用的是 HashMap 来实现,而 TreeSet 使用的是 TreeMap 来实现的。 哦?那你了解 HashMap 和 TreeMap 的区别吗? HashMap 是一个最常用的数据结构,它主要用于我们有通过固定值(key)获取内...

mysql分区方案的研究

笔者觉得,分库分表确实好的。但是,动不动搞分库分表,太麻烦了。分库分表虽然是提高数据库性能的常规办法,但是太麻烦了。所以,尝试研究mysql的分区到底如何。 之前写过一篇文章,http://www.cnblogs.com/wangtao_20/p/7115962.html 讨论过订单表的分库分表,折腾起来工作量挺大的,需要多少技术去折腾。做过的人才知道有多...