【蓝帽杯2022】取证

本文最后更新于:2023年9月12日 下午

[TOC]

蓝帽杯2022取证

解压密码7(G?fu9A8sdgfMsfsdrfE4q6#cf7af0fc1c

手机取证

0x01.iPhone手机的iBoot固件版本号

用盘古手机取证打开苹果zip文件即可

iBoot-7429.62.1

image-20230910095839827

0x02.该手机制作完备份UTC+8的时间(非提取时间):(答案参考格式:2000-01-01 00:00:00)

image-20230910100523473

服务器取证

0x01.服务器在启动时设置了运行时间同步脚本,请写出脚本内第二行内容

首先我们可以使用

1
find / -name "*.sh"

寻找shell脚本

/root下找到time.sh脚本

我们查看一下:

img

应该杯gzexe加密过,所以我们加密一下:

1
gzexe -d time.sh

image-20230910103241467

/usr/sbin/ntpdate time.nist.gov

0x02.服务器在计划任务添加了备份数据库脚本,请写出该脚本的第二行内容。

首先使用crontab -l找出定时任务列表:

image-20230910110512983

查看一下,发现是乱码的,并且文件后缀为:.sh.x,是经过加密的

这个是shc加密,需要脚本解密:https://github.com/yanncam/UnSHc

./unshc.sh backup.sh.x

image-20230910110312769

0x03.使用宝塔linux面板的密码加密方式对字符串lanmaobei进行加密,写出加密结果。

宝塔密码加密的文件路径:/www/server/panel/class/users.py

image-20230912151631104

public.md5(public.md5(public.md5(args.password.strip())+'_bt.cn')+salt)

image-20230912151944460

先md5加密一次,然后值与_bt.cn拼接再md5两次

0x04.写出服务器中第一次登录宝塔面板的时间

在绝对路径:\www\server\panel\logs\request中可以找到宝塔面板的访问日志

image-20230912152603073

第一次login发包就是第一次登录时间

0x05.写出宝塔面板的软件商店中已安装软件的个数

执行命令 bt 11 && bt 12 && bt 13 && bt 23 关闭一些登录限制

否则需要认证,但是执行bt 23时会报错:

1
rm: 无法删除"/www/server/panel/config/basic_auth.json": 不允许的操作

原因是这个文件没有权限删除,执行命令 lsattr /www/server/panel/config/basic_auth.json

image-20230912153655308

这个i是代表不可修改权限,执行命令 chattr -i /www/server/panel/config/basic_auth.json && rm -rf /www/server/panel/config/basic_auth.json 和bt 23就可以关闭限制了

img

然后我们登录进去:

image-20230912153752122

总共有6个

0x06.写出涉案网站(维斯塔斯)的运行目录路径

/www/wwwroot/v9.licai.com/public

image-20230912154109184

我们可以在网页访问到robots.txt,在public目录下

image-20230912154143848

0x07.写出最早访问涉案网站后台的IP地址

在数据库中可以看到

image-20230912154517541

0x08.写出涉案网站(维斯塔斯)的“系统版本”号

这里我们需要进入后台,我们先查看管理员的账号密码:

image-20230912155639823

然后我们需要寻找后台地址,

image-20230912155821454

这里我们可以获得一个后台的路径AdminV9YY,具体的路径:

1
http://192.168.56.142/AdminV9YY/Login

但是登录不上去,

image-20230912155951939

所以我们可以修改登录逻辑,先找到该文件:

1
find /www/wwwroot/v9.licai.com -name "*.php" | xargs grep "密码不正确"

image-20230912160029304

修改一下:

image-20230912155605270

成功登录进去

image-20230912160153030

0x09.分析涉案网站的会员层级深度,写出最底层会员是多少层

在数据库中member表中,先找出上下级关联字段inviter,invicode,然后通过脚本实现递归,算出层级表

0x10.请写出存放网站会员等级变化制度的网站代码文件的SHA256值

还是直接查找:

1
find /www/wwwroot/v9.licai.com -name "*.php" | xargs grep "会员等级"

image-20230912160811088

可以使用python算:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import hashlib


def calculate_sha256(file_path):
# 创建一个 SHA-256 的哈希对象
sha256_hash = hashlib.sha256()

# 以二进制读取文件内容,并更新哈希对象
with open(file_path, 'rb') as file:
# 以较小的块读取文件,以减少内存消耗
for chunk in iter(lambda: file.read(4096), b''):
sha256_hash.update(chunk)

# 获取哈希值的十六进制表示
sha256_hex = sha256_hash.hexdigest()

return sha256_hex


# 计算文件的 SHA-256 哈希值
file_path = r'C:\Users\LIKE\Desktop\fsdownload\Memberrecharge.php'
sha256 = calculate_sha256(file_path)
print(f"SHA-256 哈希值: {sha256}")


# 18a011ab67c8c39a286607669211ab3961ddb4a63d29487b7b367b3174af5a78

0x11.计算向网站中累计充值最多的五名会员,获得的下线收益总和

memberrecharge中发现充值记录

image-20230912162111082

1
select userid,sum(amount) from memberrecharge where status=1 and type='用户充值' group by userid order by sum(amount) desc limit 5

moneylog中发现会员相关日志

image-20230912162513887

此处我们需要计算下线收益,所以我们查找一下:

1
select sum(moneylog_money) from moneylog where moneylog_notice like "%下线%" and moneylog_userid in (2,7,11,12,168)

image-20230912162822354

0x12.统计涉案网站中余额大于0且银行卡开户行归属于四川省的潜在受害人数量

可以在member数据库中找到:

image-20230912163516652

执行sql:

1
SELECT count(*) FROM `member` WHERE amount > 0 and bankaddress like "%四川省%"

image-20230912163829187

2人

0x13.统计平台从成立之初至“2021-07-01 23:59:59”共收益多少金额

用户成功总充值金额(不包括平台赠送)-用户成功总提现金额

首先查询一下用户总共充值了多少钱:

1
SELECT sum(amount) FROM `memberrecharge` where status = 1 and type like "%用户充值%" and updated_at < "2021-07-01 23:59:59" 

然后查询一下用户取出了多少钱:

1
SELECT SUM(amount) FROM `memberwithdrawal` where status = 1 and updated_at < "2021-07-01 23:59:59"

最后两个相减一下就好了,但是此处可以合并为一句:

1
select b.a-d.c from (SELECT sum(amount) a FROM `memberrecharge` where status = 1 and type like "%用户充值%" and updated_at < "2021-07-01 23:59:59" ) b , (SELECT SUM(amount) c FROM `memberwithdrawal` where status = 1 and updated_at < "2021-07-01 23:59:59") d

image-20230912165115429

0x14.统计涉案网站哪一天登录的会员人数最多

1
select count(DISTINCT(userid)),date_format(updated_at,"%Y-%m-%d") from memberlogs GROUP BY date_format(updated_at,"%Y-%m-%d") order by count(DISTINCT(userid)) desc

image-20230912170426383

0x15.写出涉案网站中给客服发送“你好,怎么充值”的用户的fusername值。(答案参考格式:lanmaobei666)

在/root目录下发现一个mysqldump.sql文件

导出:

image-20230912171307405

image-20230912171225105


【蓝帽杯2022】取证
https://leekosss.github.io/2023/09/10/[蓝帽杯2022]取证/
作者
leekos
发布于
2023年9月10日
更新于
2023年9月12日
许可协议