取证全解 misc出了1个 解其他题就像在坐牢 有那么一点思路,但不是完全有
解压并打开阅读器,搜索627604C2-C586-48C1-AA16-FF33C3022159.PNG
右键导出相片,查看照片文件属性
得到结果为360x360
解压并打开阅读器,搜索关键字“单号”
在skype中找到单号为SF1142358694796
Passware Kit Forensic 选择内存镜像分析,勾选Windows用户进行分析
获取密码为anxinqi
取证大师内存工具分析,发现MagnetRAMCapture这个进程,这个软件是专门用来制作内存镜像的工具
得到结果为2192
Passware Kit Forensic 选择内存镜像和加密卷进行解密
获得未解密版镜像
查看磁盘信息,发现多个office文件均被加密,还有一个pass.txt,推测需要跑字典
导出pptx docx pass.txt
Passware Kit Forensic添加pass.txt字典
跑密码
打开ppt输入密码
得到结果flag{b27867b66866866686866883bb43536}
导出未加密镜像中的新建文本文档.txt
Passware Kit Forensic中添加内存镜像和新建文本文档.txt获得解密后的镜像
Ftk imager打开查看,找到一个压缩包
导出哈哈哈.zip 用Passware Kit Forensic爆破压缩密码
得到密码为991314
解压zip中的txt
得到flag{1349934913913991394cacacacacacc}
Jadx查看包名
得到结果exec.azj.kny.d.c
Jadx查看入口
得到结果minmtta.hemjcbm.ahibyws.MainActivity
审计代码,在入口发现了base64加密的数据,解密之后得到了一个地址
得到结果为aHR0cHM6Ly9hbnNqay5lY3hlaW8ueHl6
模拟器安装运行时有root检测提示,这就是安全检测
全局搜索关键字“root环境”
定位到代码,通过观察if语句,发现判断条件中均调用了d.a.a.c.a类下的方法a和b
查看d.a.a.c.a.a 发现用getRuntime检测系统运行环境
因此得到结果为a
代码审计,最后发现一句话木马
得到结果lanmaobei666
查看数据库配置文件,发现密码是my_encrypt()的返回值
定位到这个函数,添加代码输出返回的密码
得到密码
得到结果KBLT123
代码审计,最后观察到注释、得到信息
得到结果jyzg123456
分析sql文件,提取汇率和对应的日期
查看转账数据,看出收款人id在付款人id之前,最后一个字段通过之前查看到的加密代码可以推断出是交易金额的密文
查看王子豪和张宝的id分别 5,3
则可以提取到特征信息“5, 3”,通过这个特征信息可以定位到张宝对王子豪的所有汇款记录
网站中有解密代码,我们可以魔改一下代码,让其接收我们的密文传参并返回解密后的金额
客户端提取相关数据并向服务端发送请求,接收返回的数据并计算总金额
import requests #提取的日期对应的汇率 dir = {'2022-04-02': 0.04, '2022-04-03': 0.06, '2022-04-04': 0.05, '2022-04-05': 0.07, '2022-04-06': 0.10, '2022-04-07': 0.15, '2022-04-08': 0.17, '2022-04-09': 0.23, '2022-04-10': 0.22, '2022-04-11': 0.25, '2022-04-12': 0.29, '2022-04-13': 0.20, '2022-04-14': 0.28, '2022-04-15': 0.33, '2022-04-16': 0.35, '2022-04-17': 0.35, '2022-04-18': 0.37} with open("bak.sql","r",encoding="utf-8") as fr: read = fr.readlines() count = 0 total = 0 url = "http://localhost/public/1.php" for v in read: #匹配目标数据 if v.find("5, 3") != -1: #排除不在dir中的日期的汇款 if v.split(", ")[4].split(" ")[0][1:] in dir: #向服务器发送请求,参数是数据库中加密的金额数据 r = requests.get(url,params={"a":v.split(", ")[7][1:-4].encode('utf-8')}) #汇率 hui = dir[v.split(", ")[4].split(" ")[0][1:]] content = r.content.decode('utf-8') #计算总金额 total += int(content) * hui print(total) #total=15758353.76
服务端处理客户端发来的加密数据,解密后传回给客户端
<?php //接收参数,返回解密后的金额 $data = $_REQUEST["a"]; 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; } echo decrypt($data,$key = 'jyzg123456'); ?>
得到结果15758353.76
追踪http流发现webshell的通讯流量
编写脚本来解rce的命令
<?php header("Content-Type:text/html;charset=GB2312"); $envstr=@base64_decode(substr($_REQUEST[8],2)); echo $envstr; $p=base64_decode(substr("2VY21k",2)); echo("<br>".$p."<br>"); ?>
解出密码
获取mimikatz的log文件
得到结果为flag{416f89c3a5deb1d398a1a1fce93862a7}