2022长安杯wp

本文详细解析了2022年第四届长安杯电子数据取证竞赛的题目,涉及服务器镜像分析、检材解密、数据库挖掘等多个环节,通过逆向工程、日志解析等技术揭示了诈骗网站背后的运作机制,包括网站管理后台端口、数据库信息、加密算法等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2022第四届长安杯电子数据取证竞赛题解报告
原创,作者Xmin

背景

某地警方接到受害人报案称其在某虚拟币交易网站遭遇诈骗,该网站号称使用“USTD币”购买所谓的“HT币”,受害人充值后不但“HT币”无法提现、交易,而且手机还被恶意软件锁定勒索。警方根据受害人提供的虚拟币交易网站调取了对应的服务器镜像并对案件展开侦查。

检材1

1. 检材1的SHA256值为
火眼打开之后计算出希哈值:9E48BB2CAE5C1D93BAF572E3646D2ECD26080B70413DC7DC4131F88289F49E34
2. 分析检材1,搭建该服务器的技术员IP地址是多少?用该地址解压检材2
这个该怎么找,具体有两种办法,但是都是从登录日志来看,首先是把检材1仿真出来然后查看最近的登录日志

last | less

![[图片]](https://img-blog.csdnimg.cn/68010c740b3345c58e6586719ca23ca6.png在这里插入图片描述
登录的ip是172.16.80.100
在一个是使用证据分析软件分析然后分析–>linux基本信息–>登录日志
从里面的摘要里面看到登录的ip是172.16.80.100
[图片]
Linux日志解析里面也有
[图片]

3. 检材1中,操作系统发行版本号为

cat /etc/redhat-release

[图片]

Cntos Linux release 7.5.1804 (Core)

4. 检材1系统中,网卡绑定的静态IP地址为

 ifconfig

[图片]

172.16.80.133

5. 检材1中,网站jar包所存放的目录是(答案为绝对路径,如“/home/honglian/”)
分析–>Linux基本信息–>历史命令
分析历史命令可以得知网站的jar包在/web/app里面
[图片]

6. 检材1中,监听7000端口的进程对应文件名为
解这道题可以把app里面的jar包都跑起来看看,看看哪个jar包运行之后监听了7000端口
答案是cloud.jar
[图片]

要分析完五个jar包才得出答案!
7. 检材1中,网站管理后台页面对应的网络端口为(答案填写阿拉伯数字,如“100”)
到这里,我们已经找到网站的jar包了,但是我们没有网站的启动脚本(从历史命令里可以得知他被root删除了),这时候网站的启动需要经过很多调试,操作很复杂,这也是这次长安杯留下的第一个坑。但是进入第二个检材之后就可以在磁盘里找到启动脚本
在检材2仿真的虚拟机中的Google浏览器里面有网站后台的登录页面,端口是9090
[图片]

再一个,从取证工具里面也能看到管理员后台的端口是9090
[图片]

8. 检材1中,网站前台页面里给出的APK的下载地址是(答案格式如下:“https://www.forensix.cn/abc/def”)
7·8两个题都需要把网站启动起来
从文件里面发现了一千多张图片文件,我直接搜索了app的文件名,有若干个二维码,其中就有一个叫app_andraio.png的二维码,怀疑这就是apk下载二维码,但是没有找出网址
用手机扫码之后可以知道网址是https://pan.forensix.cn/f/c45ca511c7f2469090ad/?dl=1
另外还可以把二维码down下来,然后从cyberchef解密一下
在这里插入图片描述

https://pan.forensix.cn/f/c45ca511c7f2469090ad/?dl=1

9. 检材1中,网站管理后台页面调用的用户表(admin)里的密码字段加密方式为?
admin-api.jar进行逆向分析,我们在什么都不知道的情况下,有几个思路:一个是先从数据库里面来看,但是要推进到第三个检材之后才能看到这个库,推进到这个库,看到数据库是32位后搜一下md5,看有多少个调用了md5这个值,所以在这可以进行一个search的操作
在这里可以看到对md5key的加密处理,这种办法是在知道关键词之后。
但是在分析过程中就能直接找到好几个题目的答案,包括密码字段的加密方式为md5
[图片]

10. 分析检材1,网站管理后台登录密码加密算法中所使用的盐值是

XehGyeyrVgOV4P8Uf70REVpIw3iVNwNs

逆向分析得出

检材2

11. 检材2中,windows账户Web King的登录密码是

135790

直接用火眼取证打开就能看到密码
12. 检材2中,除检材1以外,还远程连接过哪个IP地址?并用该地址解压检材3
在Xshell的历史命令记录里面,在ssh的历史命令输入里面都能找到
[图片]

172.16.80.128

13. 检材2中,powershell中输入的最后一条命令是
打开windows powershell 然后按一下上键,,,,,
[图片]

答案是ipconfig
14. 检材2中,下载的涉案网站源代码文件名为
在Google浏览器的下载记录里面
[图片]

ZTuoExchange_ famework-master.zip

15. 检材2中,网站管理后台root账号的密码为
可以在火眼里面解析出来
[图片]

密码是root
16. 检材2中,技术员使用的WSL子系统发行版本是(答案格式如下:windows 10.1)

wsl -l -v

[图片]

还可以从APPdata/local/packages/canonical
[图片]

17. 检材2中,运行的数据库服务版本号是(答案格式如下:10.1)

8.0.30

[图片]

18. 上述数据库debian-sys-maint用户的初始密码是
这个初始密码是什么是会保存在一个配置文件里的在rootfs/etc/mysql里面,可以找到一个diban.cnf,把这个文件导出来就能找到初始密码:ZdQfi7vaXjHZs75M
[图片]

[图片]

19. 检材3服务器root账号的密码是
嫌疑人曾经通过远程连接过服务器root账号h123456
[图片]

检材3

20. 检材3中,监听33050端口的程序名(program name)为
首先把docker打开

systemctl start docker

然后

netstat -napt

[图片]

答案是docker-proxy
21. 除MySQL外,该网站还依赖以下哪种数据库
21.22.24题都可以通过对检材1的逆向得出答案
[图片]

22. 检材3中,MySQL数据库root账号的密码是
第一种方法是对检材1的逆向
[图片]

第二种方法是查看镜像的元数据
[图片]

23. 检材3中,MySQL数据库在容器内部的数据目录为
这是这次考试一个重要的考点,docker-compose的yml文件。从历史记录分析可以得出嫌疑人曾经多次查看这个文件
[图片]

得知此文件在目录/data/mysql里面,进入查看得知
[图片]

数据目录为/var/lib/mysql/
24. 涉案网站调用的MySQL数据库名为
对检材1逆向分析得知
[图片]

SQL数据库名为b1
25. 勒索者在数据库中修改了多少个用户的手机号?(答案填写阿拉伯数字,如“15”)
这个时候找到检材2的D盘,在D盘中可以找到数据库b1,还能看到start.sh 和 start_web.sh两个启动脚本,此时把这两个文件发给负责建服务器的队友。
[图片]

老师还贴心的放了一个建站笔记
[图片]

在检材3的后端文件的删改记录里面可以看到一个开头为8eda的log文件,这里面就是数据库的数据修改记录,搜索关键词delet和update,找出修改了手机号的用户和删除的用户。搜索update之后就能找到修改手机号的记录,update b1 member set phone_number··,计数之后出现了五次匹配的结果,一个一个的查看了一下,有两次是更新的登陆时间,所以修改手机号的次数应该是3次!
26. 勒索者在数据库中删除的用户数量为(答案填写阿拉伯数字,如“15”)
在log文件中可以搜索到有批量删除的记录,delete from b1 member··,记数一下有28个
另外,利用数据库分析工具
在检材2中,分析出了数据库b1,但是有两个,选中其中一个然后点数据库分析可以使用工具对数据库进行分析。
[图片]

so,
[图片]

用工具打开数据库文件之后,发现了三个表与题目关联度比较大,一个是交易记录,第二一个是用户钱包,第三一个是用户表。比对分析发现用户表的数据量比用户钱包少了28个,初步怀疑是被删除了。
[图片]

进一步分析发现id为973-1000的用户被删掉了,当时脑子不管事算成了1000-973=27,提交之后不能改了555😭应该是1000-972=28。白白浪费了十分,,
27. 还原被破坏的数据库,分析除技术员以外,还有哪个IP地址登录过管理后台网站?用该地址解压检材4
[图片]

在数据库分析工具打开的表格中能找到一个登录日志,除了技术员的ip(通过检材1已知)还有172.16.80.197登录了管理后台的网址。
28. 还原全部被删改数据,用户id为500的注册会员的HT币钱包地址为
用工具打开之后直接找到用户钱包的数据,然后找到了id=500的钱包地址
[图片]

cee631121c2ec9232f3a2f028ad5c89b

29. 还原全部被删改数据,共有多少名用户的会员等级为’LV3’(答案填写阿拉伯数字,如“15”)
[图片]

通过member_grade这个表了解到等级是三的用户的grade_code=3
[图片]

但是到用户表之后是mamber_grade_id,这里很难办,于是赌了一把,mamber_grade_id=3等级就是3,然后导出之后筛选出有158人,当时到这里就结束了,完全没有考虑剩下的28个人,,,,于是正确地的出来了这个错误答案。。
正确答案164
30. 还原全部被删改数据,哪些用户ID没有充值记录(答案填写阿拉伯数字,多个ID以逗号分隔,如“15,16,17”)
此题超简单,反而比前面几个简单一些,钱包的表格里直接筛选出了balance等于0的两个人。318,989
[图片]

31. 还原全部被删改数据,2022年10月17日总计产生多少笔交易记录?(答案填写阿拉伯数字,如“15”)
在交易表格member_transection里面有五千多条交易记录,筛选出10月17日的交易记录一共1000条
[图片]

在这里有一点,导出数据的时候要选正常数据
[图片]

否则导出后再筛选会多了(选所有数据),要注意这几个选项的区别,幸好当时是选了仅正常数据,所以得出了是1000,万幸哈哈哈
32. 还原全部被删改数据,该网站中充值的USDT总额为(答案填写阿拉伯数字,如“15”)
直接计算一个总和就可以啦
[图片]

得出来了40822800,当时以为这个就是答案了,可是又比对了一下,每个后面都带俩零,又看一眼题目问的是USDT总额,又是问的充值的,又去另一个表做了求和
[图片]

原来真错了,是408228

检材4

33. 嫌疑人使用的安卓模拟器软件名称是
解压出来是一个后缀是npbk的文件,百度一下是要用夜神模拟器打开,所以嫌疑人使用的是夜神模拟器。
34. 检材4中,“老板”的阿里云账号是
把npbk文件解压之后出来一个vmdk文件,可以直接用火眼取证工具进行分析,从老板的微信聊天记录里面可以看到老板的阿里云账号是forensixtech1
[图片]

35. 检材4中安装的VPN工具的软件名称是
在数据分析里面能找到vpn工具v2ryNG,还有节点信息
[图片]

36. 上述VPN工具中记录的节点IP是

38.68.135.18

[图片]

37. 检材4中,录屏软件安装时间为
从下载文件夹中找到了录屏软件下载时间
[图片]

2022-10-19 10:50:05

知道了下载时间从而推理一下安装时间,一定是比下载时间晚,晚几十秒的答案很可能是正确的
38. 上述录屏软件中名为“s_20221019105129”的录像,在模拟器存储中对应的原始文件名为
[图片]

在软件的数据库文件夹里面找到了相关的录屏软件

0c2f5dd4a9bc6f34873fb3c0ee9b762b98e8c46626410be7191b11710117a12d

39. 上述录屏软件登录的手机号是
在数据库文件夹里找到了record.dbrecord.db-wal,用db browser打开查看在moblie里面可以找到软件登录的手机号是18645091802
[图片]

在夜神模拟器种直接恢复手机,然后打开录屏软件,点注销账号能直接看到手机号
[图片]

40. 检材4中,发送勒索邮件的邮箱地址为
收件箱里有相关的勒索邮件
[图片]

skterran@163.com

exe分析

41. 分析加密程序,编译该加密程序使用的语言是
用ida反编译加密程序(在检材2的D盘中找到),查看字符串发现了很多py后缀,确定使用的语言就是python
在这里插入图片描述

42. 分析加密程序,它会加密哪些扩展名的文件?
对机密程序进行逆向分析,然后在py文件中能看到加密的扩展名文件类型
逆向脚本下载:https://sourceforge.net/projects/pyinstallerextractor/files/dist/pyinstxtractor.py/download?use_mirror=nchc
在线反编译:https://www.toolnb.com/tools/pyc.html
还有一个方法就是分别找这四种文件来试一下,看看能不能被加密。
[图片]

43. 分析加密程序,是通过什么算法对文件进行加密的?
逆向分析,使用的是异或加密
[图片]

44. 分析加密程序,其使用的非对称加密方式公钥后5位为?
[图片]

u+w==

45. 被加密文档中,FLAG1的值是(FLAG为8位字符串,如“FLAG9:QWERT123”)
同样的方法逆向解密程序后,发现密码没有被加密,所以直接运行输入密码就可以解密文件了
[图片]

[图片]

FLAG1的值:FLAG1:TREFWGFS

apk分析

46. 恶意APK程序的包名为
首先下载这个软件(在前面的网址下载)用雷电APP智能分析查看包名

cn.forensix.changancup

[图片]

47. APK调用的权限包括
静态权限里面分析得到
[图片]

48. 解锁第一关所使用的FLAG2值为(FLAG为8位字符串,如需在apk中输入FLAG,请输入完整内容,如输入"FLAG9:QWERT123")
使用雷电APP智能分析脱壳,然后进行jadx反编译
[图片]

直接搜索flag
[图片]

可以找到flag2
[图片]

FLAG2:MATSFRKG

49. 解锁第二关所使用的FLAG3值为(FLAG为8位字符串,如需在apk中输入FLAG,请输入完整内容,如输入"FLAG9:QWERT123")
刚才已经找到了程序的入口函数,找到了mainactivity,然后看看flag2周围的函数
[图片]

然后有一堆代码,好多个O,然后最终确定OooO0oo是要比对的值,看一下那个地方对这个值进行了定义
[图片]

找到了flag3的加密后的值,加密有两层
[图片]

第一层
[图片]

第二层native函数调用一个so文件对加密值进行解密然后与输入的值进行比较
所以说如果能把这些函数直接调用出来,然后执行一下直接输出,就能得到flag3
要直接调用一个安卓的工程,把代码执行下来,使用工具为Android studio
下载网址;https://developer.android.google.cn/studio/
[图片]

编写一个程序来输出FLAG3

FLAG3:TDQ2UWP9

50. 解锁第三关所需的KEY值由ASCII可显示字符组成,请请分析获取该KEY值
[图片]

限制输入24个字符串,然后分成四位一组分成六组数,
[图片]

无法对intevalue和inter转换,所以到这直接跳到下面的catch,
[图片]

经过catch后最终得到的这个值就是解密后的密文
在这里的思路是写脚本暴力破解,字典是键盘上能打出来的所有字符,一个一个比对最终解密出密码
还是使用Android studio来破解
[图片]

最终爆破出key=a_asd./1imc2)dd1234]_+=+

### 关于电子数据取证中注册表取证的方法和技术 #### 注册表的作用及其重要性 注册表是 Windows 系统用于存储计算机配置信息的核心数据库,其中包含了硬件和软件的配置详情、应用程序与文档文件之间的关联关系,以及网络状态和其他系统运行的关键参数[^2]。由于其记录的信息广泛而深入,因此在电子数据取证过程中,注册表成为了一个重要的证据源。 #### 注册表取证的主要目标 通过分析注册表的内容,可以获取到用户的活动痕迹、系统的启动项设置、已安装程序的历史记录以及其他可能隐藏的重要线索。这些信息对于重建事件的时间线、识别恶意行为或者验证合法操作具有重要意义[^1]。 #### 常见的注册表取证技术和方法 以下是几种常用的注册表取证技术: 1. **提取注册表文件** 使用专业的工具(如 FTK Imager 或 Encase)从目标机器上导出完整的注册表文件集 HIVEs (例如 `SAM`, `SYSTEM`, `SECURITY` 和 `NTUSER.DAT`) 到安全介质中以便进一步离线分析。 2. **解析二进制结构** 因为原始注册表是以复杂的二进制形式保存, 所以需要利用专门设计用来解读这种格式的应用程序来转换成可读文本格式供审查人员理解并查找潜在有用的数据条目. 3. **时间戳分析** 每个键值对都有创建时间和最后修改时间属性; 这些元数据可以帮助建立行动发生的确切时刻序列图谱从而支持因果推断过程. 4. **用户行为追踪** - 分析 NTUser.dat 可揭示特定账户登录期间执行过的命令历史. - 查看 Run/RunOnce 键下的项目列表能够发现自动加载的服务或程序是否存在异常情况. 5. **检测非法入侵迹象** 审核 Security hive 中的安全日志部分寻找未经授权访问尝试留下的蛛丝马迹比如失败的身份认证请求等信号提示可能存在黑客攻击风险. 6. **恢复删除项** 即使某些敏感信息被故意清除掉也可能仍然残留在未分配空间里等待我们去挖掘出来作为呈堂证供之用. 7. **脚本自动化处理** 对大量相似类型的案件采用 Python 脚本来批量完成重复性的任务提高效率减少人为错误几率如下所示是一个简单的例子展示如何遍历给定路径下所有的子健名: ```python import winreg as reg def get_subkeys(hive_key, subkey): try: key = reg.OpenKey(hive_key,subkey) i=0 while True: yield reg.EnumKey(key,i) i += 1 except Exception : pass for sk in list(get_subkeys(reg.HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft")):print(sk) ``` #### 总结 综上所述,在进行注册表取证时应综合运用多种手段相结合的方式来进行全面细致地探索每一个细节之处才有可能获得最接近真相的结果呈现给大家参考学习使用[^1].
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值