跳至正文

蓝帽杯2022 电子取证 Misc Writeup

Misc

domainhacker

7-zip双击后发现有压缩包(因为没有直接打开)

那就是要找密码了

后面发现在最后一个流,hacker 把 rar 下载了下来

追踪tcp流 image

截取部分搜索,发现和去年绿城杯的取证很像

直接效仿其去掉payload中疑似base64部分的前两位进行解密得到压缩包密码

image-1657356875361

找到密码了

image-20220709182510419

打开后是 mimikatz 的提取结果(流量里面有看到目录)

image-20220709182600761

这应该就是答案了

416f89c3a5deb1d398a1a1fce93862a7

因为次数不限,大不了把文件里所有hash都交一次,主要是忘存答案了(

domainhacker2

获取压缩包密码的方式同第一题 image-1657357000844

image-1657356980752

参考https://teamssix.com/210909-215110.html

https://www.freebuf.com/articles/network/251267.html

原本用的:QuarksPwDump.exe

image-20220709181440834

答案不太对

后来想起来我有hash suite

image-20220709181702747

三个答案都试了下

image-20220709181732025

结果都不对,然后转成小写,第二个是正确的,之后再深究下原因

电子取证

手机取证

第一问
image-20220709164514944

打开查看器直接搜索,右键导出

image-20220709164943295

得出答案

第二问

搜索快递,搜到了一堆广告

搜姜总发现skype里面有姜总其他地方没出现,所以仔细的看了下

私聊没东西,但后面拉了一个群

群内聊天记录发现快递单号

image-20220709165245676

计算机取证

第一问

将内存文件丢到Passware Kit Forensic

image-20220709165455580

得到密码 anxinqi

第二问

用vol看了下进程

image-20220709165630631

得知存在 TrueCrypt,有个名字疑似是 RAMCapture PID为2192

第三问

说了 bitlocker 那估计给的 E01 是 bitlocker 还是用 Passware Kit Forensic

image-20220709170035442

同时选中内存与磁盘文件

解密后用 OSFMount 挂载

image-20220709170138733

四个文件,office文件应该指的是第二个和第三个具体哪个不太清楚,

pass.txt 看起来是个字典,索性用 AOPR 跑,但是 AOPR 炸了,看着字典不厚时间还够就让队友手动爆破了

解的word 密码为:688561 pptx 密码为: 287fuweiuhfiute

最后在ppt中找到flag image-1657357392321

没看懂hint(指ppt密码错误)

第四问

看了下新建文件文档,看到题目写的 TrueCrypt 以及进程也有 TrueCrypt,所以估计也是用 Passware Kit Forensic

image-20220709171015939

应该是压根没有加密(?)

用 OSFMount 挂载

image-20220709171253840

有密码,但是没有其他线索,准备先爆破

image-20220709171932191

得到密码 991314

得到flag image-20220709171958369

程序分析

第一问

查看resources.arsc得到包名 image-20220709175658125

第二问

反编译classes.dex找到MainActivity程序入口 image-1657358692144

###

第三问

在主程序中找到一串base64 image-1657358853755

解码得到一个域名,确认为答案 image-1657358828151

###

第四问

搜索字符串“安全”找到如下位置,找到类名 image-1657359033049

网站取证

第一问

日常代码审计,逛到了 Temp

image-20220709172725902

居然火绒和在线杀软没扫描出来,表示不能理解

第二问

找到了 database.php

image-20220709172942617

密码被加密了,看下加密函数

直接找了个 PHP 在线编译

image-20220709173540735
第三问

继续审计,看到了个md5 和 key 这个 key 估计就是盐

image-20220709174203987

但后来发现其实就是个 key 毕竟是对称的

第四问

在 .sql 文件中找到汇率 , 交易 ,用户信息如下 image-1657357498569 image-1657357521264 image-1657357556871

题目要求的是张宝——> 王子豪,通过筛选ID(5,3)得到如下结果

f1 = open("1.txt","r")
f2 = open("2.txt","w")

for i in f1.readlines():

if "5, 3" in i:
f2.write(i)

image-1657357907192

由于交易的金额是加了密 ,而题目中刚好也提供了解密函数

function decrypt($data, $key = 'jyzg123456')
  {
       header('Content-type:text/html;charset=utf-8');
       $key = md5($key);
       $x = 0;
       $data = base64_decode($data);
       $len = mb_strlen($data);
       $l = mb_strlen($key);
       $char = '';
       $str = '';
       for ($i = 0; $i < $len; $i++) {
           if ($x == $l) {
               $x = 0;
          }
           $char .= mb_substr($key, $x, 1);
           $x++;
      }
       for ($i = 0; $i < $len; $i++) {
           if (ord(mb_substr($data, $i, 1)) < ord(mb_substr($char, $i, 1))) {
               $str .= chr((ord(mb_substr($data, $i, 1)) + 256) - ord(mb_substr($char, $i, 1)));
          } else {
               $str .= chr(ord(mb_substr($data, $i, 1)) - ord(mb_substr($char, $i, 1)));
          }
      }
       return $str;
  }

解密后得到每笔交易的金额如下

<?php
function decrypt($data, $key = 'jyzg123456')
{
   header('Content-type:textml;charset=utf-8');
   $key = md5($key);
   $x = 0;
   $data = base64_decode($data);
   $len = mb_strlen($data);
   $l = mb_strlen($key);
   $char = '';
   $str = '';
   for ($i = 0; $i < $len; $i++) {
       if ($x == $l) {
           $x = 0;
      }
       $char .= mb_substr($key, $x, 1);
       $x++;
  }
   for ($i = 0; $i < $len; $i++) {
       if (ord(mb_substr($data, $i, 1)) < ord(mb_substr($char, $i, 1))) {
           $str .= chr((ord(mb_substr($data, $i, 1)) + 256) - ord(mb_substr($char, $i, 1)));
      } else {
           $str .= chr(ord(mb_substr($data, $i, 1)) - ord(mb_substr($char, $i, 1)));
      }
  }
   return $str;
}
$handle = fopen('./2.txt', 'r');
while (false !== ($s = fgets($handle,1024))) {
   $a=strpos($s,"5, 3, '");
   $s=substr($s,$a+7);
   $a=strpos($s,"');");
   $s=substr($s,0,$a);
   echo decrypt($s)."\n";
}
image-1657358036262

最后计算金额

a_2 = 619677+381192+485632+827781+944010+870430+864838+659765+840888+862278+959308+375606+382351 #13
a_3 = 600886+668715+834416+786289+569887+927718+734944+934225+679480+953223 #10
a_4 = 405953+980190+230656+627978+512603+227386+886700+723220+672833+392757+980233 #11
a_5 = 477194+341676+897454+558132+196594+710565+852025+780278+268891 #9
a_6 = 939520+565792+302532+275989+362937+133285 #6
a_7 = 122920+422750+135300+749074+240723+291956+994093+681733+633757+706072+511209 + 507084 #12
a_8 = 434537+639097+401141+695796+192908+865109+372958+889941+309835+785010+933275+143084+967908 #13
a_9 = 771339+498613+619591+141964+860425+651757+723147 #7
a_10 = 590890+432183+556558+678067+973891+406772+886149+822340 #8
a_11 = 657058+966135+589766+311949+616394+214160+201001+981701+914356 #9
a_12 = 135514+578433+683899+334341+741263+138021 #6
a_13 = 316098+146481+485839+205327+731848+428202+160504+919123+818915 #9
a_14 = 333834+694827+511634+443100+224355+955410+143577 #7
a_15 = 229766+470887+915854+534098+714293+752857+599085+949860+759455 #9
a_16 = 178042+308810+687866+664921+529044+626792 #6
a_17 = 138977+278599+984190+525555+994453+753228+128063+978584 #8
a_18 = 238634+132052+724610+518820+517548+753126 #6


res = 0.04*a_2 + 0.06*a_3 + 0.05*a_4 + 0.07*a_5 + 0.10*a_6 + 0.15*a_7 + 0.17*a_8 + 0.23*a_9+0.22*a_10 + 0.25*a_11 + 0.29*a_12 + 0.20*a_13 + 0.28*a_14 + 0.33*a_15 + 0.35*a_16+0.35*a_17 + 0.37*a_18
print(res)
image-1657358351481

发表回复