【电子取证】2024数证杯决赛团队赛——服务器取证

admin 2025年1月16日23:09:28评论30 views字数 7039阅读23分27秒阅读模式
【电子取证】2024数证杯决赛团队赛——服务器取证

1. 请写出服务器系统内核版本;(答案格式:1.1.1-11-abcdefe) (1.0分)【6.8.0-48-generic】

软件梭一梭

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20241221151845254

2. 请写出服务器的ens33网卡的ip地址; (1.0分)【10.172.29.128】

命令梭一梭

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20241221152326858

3. 请写出mysql数据库密码; (4.0分)【123568】

本来一直在修改原来的配置文件,但是改不好,那就加一个网卡吧

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20241221154816683

找**JAR**包

find / -name *.jar
【电子取证】2024数证杯决赛团队赛——服务器取证
image-20241221155757605

然后直接去找资源文件

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20241229120659797

4. 后台服务中注册中心的服务端口是多少?(答案格式:纯数字) (2.0分)【7000】

cloud.jar包含了注册中心,在application.properties的配置里包含了服务端口

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20241229122112964

5. 服务器nginx日志中,哪个ip访问系统最为频繁?(答案格式:6.6.6.6) (6.0分)【56.111.197.176】

先找到日志文件

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20241229124840148

写个统计脚本

import re
from collections import Counter

# 定义日志文件路径
log_file_path = 'access.log'

# 定义一个用于解析日志文件的正则表达式
log_pattern = r'(d+.d+.d+.d+)'

# 用于存储所有IP的列表
ip_list = []

# 读取日志文件并提取 IP 地址
with open(log_file_path, 'r'as file:
for line in file:
        match = re.search(log_pattern, line)
if match:
            ip_list.append(match.group(1))

# 使用 Counter 统计各个 IP 地址出现的次数
ip_counter = Counter(ip_list)

# 按照出现次数从高到低排序
sorted_ips = ip_counter.most_common()

# 输出排序后的 IP 地址和出现次数
for ip, count in sorted_ips:
    print(f'{ip}{count}')

输出:

C:Users…………AppDataLocalProgramsPythonPython37环境Scriptspython.exe C:/Users/…………/Desktop/Nginx日志IP统计脚本.py
56.111.197.176: 141
108.61.53.181: 136
168.52.88.71: 135
13.164.183.8: 135
85.172.4.14: 134
79.151.190.48: 134
165.63.25.252: 133
33.42.1.167: 133
14.14.249.49: 132
………………太多了不展示了
33.113.14.46: 71
201.92.129.106: 68

进程已结束,退出代码0

6. 请写出平台管理员密码加密算法;(答案格式:aes) (3.0分)【MD5】

搜素一些关键词:管理员后台这一些

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20241229130749647

7. 假设某管理员密码是123456,请问该管理员的密码在数据库中存储的值是多少?(答案格式:如有字母,全大写) (5.0分)【985eb5b028065701341a478a9215e7b2】

盐值在配置文件里面定义了

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20241229130942908

赛博厨师    md5(123456+md5key)

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20241229131125423

8. 已知某人卖出了5.2个ETH/USDT,请问他的二级推荐人可以获得多少个ETH佣金?(答案格式:写出数字即可,保留小数点后5位) (6.0分)【0.00001】

搜索佣金定位源码

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114130742838

然后AI理解代码

定位promoteReward函数

二级佣金=手续费X0.1%
手续费=交易金额X手续费率
【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114131416129

需要找到这个two代表什么

由于源码中是reward,在查找数据库表也要找reward相关的表,方便快速查找

不知道为什么navicat在看表的时候有一些数据为1的表显示数据为0

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114131607677

然后找手续费率

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114132743753

最后就是5.2X0.001X0.001=0.0000052,保留后五位为就是0.00001

9. 请找到受害人“王涵”的手机号; (1.0分)

根据前文找到的数据库用户名和密码,直接连接数据库,扒就行了

【电子取证】2024数证杯决赛团队赛——服务器取证

10. 请写出嫌疑人的违法交易网站的中文名称;(答案格式:2个汉字) (3.0分)【币严】

找到网站端口是8801

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20241229131843138

这里记得要先运行admin文件夹和cloud文件夹里面的两个restart.sh,不然就会出现验证码和登录状态码502

./restart.sh

然后修改数据库admin表里面的密码,就用上面题目的123456

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114084458329

这里如果使用本机登陆的话,就什么都不需要修改了

如果是外部登陆的话,需要按照初赛的操作,修改web目录的IP为虚拟机IP

此时还是不行,查看error.log发现admin的转发是转发到10.172.29.128:6010

2025/01/14 08:16:47 [error] 25972#25972: *1 connect() failed (111: Unknown error) while connecting to upstream, client: 127.0.0.1, server: coin_exchange, request: "GET /admin/captcha?cid=ADMIN_LOGIN HTTP/1.1", upstream: "http://10.172.29.128:6010/admin/captcha?cid=ADMIN_LOGIN", host: "127.0.0.1:8801", referrer: "http://127.0.0.1:8801/"
2025/01/14 08:16:47 [error] 25972#25972: *1 connect() failed (111: Unknown error) while connecting to upstream, client: 127.0.0.1, server: coin_exchange, request: "POST /admin/system/employee/login HTTP/1.1", upstream: "http://10.172.29.128:6010/admin/system/employee/login", host: "127.0.0.1:8801", referrer: "http://127.0.0.1:8801/"
2025/01/14 08:26:41 [error] 5444

这明显不对,所以我们还需要去nginx.conf修改代理部分的配置文件,使其转发到我们本机的6010端口

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114085134746

然后使用用户名和修改之后的密码登录

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114085234258

11. 请写出数据库中Recharge表的status字段中,0代表的中文含义; (1.0分)【未到账】

这里通过数据表里和网站后台数据对应,发现应该是已到账

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114101436568
【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114101450654

给1改成0,显示未到账

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114101723934

12. 平台中所有账户中ETH余额最多的地址是多少?(答案格式:0x123F...) (6.0分)【0x2c8d0ff224e79b296f00714933ef8be09d4d28f2】

有点小蒙,因为数据库里面都是0,而且虚拟币这东西都是靠区块链的,应该不太可能存到数据库里,不然太容易被改了,所以应该先做下一个题目

做完下一个题目

先运行起来start.sh,然后解锁账户

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114110708617

AI跑一个脚本

// 获取所有账户
let accounts = eth.accounts;

// 检查是否有账户
if (accounts.length === 0) {
    console.log("No accounts found.");
else {
    // 初始化一个变量来存储最大余额及其对应账户
let maxBalance = 0;
let highestAccount = "";

    // 遍历所有账户,获取余额
    accounts.forEach(function(account) {
let balance = web3.fromWei(eth.getBalance(account), "ether"); // 获取账户余额并转换为 ether
        console.log("Account: " + account + ", Balance: " + balance + " ETH");

        // 如果该账户余额大于当前最大余额,更新最大余额和账户
if (parseFloat(balance) > maxBalance) {
            maxBalance = parseFloat(balance);
            highestAccount = account;
        }
    });

    // 输出余额最高的账户及其余额
    console.log("Account with highest balance: " + highestAccount);
    console.log("Balance: " + maxBalance + " ETH");
}

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114111613113

跑出来的结果和他们的不一样,不知道为什么,我做出来的结果就是这样

13. 区块链搭建工具是?(答案格式:abcd) (1.0分)【ethereum】

桌面有一个project,发现运行脚本,看一看

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114105241487

欧克,geth命令查一查

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114105117554

14. 区块链对外提供的的http端口是? (2.0分)【8545】

先运行起start.sh

然后查看端口,题目问的是对外提供的,那就是下面的8545

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114112332550

15. 服务器网站数据库使用的字符集为?(答案格式:如有字母,请小写) (1.0分)【utf8mb4】

连上数据库直接看

SHOW VARIABLES LIKE 'character_set%';
【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114112813670

16. 由于服务器定时清理了交易数据,请找寻整个区块链中最大的交易金额(答案格式:0x123F...) (6.0分)

还是跑脚本吧

var blockNumber = 1996;  // 当前最新区块号
var maxAmount = 0;
var maxTx = null;

// 设置查询范围,查询最近2000个区块
for (var i = blockNumber; i >= Math.max(0, blockNumber - 2000); i--) {
    var block = eth.getBlock(i, true);  // true 表示获取区块中的所有交易
    block.transactions.forEach(function(tx) {
        var valueInEther = web3.fromWei(tx.value, 'ether');  // 将交易金额转换为以太坊单位
if (valueInEther > maxAmount) {
            maxAmount = valueInEther;
            maxTx = tx;
        }
        console.log("交易量: " + valueInEther + " ETH, 交易哈希: " + tx.hash);  // 输出交易量和哈希
    });
}

console.log("最大交易金额: " + maxAmount + " ETH");
console.log("最大交易的哈希: " + maxTx.hash);

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114115231818

17. 请写出嫌疑人在chrome上使用的钱包名称;(答案格式:如有字母全小写) (2.0分)【metamask】

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114115436417

18. 请写出chrome钱包插件使用的pbkdf2加密算法的轮次;(答案格式:纯数字) (4.0分)【600000】

第一次发现插件也可以检查看前端代码

这个东西跟取密码验证逻辑一样,通过报错找到源码,再分析源码

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114122222522

定位过来

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114122401035

敲一个断点调试一下

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114122610821

找到param是600000

19. Chrome钱包密码的算法中对iv的加密方式是什么?(答案格式:如有字母请小写,如md5) (4.0分)【aes-gcm】

在上题往上的部分是包含对iv的加密方式,在这里打个断点

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114122948857

找到“AES-GCM”

20. 已知服务器中嫌疑人的钱包登录密码为八位纯数字生日1994****,请写出该密码; (6.0分)【19940822】

在data加密的部分下断点,接获数据

【电子取证】2024数证杯决赛团队赛——服务器取证

根据已知的东西,用AI跑一个脚本

from Crypto.Cipher import AES
import base64
import hashlib

# 输入已知数据
salt = base64.b64decode("fhlH2383hn7sqEKiLN8zSqv/F/v9x0s3xj/1zBI1zkA=")
iv = base64.b64decode("oi49chysOL0hAXfqbviWIA==")
data = base64.b64decode("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==")

# 遍历所有月份(01 到 12)和日期(01 到 31),生成可能的密码
for month in range(113):
for day in range(132):
# 格式化月份和日期,确保为两位数字
        month_str = f"{month:02d}"
        day_str = f"{day:02d}"

# 生成可能的密码(1994MMDD)
        password = f"1994{month_str}{day_str}"

# 计算PBKDF2生成的密钥
        key = hashlib.pbkdf2_hmac('sha256', password.encode(), salt, 600000, dklen=32)

# 使用AES-GCM解密
        cipher = AES.new(key, AES.MODE_GCM, nonce=iv)
try:
# 尝试解密,仅验证密码是否正确
            cipher.decrypt_and_verify(data[:-16], data[-16:])
            print(f"成功解密,密码为:{password}")
break
except ValueError:
# 如果解密失败,跳过
continue

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114130315174

爆破出来试试

【电子取证】2024数证杯决赛团队赛——服务器取证
image-20250114133458811

齐活!!!

【电子取证】2024数证杯决赛团队赛——服务器取证

原文始发于微信公众号(云淡纤尘):【电子取证】2024数证杯决赛团队赛——服务器取证

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月16日23:09:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【电子取证】2024数证杯决赛团队赛——服务器取证https://cn-sec.com/archives/3627216.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息