2022长安杯赛后复现

【2022第四届“长安杯”电子数据取证竞赛】赛后复盘_哔哩哔哩_bilibili

 检材一

 1 检材1的SHA256值为

直接对检材进行哈希计算

 2 分析检材1,搭建该服务器的技术员IP地址是多少?用该地址解压检材2

查看该服务器的登录日志

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

查看记录操作系统发行版本号的特定文件

查看 Linux 发行版名称和版本号的 8 种方法_chuixue24的博客-CSDN博客_linux查看发行版本

搜索centos-release文件

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

5 检材1中,网站jar包所存放的目录是 

 6 检材1中,监听7000端口的进程对应文件名为

试用jd-gui反编译分析jar包

 7 检材1中,网站管理后台页面对应的网络端口为

这里我比赛时是在检材二中的微信缓存图片中找到的

 其实可以从网站构建配置文件里发现

 8 检材1中,网站前台页面里给出的APK的下载地址是

这题我比赛时是在源码里翻到的二维码图片

 扫描出来

 访问这个网址就会下载一个apk安装包,就是后面的锁机软件了

实际上我发现在微信缓存图片的网站前台图片里也有提示app下载

 当然这题也可以把网站搭建起来查看

9 检材1中,网站管理后台页面调用的用户表(admin)里的密码字段加密方式为?

分析admin-api这个jar包

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

检材二

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

 

12 检材2中,除检材1以外,还远程连接过哪个IP地址?并用该地址解压检材3 

检材一的ip为172.16.80.133,所以还连接过172.168.80.128

 13 检材2中,powershell中输入的最后一条命令是

powershell取证 查看历史命令记录文件

Windows Powershell相关(历史命令、命令)_shu天的博客-CSDN博客_powershell历史命令

搜索ConsoleHost_history.txt

 14 检材2中,下载的涉案网站源代码文件名为

找浏览器下载记录

15 检材2中,网站管理后台root账号的密码为 

在浏览器有登陆过网站后台,记录了密码

 16 检材2中,技术员使用的WSL子系统发行版本是

这题我比赛时做的方法时搜索os-release,找到记录操作系统发行版本的文件

但实际上这题安装有两个wsl子系统

但是使用的是20.04,我们找到安装的子系统的目录

 可以看见22.04的目录只有8条记录,20.04有很多记录,所以使用的必然是20.04

实际上22.04的版本并未安装

或者仿真用命令wsl -l -v

17 检材2中,运行的数据库服务版本号是

注意这题问的是运行的,所以去子系统中分析

 18 上述数据库debian-sys-maint用户的初始密码是

Ubuntu 20.04.3 下设置MySQL8.0的初始密码_HWSTARS的博客-CSDN博客

debian-sys-maint是mysql8.0的一个默认用户,默认密码在debian.cnf文件

 19 检材3服务器root账号的密码是

检材三

20 检材3中,监听33050端口的程序名(program name)为 

systemctl status docker  查看docker状态是否启动
systemctl start docker 启动docker
netstat -anptl 查看端口进程

 21 除MySQL外,该网站还依赖以下哪种数据库

查看历史命令

history | grep mongodb
history | grep redis

 22 检材3中,MySQL数据库root账号的密码是

检材一中的admin-api这个jar包里有

或者

 查看docker-compose.yml文件

23 检材3中,MySQL数据库在容器内部的数据目录为 

同上题       /var/lib/mysql

24 涉案网站调用的MySQL数据库名为

结合后面的题我们知道有数据被删除了

在历史记录中发现删除了/data/mysql下的b1,同时在检材二中可以找到b1

 打开是一个数据库,所以调用的数据库就是b1

或者在数据库日志文件也可以发现调用的是b1数据库

25 勒索者在数据库中修改了多少个用户的手机号? 

分析数据库日志

 26 勒索者在数据库中删除的用户数量为

27 还原被破坏的数据库,分析除技术员以外,还有哪个IP地址登录过管理后台网站?用该地址解压 检材

这个解压密码可以爆破出来,利用PasswareKitForensic,自己用print写一个172.16.80.0-255和192.168.60.0-255的字典

分析数据库日志

或者查看b1数据库

28 还原全部被删改数据,用户id为500的注册会员的HT币钱包地址为

用数据库取证工具分析b1数据库

进行数据分析后找到

29 还原全部被删改数据,共有多少名用户的会员等级为'LV3' 

 然后再看删除的用户中有多少等级为3

6+158就是164位了

这里要注意,有可能用户等级并不和这里的member_grade_id对应,所以要去网站上看,这里我暂时没有重构网站,之后再看

30 还原全部被删改数据,哪些用户ID没有充值记录

 查找balance为0的用户

31 还原全部被删改数据,2022年10月17日总计产生多少笔交易记录?

SELECT * FROM member_transaction WHERE create_time BETWEEN "2022-10-17 00:00:00" AND "2022-10-17 23:59:59"

32 还原全部被删改数据,该网站中充值的USDT总额为

 检材四

33 嫌疑人使用的安卓模拟器软件名称是

夜神模拟器的备份系统文件是npbk后缀

对检材四解压

直接分析vmdk,或者可以直接用夜神模拟器导入vmdk文件,打开手机分析

34 检材4中,“老板”的阿里云账号是

 35 检材4中安装的VPN工具的软件名称是

或者

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

 或者

37 检材4中,录屏软件安装时间为 

 38 上述录屏软件中名为“s_20221019105129”的录像,在模拟器存储中对应的原始文件名为

打开软件找到录像,其视频长16s

 根据时间线判断

找到一个0c2f5dd.....的文件,其路径正好是在录频app的数据目录下

用播放器打开比对是一样的

 这里正确做法是分析其数据库

 在record.db数据库可以找到记录

39 上述录屏软件登录的手机号是 

同样在数据库里找,这里要用到db browser for sqlite

因为在取证工具只能看db文件,不能看wal文件

40 检材4中,发送勒索邮件的邮箱地址为

加/解密程序

41 分析加密程序,编译该加密程序使用的语言是

在检材二里可以找到该程序

 导出用ida分析,Shiift+F12查看字符串,可以看见有很多py

或者用die

42 分析加密程序,它会加密哪些扩展名的文件? 

https://www.jianshu.com/p/9f35a6f7ba05

参考博客先进行反向解析

 43 分析加密程序,是通过什么算法对文件进行加密的?

异或

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

pubkey = '-----BEGIN PUBLIC KEY-----\nMIIBIzANBgkqhkiG9w0BAQEFAAOCARAAMIIBCwKCAQEAx5JF4elVDBaakgGeDSxI\nCO1LyyZ6B2TgR4DNYiQoB1zAyWPDwektaCfnvNeHURBrw++HvbuNMoQNdOJNZZVo\nbHVZh+rCI4MwAh+EBFUeT8Dzja4ZlU9E7jufm69TQS0PSseIiU/4Byd2i9BvIbRn\nHLFZvi/VXphGeW0qVeHkQ3Ll6hJ2fUGhTsuGLc1XXHfiZ4RbJY/AMnjYPy9CaYzi\nSOT4PCf/O12Kuu9ZklsIAihRPl10SmM4IRnVhZYYpXedAyTcYCuUiI4c37F5GAhz\nRDFn9IQ6YQRjlLjuOX8WB6H4NbnKX/kd0GsQP3Zbogazj/z7OM0Y3rv3T8mtF6/I\nkwIEHoau+w==\n-----END PUBLIC KEY-----\n'

 45 被加密文档中,FLAG1的值是

 加密勒索apk程序

 46 恶意APK程序的包名为

这个程序在之前我们知道就是网站前端二维码下载下来的那个apk

在检材中也能找到

 直接分析

 看结果

 47 APK调用的权限包括

48 解锁第一关所使用的FLAG2值为 

打开jadx反编译

先搜索一波flag

private void OooO00o() {
        int i2 = App.OooO0OO.getInt("unlocked", 0);
        if ((i2 & 4) != 0) {
            this.OooO0OO.setText("哎呀,第三关都通过了,恭喜恭喜,现在你的手机已获得自由!");
            this.OooO0Oo.setVisibility(8);
            this.OooO0o0.setVisibility(8);
        } else if ((i2 & 2) != 0) {
            this.OooO0OO.setText("你是怎么通过第二关的???不过还有第三关,现在你手机里任何文档,压缩包,图片,视频都已被加密,请再次联系QQ:90001234进行解密");
            this.OooO0Oo.setOnClickListener(this);
            this.OooO0o0.setHint("输入解密文件的key");
            this.OooO0o0.setText("");
        } else if ((i2 & 1) != 0) {
            this.OooO0OO.setText("居然通过了第一关,不过还有第二关在等着你,现在你的手机在接下来的时间,会每隔一段时间关闭屏幕,请再次联系QQ:90001234进行解除,期间请勿尝试任何手段破解,否则将触发自毁程序");
            this.OooO0Oo.setOnClickListener(this);
            this.OooO0o0.setHint("FLAG3:XXXXXXXX");
            this.OooO0o0.setText("");
        } else {
            this.OooO0OO.setText("恭喜,你的手机已被锁,请联系QQ:90001234进行解决,期间请勿尝试任何手段破解,否则将触发自毁程序");
            this.OooO0Oo.setOnClickListener(this);
            this.OooO0o0.setHint("FLAG2:XXXXXXXX");
            this.OooO0o0.setText("");
        }
    }

 下面一关一关看,找对应的if判断,第一关代码里直接有FLAG2

"FLAG2:MATSFRKG".equals(trim2) //判断你输入的是否和FLAG2:MATSFRKG相等

再看第二关

else if (App.OooO0O0.OooO0oo.equals(this.OooO0o0.getText().toString()) && App.OooO0OO.edit().putInt("unlocked", App.OooO0OO.getInt("unlocked", 0) | 2).commit()) {
                    StringBuilder OooO0OO2 = C0261o0000Oo.OooO0OO(App.OooO0OO.getString("flag16_tkey", ""));
                    OooO0OO2.append(App.OooO0O0.OooO0oo);
                    if (App.OooO0OO.edit().putString("flag16_tkey", OooO0OO2.toString()).commit()) {
                        App.OooO0Oo();
                        System.out.println("delay lock screen close");
                        OooO00o();

 找一下OooO0是哪里来的

this.OooO0oo = new String(decrypt(OooO0O0.OooO0O0("ffd4d7459ad24cd035611b014a2cccac")));

他是加密了ff4d...这一字符串得来的,这里要编写apk输出,没搞会

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

暂时不会

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值