首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >第六届蓝帽杯初赛

第六届蓝帽杯初赛

作者头像
故里[TRUE]
发布2023-04-19 20:32:42
发布2023-04-19 20:32:42
6040
举报

今天打了一天这个比赛,也是第一次接触取证题发现还可以接受,这个比赛拿了个稍微好点的成绩,但是身为web手两个web题都没写出来,说来有点惭愧,也进了半决赛,再接再厉吧

misc

domainhacker

流量导出数据压缩包

解压需要密码,在这找到base64解码

解压密码为SecretsPassw0rds

然后分析得到flag

flag{416f89c3a5deb1d398a1a1fce93862a7}

domainhacker2

首先流量分析获得base64加密的压缩命令,从中可以得到解压密码

即解压密码是FakePassword123$,解压压缩包发现是注册表文件

DSInternals将文件从 Active Directory 数据库中检索有关单个帐户的信息

代码语言:javascript
复制
$key = Get-BootKey -SystemHiveFilePath 'C:\Users\25963\Desktop\new\Active Directory\SYSTEM'
代码语言:javascript
复制
Get-ADDBAccount -ALL -DBPath "C:\Users\25963\Desktop\new\Active Directory\ntds.dit" -BootKey $key

得到flag为flag{07ab403ab740c1540c378b0f5aaa4087}

电子取证

手机取证_1

下载附件进去一把梭,直接搜索图片名得到图片

所以最终答案是360x360

手机取证_2

搜素姜总得到关键信息

所以结果是SF1142358694796

程序分析_1

先把附件进行反编译

代码语言:javascript
复制
apktool.bat d EXE.apk

得到AndroidManifest.xml,发现程序包名

即flag为exec.azj.kny.d.c

程序取证_2

继第一题,第二题,第一个显示的activity就是在xml配置中的入口,查看得到如下

代码语言:javascript
复制
<activity android:enabled="false" android:label="@string/app_w_name" android:name="minmtta.hemjcbm.ahibyws.MainActivity" android:screenOrientation="portrait">

即flag为minmtta.hemjcbm.ahibyws.MainActivity

程序分析_3

首先进行反编译,审计源码得到关键代码

分析后得服务器地址的密文就是aHR0cHM6Ly9hbnNqay5lY3hlaW8ueHl6

即flag

计算机取证_1

直接导出用户哈希,taqi7的hash值是7f21caca5685f10d9e849cc84c340528

代码语言:javascript
复制
volatility.exe -f 1.dmp --profile=Win7SP1x64 hashdump

解密得到开机密码

所以flag为anxinqi

计算机取证_2

先获取内存操作系统

代码语言:javascript
复制
volatility -f 1.dmp imageinfo

内存网络扫描,进程列举,审计进程确定是MagnetRAMCaptu.exe

即pid是2192

计算机取证_3

首先将1.dmp和G.E01放到Passware Kit Forensic 2021 v1 (64-bit)中进行解密并提取得到线索

发现ppt和word文档都需要密码,爆破word文档密码得到为688561

pptx密码为287fuweiuhfiute

输入发现只能只读模式打开,打开后得到flag

flag{b27867b66866866686866883bb43536}

网站取证_1

下载附件放D盾扫一下,得到assert后门一句话木马

所以flag是lanmaobei666

网站取证_2

www文件拉入vs审计,全局搜索password,经筛选发现database.php关键函数(pgsql数据库配置)

跟随函数,发现加密的密码

分析一下得到解密过程

密文先进行base64解密之后再进行AES解密,其中相关数据如下:

代码语言:javascript
复制
密文是$str = 'P3LMJ4uCbkFJ/RarywrCvA==';
密钥是$key = 'PanGuShi';
偏移量是   Iv(UTF-8):130f028b5c4b9e1b
填充采用ZeroPadding
模式采用CBC

解密后得到数据库连接的明文密码

所以flag为KBLT123

网站取证_3

首先通过数据库交易信息得到表名

锁定目标文件是WWW\application\admin\controller\Channelorder.php

审计发现关键key即为数据库金额加密混淆使用的盐值

即flag为jyzg123456

网站取证_4

分析数据库,发现张宝和王子豪分别是id3和id5,所以也就是id3转账id5,以这样的形式

代码语言:javascript
复制
INSERT INTO "public"."tab_channel_order_list" VALUES (3662, '307325933084', 'GG币', NULL, '2022-04-23 03:45:09', 4, 5, 'mpRrlWhm');

顺序是收款人–>付款人

同时在数据库文件内可以找到相关交易记录

将记录dump一下,并整理出3–>5的交易数据

这是相关汇率

发现整理太麻烦,直接脚本里加个过滤吧

代码语言:javascript
复制
import hashlib
import base64
def decrypt(data):
    data = base64.b64decode(data)
    mystr = ''
    for i in range(6):
        temp = data[i] - ord(key[i])
        mystr += chr(temp)
    # print(mystr)
    return mystr
key = hashlib.new('md5', b'jyzg123456').hexdigest()[:6]
# print(key)
bargain = [0.04, 0.06, 0.05, 0.07, 0.10, 0.15, 0.17, 0.23, 0.22, 0.25, 0.29, 0.20, 0.28, 0.33, 0.35, 0.35, 0.37]
fileme = open("./jy.txt", "r").readlines()
sum = 0
for i in fileme:
    if "', 5, 3, '" in i:
        temp = i.strip().split()
        date = int(temp[0][-2:])       
        data = temp[-1].replace('\'','')
        # print(date, data)
        sum += (int(decrypt(data)) * bargain[date-2])
        # print(sum)
        # input()
    else:
        pass
print(sum)

运行得到总和

即flag为15758353.760000002。交了发现不对,因为是rmb,只到小数点后两位,所以最终flag是15758353.76

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-092,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • misc
    • domainhacker
    • domainhacker2
  • 电子取证
    • 手机取证_1
    • 手机取证_2
    • 程序分析_1
    • 程序取证_2
    • 程序分析_3
    • 计算机取证_1
    • 计算机取证_2
    • 计算机取证_3
    • 网站取证_1
    • 网站取证_2
    • 网站取证_3
    • 网站取证_4
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档