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

posted @ 2024-12-09 15:49  WXjzc  阅读(476)  评论(1编辑  收藏  举报