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

浙公網安備 33010602011771號