2024数证杯决赛团体
请根据计算机以及内存检材,回答以下问题: (17道题,共54.0分)
1. 计算机中曾挂载的bitlocker加密的分区的驱动器号为?(答案格式:大写字母,如C) (2.0分)
先找到对应的虚拟磁盘
仿真直接挂载就能看到,还有一个挂载起来是X盘
结果为V
2. 分析计算机和内存检材,计算机中的Bitlocker加密分区的恢复密钥后6位为?(答案格式:123456) (4.0分)
结果为432267
3. 计算机中通过向日葵接收的最后一个文件名称为?(答案格式:需带后缀名,如Abc.doc) (4.0分)
通过日志查找
结果为我们走在大路上.doc
4. 计算机中加密容器8df84968a5b8c4d072c4daa4fd02cb19的解密密码为? (2.0分)
先找到文件
同目录下有一个word文档,尾部有密码
结果为ppnn13%323658970YYZZ
5. 接上题,计算机中曾挂载的该加密容器分区中最后访问的文件,其文件名为?(答案格式:需带后缀名,如Abc.doc) (2.0分)
从快速访问中可以看到这个容器之前挂载的是Q盘
去看recent的历史记录\Users\admin\AppData\Roaming\Microsoft\Windows\Recent\
结果为d7ed12489b9f8b521db78d121badbe83.jpg
6. 请找到计算机中MD5值为2EA4D8A203F6CAFBDA0F6947EE2F0FE5的文件,写出其文件内容;(答案格式:需与实际一致,且涉及符号的部分半角全角需与实际一致) (4.0分)
正常做法是给利用磁盘快照计算每个文件的哈希值,然后通过md5值去过滤。不过我发现这个EFS好像后面也没有问,索性先算一下这个的哈希
仿真不绕密,密码是Zhang123
结果为好好学习!
7. 计算机中sharisun520@hotmail.com在2010年5月11日收到的邮件附件图片中的联系电话为? (6.0分)
找到这份邮件
这个邮件的附件xways没法正确解析,看一下内容,base64编码后还进行了异或
结果为087864898788
8. 计算机中MD5值为E653DF74D36008353C88F5A58B8F9326的文件是从哪个网址上下载的?(答案格式:http://abc/...) (1.0分)
算好哈希过滤一下,既然是下载的话可以在下载目录里找,更快一些
还是和个人一样洋葱浏览器
结果为http://suprbaydvdcaynfo4dgdzgxb4zuso7rftlil5yg5kqjefnw4wq4ulcad.onion/attachment.php?aid=3909
9. 计算机中2024年11月12日 11:23:25访问的暗网网址为?(答案格式:http://abc/...) (1.0分)
过滤对应的时间戳
结果为http://suprbaydvdcaynfo4dgdzgxb4zuso7rftlil5yg5kqjefnw4wq4ulcad.onion/Thread-The-Guess-The-Movie-game
10. 请找到嫌疑人曾经接收的文件“DefeatedJoyousNightingale.pdf“,计算其SHA-256值;(答案格式:如遇字母全大写) (6.0分)
结果为B4380011D8C1E4AB6CCCA1380CE81F9B9144EA8D06E9814210D63A959B74E6E3
11. 计算机中包含由两个字母、五个数字、“CW”和四个数字组成的内容的文件名是?(答案格式:需带后缀名,如Abc.doc) (3.0分)
正则匹配(不知道为什么取证大师没匹配到)
结果为CheerfulSuperDonkey.text
12. 请写出计算机中系统分区上文件系统的卷序列号;(答案格式:全部8字节,小端序,忽略空格,如FA33C08ED0BC007C) (2.0分)
注意要8字节的小端序
结果为D466CEF666CED7EE
13. 计算机中最后接入的U盘的卷标名称是什么?(答案格式:如abcd111A) (5.0分)
注册表查看,挂载的是一个金士顿的优盘
找到卷标名
结果为xing120G
14. 计算机中程序wordpad.exe一共运行了多少次?(答案格式:请直接写数字,如6) (1.0分)
结果为2
15. 计算机内存中正打开的图片中的动物为?(答案格式:直接写出动物名称,如狗) (4.0分)
psscan看到进程,微软照片
memprocfs找到这个进程的minidump,然后用gimp来调偏移,位移看感觉调,高度设置高一点都没啥,最关键的是宽度,建议从1080开始往下调,直到出现比较清晰的图像
结果为猫
16. 计算机内存中本地浏览器使用哪个端口连接到了184.30.21.38?(答案格式:纯数字) (2.0分)
结果为50391
17. 计算机内存中极速浏览器最后浏览的网址的登录密码?(答案格式:与实际大小写需一致) (5.0分)
memprocfs指定forensic=4模式,然后可以找到user/AppData/Temp/vmm.sqlite3
如果要问具体时间,那么时间格式是WindowsFileTime
登录密码可以通过passware来获取
结果为Zhang333
请根据手机检材,回答以下问题: (9道题,共34.0分)
1. 分析手机检材,请找出嫌疑人的手机号; (2.0分)
结果为13023161693
2. 分析手机检材,嫌疑人曾经访问的公共服务后台管理系统的URL是?(答题格式:https://abc/...) (4.0分)
浏览器里找半天,最后结合截图在QQ浏览器里找到。。
结果为https://ggfw.ynylbz.cn/manage/#/login?redirect=%2FHome
3. 分析手机检材,找出嫌疑人在笔记中记录的接头地点;(答案格式:需与实际完全一致) (4.0分)
自带的笔记里没有数据,看看第三方的,有个自由笔记,安装到模拟器后,将备份里的文件拷贝到相应的目录,如db其实是databases,f其实是files
结果为上海市浦东新区木兰花路666号
4. 分析手机检材,找出嫌疑人的接头暗号;(答案格式:需与实际完全一致) (6.0分)
如果接头暗号打开是空白的,那么就把数据多覆盖几次,随缘(我没成功)
或者用小米手机还原备份,也可以看到,但不好截图,不放了
结果为送你一朵小红花
5. 分析手机检材,找出嫌疑人10月23日开的腾讯会议的入会密码; (2.0分)
存在备份嵌套
没有发会议密码
发现id不连续,应该是有删除的内容
索引库里没有找到,恢复这块不懂啊,直接看
结果为201808
6. 分析手机检材,找出嫌疑人公司即将发布的新产品型号;(答案格式:需与实际大小写完全一致) (4.0分)
8位数字爆破
结果为AeroX-900
7. 分析手机检材,找到嫌疑人曾经发送的项目前期资料文件,计算其SHA256;(答案格式:如遇字母全大写) (4.0分)
这个不是在嵌套的备份里的
该文件内嵌了一个表格
结果为2425440B48170763AEA97931D806249A298AFAC72A4BED92A6494E6789ACDA19
8. 分析手机检材,嫌疑人曾进行过一次交易,请问嫌疑人与转账的接收者什么时候成为好友?(答案格式:2021-01-01 01:01:01) (2.0分)
支付宝抽空逆一下数据库密钥
结果为2024-10-23 15:33:21
9. 分析手机检材,写出嫌疑人钱包账户的导入时间;(北京时区,答案格式:1990-01-01 01:01:01) (6.0分)
metamask的files里面的persist-root
,老伙计了
或者用b3nguang
提交的解析插件
结果为2024-11-22 17:18:30
请根据服务器检材,回答以下问题: (20道题,共65.0分)
1. 请写出服务器系统内核版本;(答案格式:1.1.1-11-abcdefe) (1.0分)
系统带GUI,仿真的时候多给点内存
结果为6.8.0-48-generic
2. 请写出服务器的ens33网卡的ip地址; (1.0分)
配了静态IP,有GUI改这个设置也很简单
结果为10.172.29.128
3. 请写出mysql数据库密码; (4.0分)
可以找到网站项目
找到密码
验证一下
结果为123568
4. 后台服务中注册中心的服务端口是多少?(答案格式:纯数字) (2.0分)
结果为7000
5. 服务器nginx日志中,哪个ip访问系统最为频繁?(答案格式:6.6.6.6) (6.0分)
dic = {}
with open(r"C:\Users\Administrator\Downloads\192.168.71.155\202412091134\access.log.1",'r',encoding='utf8') as f:
lines = f.readlines()
for line in lines:
ip = line.strip().split(" ")[0]
if ip in dic:
dic[ip] += 1
else:
dic[ip] = 1
sorted_dic = sorted(dic.items(), key=lambda item: item[1], reverse=True)
print(sorted_dic[0])
#('56.111.197.176', 141)
结果为56.111.197.176
6. 请写出平台管理员密码加密算法;(答案格式:aes) (3.0分)
可以找到是md5,加了盐
盐值从配置文件里拉
找到这个盐值就可以替换密码了
结果为md5
7. 假设某管理员密码是123456,请问该管理员的密码在数据库中存储的值是多少?(答案格式:如有字母,全大写) (5.0分)
结果为985EB5B028065701341A478A9215E7B2
8. 已知某人卖出了5.2个ETH/USDT,请问他的二级推荐人可以获得多少个ETH佣金?(答案格式:写出数字即可,保留小数点后5位) (6.0分)
搜索佣金跳转,就可以找到promoteReward
方法
这里是二级推荐人
计算比例从这里拿,需要去查看数据库
其中的two是0.1
需要注意的是,在进行费率计算时,费率需要进行除法运算
所以0.1就变成了0.001
而传入的fee,则是通过交易计算的,同样要看数据库
最后计算5.2*0.001*0.001=0.0000052
可以把代码扣出来跑一下进行验证
package org.example;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Map;
public class Main {
public static void main(String[] args) throws Exception {
System.out.println(BigDecimalUtils.getRate(new BigDecimal("0.1")));
BigDecimal turnover = new BigDecimal("0.001");
BigDecimal fee = turnover.multiply(new BigDecimal("5.2"));
BigDecimal reward = BigDecimalUtils.mulRound(fee, BigDecimalUtils.getRate(castToBigDecimal("0.1")), 8);
System.out.println(reward);
}
public static BigDecimal castToBigDecimal(Object value) throws Exception {
if (value == null) {
return null;
}
if (value instanceof Float) {
if (Float.isNaN(((Float) value).floatValue()) || Float.isInfinite(((Float) value).floatValue())) {
return null;
}
} else if (value instanceof Double) {
if (Double.isNaN(((Double) value).doubleValue()) || Double.isInfinite(((Double) value).doubleValue())) {
return null;
}
} else {
if (value instanceof BigDecimal) {
return (BigDecimal) value;
}
if (value instanceof BigInteger) {
return new BigDecimal((BigInteger) value);
}
if ((value instanceof Map) && ((Map) value).size() == 0) {
return null;
}
}
String strVal = value.toString();
if (strVal.length() == 0 || strVal.equalsIgnoreCase("null")) {
return null;
}
if (strVal.length() > 65535) {
throw new Exception("decimal overflow");
}
return new BigDecimal(strVal);
}
}
结果为0.0000052
9. 请找到受害人“王涵”的手机号; (1.0分)
结果未15780139471
10. 请写出嫌疑人的违法交易网站的中文名称;(答案格式:2个汉字) (3.0分)
重构注意一下前端的api的ip设置,和初赛一个套路
find ./ -type f -exec sed -i 's/127.0.0.1/192.168.71.155/g' {} +
修改完之后,还需要注意nginx的转发配置,原本是http://admin
,需要修改一下重启nginx
之后就可以完成登录,密码可以用之前生成的去替换
结果为币严
11. 请写出数据库中Recharge表的status字段中,0代表的中文含义; (1.0分)
看表格的ddl
结果为未到账
12. 平台中所有账户中ETH余额最多的地址是多少?(答案格式:0x123F...) (6.0分)
数据库中没有数据,桌面里有一个项目
这里其实给出了一些需要用到的函数,问问ai然后写一下(运行start.sh就进控制台了)
结果为0x928f5963c03340077a8d2375657fb3395fe4a790
13. 区块链搭建工具是?(答案格式:abcd) (1.0分)
结果为geth
14. 区块链对外提供的的http端口是? (2.0分)
运行一下看到
结果为8545
15. 服务器网站数据库使用的字符集为?(答案格式:如有字母,请小写) (1.0分)
结果为utf8mb4
16. 由于服务器定时清理了交易数据,请找寻整个区块链中最大的交易金额(答案格式:0x123F...) (6.0分)
这边要问一下ai怎么操作,才能去拿到数据
按照格式的话其实题目可能想问的是交易哈希?
结果为0xbb218c4bd443824260673a92b575f6c249085b6e482d89f1445fdb4ba487b9f2
17. 请写出嫌疑人在chrome上使用的钱包名称;(答案格式:如有字母全小写) (2.0分)
结果为metamask
18. 请写出chrome钱包插件使用的pbkdf2加密算法的轮次;(答案格式:纯数字) (4.0分)
右键检查,打开开发者工具
搜索pbkdf2
但是搜索出来有很多轮次,不确定是哪个,所以要调试一下,登录看回显
找位置下断点
结果为600000
19. Chrome钱包密码的算法中对iv的加密方式是什么?(答案格式:如有字母请小写,如md5) (4.0分)
就看这个断住的部分
结果为aes-gcm
20. 已知服务器中嫌疑人的钱包登录密码为八位纯数字生日1994****,请写出该密码; (6.0分)
看堆栈,找到上面的m,在m中先调用了p得到计算出输入后的密钥
之前下断点可以得到ivoi49chysOL0hAXfqbviWIA==
,saltfhlH2383hn7sqEKiLN8zSqv/F/v9x0s3xj/1zBI1zkA=
,data4OBSCQ3fpgiiQG1CUT2KVKU9Sma1ixgcZ1xBb+XeQXlX9yFbyj6HgpPH4vKktB39FPVD5wlV0fFrKkrB4YvkwS4y0P2y15GrSMvJ7ZPV2FdT+o7/s9ydryf4j/dvWssWhlpIf8+Z/GTWxrd0pEKCumJ0SgM7pNCn+LPufqgAAc8Phk1V2G78YFFn27hoPalU+mfyLirBvbcNCe7PZhUEf02OB9HJxc6NL8VGHZ0mugf8CMCU4CfoMWBjGB358XwYgqVCAYfPeP612BcqH/2qGsf4v5MUynaoWjR3CDxg6z5n/SzvayET9KxzpnP5/YwrI1Kr6KSuX8hfWa4G7Qect7gRcJ5OSP9vjDAE0Oa7+2RoOvSuDhONrit9JD1j3PlF/HLHjCWcAxFPAqQHnaXHUT7+O/UR/nHBBUjwZqXcA3NvY6Up9gEyp7v252JKw/ybv9PYsNVBNNzaOCHM+2vLu4AEdhsJjEmzz1BMnl2a10lX3PIxT6g+eVdHNVOkeESS7Xiufrh1BNEXemU+/Mj8zOzC8X3sC+h7k6V+j8FO5gFFIsGVsehmhjQ0g3hv5OjHLu+8UbJ19HVC6nzyopbHF1EbgVc4bEfnsqxpBQT4xGY27MQLFa2SlcpRpue1NpZWdhV2C8/wTSBmcgnm3PHWgvBiuA==
,4位数字爆破即可
from base64 import b64decode
from Crypto.Protocol.KDF import PBKDF2
from Crypto.Cipher import AES
from Crypto.Hash import SHA256
data = "4OBSCQ3fpgiiQG1CUT2KVKU9Sma1ixgcZ1xBb+XeQXlX9yFbyj6HgpPH4vKktB39FPVD5wlV0fFrKkrB4YvkwS4y0P2y15GrSMvJ7ZPV2FdT+o7/s9ydryf4j/dvWssWhlpIf8+Z/GTWxrd0pEKCumJ0SgM7pNCn+LPufqgAAc8Phk1V2G78YFFn27hoPalU+mfyLirBvbcNCe7PZhUEf02OB9HJxc6NL8VGHZ0mugf8CMCU4CfoMWBjGB358XwYgqVCAYfPeP612BcqH/2qGsf4v5MUynaoWjR3CDxg6z5n/SzvayET9KxzpnP5/YwrI1Kr6KSuX8hfWa4G7Qect7gRcJ5OSP9vjDAE0Oa7+2RoOvSuDhONrit9JD1j3PlF/HLHjCWcAxFPAqQHnaXHUT7+O/UR/nHBBUjwZqXcA3NvY6Up9gEyp7v252JKw/ybv9PYsNVBNNzaOCHM+2vLu4AEdhsJjEmzz1BMnl2a10lX3PIxT6g+eVdHNVOkeESS7Xiufrh1BNEXemU+/Mj8zOzC8X3sC+h7k6V+j8FO5gFFIsGVsehmhjQ0g3hv5OjHLu+8UbJ19HVC6nzyopbHF1EbgVc4bEfnsqxpBQT4xGY27MQLFa2SlcpRpue1NpZWdhV2C8/wTSBmcgnm3PHWgvBiuA=="
salt = "fhlH2383hn7sqEKiLN8zSqv/F/v9x0s3xj/1zBI1zkA="
iv = "oi49chysOL0hAXfqbviWIA=="
iteration = 600000
for month in range(1, 13):
for day in range(1, 32):
password = f"1994{month:02}{day:02}"
key = PBKDF2(password, b64decode(salt), dkLen=32, count=iteration, hmac_hash_module=SHA256)
cipher = AES.new(key, AES.MODE_GCM, nonce=b64decode(iv))
decrypted_data = cipher.decrypt(b64decode(data))
print(f"decrypted_data------------>{decrypted_data}")
print(f"passowrd------------------>{password}")
成功进入钱包
结果为19940822
(请勿在真机上运行或分析该ex)请根据exe检材,回答问题: (9道题,共29.0分)
1. 通过分析恶意程序,找出运行该软件必要的参数是?(答案格式:--xxx-xxx) (2.0分)
结果为--access-token
2. 该程序为了控制控制最大并发数,在注册表中设置了MaxMpxCt参数,请给出设置参数的具体值。(答案格式:纯数字) (2.0分)
strings
结果为65533
3. 该程序运行过程中会创建新的分区磁盘,请写出该分区磁盘一级目录中的文件名。(答案格式:如有字母请大写) (2.0分)
结果为RECOVER-CVZ8N37-FILES.TXT
4. 该程序获取计算机名时使用的kernel32库函数是什么?(答案格式:kernel32.xxx) (2.0分)
结果为kernel32.GetComputerNameW
*5. 根据该程序的加密过程逻辑,已知加密文件后缀为cvz8n37,且系统中存在core_code.c文件,请写出程序在加密该文件前生成的文件名。(答案格式:xxx.cvz8n37) (3.0分)
*6. 该程序在提权过程中会申请多项Windows权限,请写出尝试申请的第三项权限名。(答案格式:答案格式需与实际一致) (4.0分)
硬猜
结果为SeLoadDriverPrivilege
7. 该程序运行过程中获取UUID时的完整命令为?(答案格式:"D:\xxx\...\xxx.exe" xx "xxx xxx xxx xxx" (4.0分)
结果为"C:\Windows\system32\cmd.exe" /c "wmic csproduct get UUID"
*8. 该程序存在着默认配置文件,在该配置文件中默认不加密且文件后缀为sys的文件名是?(答案格式:包含后缀名,如xxxx.sys) (4.0分)
*9. 请写出该程序加密文件过程中,生成私钥函数返回值内"chipher"键对应的值。 (6.0分)
请根据数据分析检材,回答以下问题: (6道题,共18.0分)
1. 分析数据库检材,请分别计算该数据库中每个用户审核通过的提现总金额,写出审核通过的提现总金额最大值; (2.0分)
结果为343916.84
2. 数据库中用户真实名称为“祝钦”的有效银行卡号是多少; (2.0分)
结果为72282800515037280116
3. 请计算数据库中地址在江苏省的启用用户数量; (2.0分)
结果为803
4. 请计算手机号字段中的号码数字“8”的数量大于等于3的用户数量; (4.0分)
没有要求校验手机号
import pymysql
connection = pymysql.connect(
host='localhost',
user='root',
passwd='root123',
charset='utf8',
database='tuanti'
)
cursor = connection.cursor()
sql = 'select tel from user_info;'
cursor.execute(sql)
result = cursor.fetchall()
cnt = 0
for v in result:
phone = v[0]
if phone.count('8') >= 3:
cnt += 1
print(cnt)
# 2810
结果为2810
5. 计算每个用户审核通过的总提现金额与其总消费金额的比值,该比值大于等于0.5的用户数量是多少? (4.0分)
结果为323
6. 计算uid为“20257”的用户的下线最大层级数是多少(自己为第1层,若用户A是自己的直接下线,那么此时用户A所在层级=2); (4.0分)
查询uid和parent,保存到文件中,并添加第一行内容
因为0是手动添加的,所以每个用户的所处层级都要减去1才是正确的,不过不会影响下线层数
结果为24