2021长安杯做题总结
写在前面
鼠鼠参加了长安杯,没想到连第七题的密码都没找出来,属实是太菜,哭哭了。硬生生的干坐了三个小时,最可笑的是做对的题竟然还没有蒙对的题多,想要技术过关,还需要继续学习!(WP暂时还不想写,最近的事比较多,期中考试,密码学习,美亚杯,各种各样的事情都需要去花时间去做,奈何时间不够又想要偷懒摸鱼,至少先一步一步来吧:( )
题目解析
检材一
2021年4月25日,上午8点左右,警方接到被害人金某报案,声称自己被敲诈数万元;经询问,昨日金某被嫌疑人诱导裸聊, 下载了某“裸聊”软件,导致自己的通讯录和裸聊视频被嫌疑人获取,对其进行敲诈,最终金某不堪重负,选择了报警;警 方从金某提供的本人手机中,定向采集到了该“裸聊”软件的安装包–zhibo.apk(检材一),请各位回答下列问题:(题目 中需要通过分析出来的答案对检材二三四五解压,解压密码为IP的情况,需要在密码后增加-CAB2021,例: 192.168.100.100-CAB2021)
1、请计算检材一Apk的SHA256值
答案:3fece1e93be4f422c8446b77b6863eb6a39f19d8fa71ff0250aac10f8bdde73a
2 、该APK的应用包名为
答案:plus.H5B8E45D3
我们使用雷电APP智能分析软件,分析检材中的APK文件
3 、该APK程序在封装服务商的应用唯一标识(APPID)为
答案:H5B8E45D3
4 、该APK具备下列哪些危险权限(多选题):
A.读取短信 B.读取通讯录 C.读取精确位置 D.修改通讯录 E.修改短信
答案:ABCDE
5、该APK发送回后台服务器的数据包含以下哪些内容(多选题):
A.手机通讯录 B.手机应用列表 C.手机号码 D.验证码 E.GPS定位信息
答案:ACDE
6、该APK程序回传通讯录时,使用的http请求方式为
答案:POST
7、该APK程序的回传地址域名为
8、该APK程序代码中配置的变量apiserver的值为
答案:http://www.honglian7001.com/api/uploads
9、分析该APK,发现该程序还具备获取短信回传到后台的功能,短信上传服务器接口地址为
答案:http://www.honglian7001.com/api/uploads/apisms
方法一:
在雷电智能分析APP里网络数据包一项,选中代理模式,对数据包进行分析
可得知此处获取了手机的通讯录、手机号码、验证码,以及手机型号
另一处调用了百度的API获取了GPS定位信息
方法二:
(本人技术不太行,只能得知回传通讯录时曾与www.honglian7001.com有过联系)
第6题和第7题都可以用抓包的方式解决,此处采用Fiddler,方法可参考:https://zhuanlan.zhihu.com/p/30355483
方法三:
我们可以通过源码分析获取答案
通过SOJSON解密可得
找到回传域名和变量apiserver的值
回传短信,可以知道短信回传服务器接口为 apiserver + ‘apisms’
10、敬分析,发现该APK在运行过程中会在手机中产生一个数据库文件,该文件的文件名为
答案:test.db
11、敬分析,发现该APK在运行过程中会在手机中产生一个数据库文件,该数据库的初始密码为
答案:c74d97b01eae257e44aa9d5bade97baf
雷电APP智能分析内置脚本数据库分析,直接调用即可
检材二
经过掌握的APK程序后台服务器回连地址,警方成功调取该服务器的镜像,请使用第7题的答案对检材二进行解压进行分析,
12、检材二的原始硬盘的SHA256值为:
答案:E6873068B83AF9988D297C6916329CEC9D8BCB672C6A894D393E68764391C589
13、查询涉案于案发时间段内登陆服务器的IP地址为
答案:192.168.110.203
14、请对检材二进行分析,并回答该服务器在集群中承担的主要作用是()
答案:负载均衡服务器(能理解作用,但确实说不出来这个术语)
什么是负载均衡?
负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。
15、上一题中,提到的主要功能对应的服务监听的端口为:
答案:80
16、上一题中,提到的服务所使用的启动命令为:
答案:node app.js
17、经分析,该服务对于请求来源IP的处理依据是:根据请求源IP地址的第()位进行判断
答案:3
18、经分析,当判断条件小于50时,服务器会将该请求转发到IP为()的服务器上
答案:192.168.110.111
19、请分析,该服务器转发的目标服务器一共有几台
答案:3
在检材2的仿真中查看history,发现嫌疑人曾经对ADProxy.js这个文件进行编辑,由于含有proxy(代理),故对其进行查看
这里代码的意思就是将例如192.168.1.2的IP地址按 ” . “ 进行分割存取成数组,选择其中的第三个数,即例子里的 1 进行判断,根据判断得出的结果分别发送到三台服务器中的其中一台。
20、请分析,受害者通讯录被获取时,其设备的IP地址为
答案:192.168.110.252
第20题和第21题主要考察对于日志的审计,在 /opt/honglianjingsai/chronusNode/logs
这个路径下保存了了服务器的日志,根据对于案发时间的判断,我们可以确定是在4.24这一天发生的(这里具体案发时间可以等后续查看手机,在手机取证时一些聊天软件的聊天记录中会有很准确的时间信息)
在这个日志文件里出现次数最多的几个ip地址分别是
1 | 192.168.110.203 |
其实通过排除法也能很快得到本题的答案,203是登录服务器的ip地址,113是请求转发的目标地址,那252就是本题的答案
如果不想通过排除法来做出此题,那更准确的时间判断就可以参考手机的聊天记录,再和日志中的时间相对照,也可以得到答案
21、请分析,受害者的通讯录被窃取之后,经由该服务器转发到了IP为()的服务器上
答案:192.168.110.113
检材三
22、检材三的原始硬盘的SHA256值为:
答案:205C1120874CE0E24ABFB3BB1525ACF330E05111E4AD1D323F3DEE59265306BF
23、请分析第21题中,所指的服务器的开机密码为:
答案:honglian7001
这道题最好还是用火眼证据分析大师来做,因为美亚对处理加密的检材方面比较吃力(或者说几乎没用)
在这里直接通过web3看到开机密码不太方便(乱码太多),可以先放一放,考虑通过检材的PC电脑通过XSHELL连接,会获得相关信息
金先生被骗的服务器的IP地址是192.168.110.113,从下图可以看到密码为honglian7001
24、嫌疑人架设网站使用了宝塔面板,请问面板的登陆用户名为:
答案:hl123
下面抄自galaxy的题解,长安杯2021赛题复现详解 - Ga1@xy’s Wor1d (ga1axy.top),访问密码 CAB-2021-123!@#
24题开始有几道题是涉及到宝塔面板相关知识和一些宝塔源码分析的题,在web3仿真起来后其实可以直接在虚拟机里看,但是由于他本身汉字编码的一些关系,会导致大量的乱码,看起来也很不舒服,所以我采用xshell连接的方式来进行
我们先讲一下如何用xshell连接到web3服务器的虚拟机,由于本身web3的网络配置是静态配置,并且题目架设的ip地址与实际我们做题环境不符,所以我们需要先修改web3的网络配置(web3我已经配好了,所以下面我拿web1演示)
首先我们需要知道服务器的网卡配置文件在哪,也就是我们part2一开始提到的
1 | /etc/sysconfig/network-scripts/ifcfg-ens33 |
在VMware的虚拟网络编辑器中开启DHCP,
我们先修改设置使得我们主机分配给虚拟机的C段符合题目背景,然后关闭DHCP
在虚拟机中执行 ifconfig
命令,我们可以发现默认网卡名称为 ens-160,但我们实际在 network-script 目录下并不能发现这个网卡配置文件,所以我们需要修改配置文件(如果你的网卡配置不是160,那就根据自己的实际情况进行修改)
首先查看当前网卡的UUID:uuidgen ens-160
先记住这个uuid,然后我们修改原配置文件的名称:mv ifcfg-ens33 ifcfg-ens160
改好名后对其中的配置进行编辑:vi ./ifcfg-ens160
上图中框起来的部分是需要我们注意的,NAME 和 DEVICE 两个参数改成 ens160
,UUID 改成我们刚刚获取的那个,IPADDR 不要改
改好后保存退出,重启网络服务:service network restart
这种情况下就已经配置好了,接下来就可以使用xshell连接我们的虚拟机了(关于xshell和xftp,一个用于远程指令,一个可以跟主机之间传输文件,端口就默认设置22就可以,下载的话有个人免费版)
回到题目,本题问宝塔面板的登录用户名,使用 bt default
命令即可查看
出现下面的这张图片,这个时候就已经连接成功了,下面我来说说我配置的时候与大佬的题解不一样的地方
第一个地方就是我在web3的时候发现默认网卡已经是enS33,就不需要像上面那样费力配置ENS160了,不过在配置完DHCP后,最好还是要在WEB3虚拟机上运行 service network restart
,如果遇到连接不上的情况,建议重启web服务器
第二个地方就是在个人电脑(不是PC虚拟机,我一开始理解错了)上运行Xshell时,要求输入虚拟机登陆密码,由于弘联火眼仿真已经将登陆密码修改成123456,所以输入honglian7001是无法登陆成功的(大佬请无视)
在这个时候在Xshell中输入 bt default
可以重置宝塔面板,同时也告诉了我们内网面板的网址,如果你的网络配置得当的话,在浏览器上输入 192.168.110.113:8888/12345678
即可进入宝塔的登陆界面,不过此时发现使用给出的密码无法登录。
我们在Xshell上输入 bt
可以看到宝塔的操作面板,修改面板的密码,再在浏览器内登录,即可发现成功进去了
25、请分析用于重置宝塔面板密码的函数名为
答案:set_panel_pwd
我们利用xtfp连接web服务器,在/www/server/panel目录下发现tools.py文件,里面有我们在上面看到的面板命令行,对其进行分析
这里是宝塔面板,可以看到当输入为5时修改宝塔面板密码
26、请分析宝塔面板登陆密码的加密方式所使用的哈希算法为
答案:md5
追踪到修改密码的函数,很容易得到答案
27、请分析宝塔面板对于其默认用户的密码一共执行了几次上题中的哈希算法
答案:3
上图的MD5函数是public类中的,由于public是自我定义的,并且存放在panel下的class文件夹内,故对其进行查找
在对passwd进行md5后放进password_salt函数又进行了两次md5,故总共进行了三次md5
28、请分析当前宝塔面板密码加密过程中所使用的salt值为【区分大小写】
答案:v87ilhAVumZL
根据db.py
找到default.db文件,打开在user中发现salt一栏
29、请分析该服务器,网站源代码所在的绝对路径为
答案:/www/wwwroot/www.honglian7001
用浏览器登录宝塔页面,进去后可以看到网站的根目录
30、请分析,网站所使用的数据库位于IP为()的服务器上(请使用该IP解压检材5,并重构网站)这里是检材5,题目标错了
答案:192.168.110.115
我们解压检材5后,发现了三个RAID块,告诉我们需要进行RAID重组
我们使用 R-studio 工具,对其进行扫描判断磁盘阵列
添加完成后对其进行扫描,检测结束后会告诉我们可能的重组方式
我们可以看到可能性最高的就是 123 RAID5 左同步,数据块大小为 64k,接下来我们打开取证大师,按照这个配置导入raid
分析结束后再将其重组好的制作成一个新的镜像文件并导出(是对重组好的RAID制作镜像,而不是对动态磁盘root制作)
这样我们就得到了一个可以用来进行仿真的服务器镜像,打开后可以得知数据库的IP地址
31、请分析,数据库的登陆密码为【区分大小写】
答案:wxrM5GtNXk5k5EPX
我们继续从web3服务器上查看源码,在 /www/wwwroot/[www.honglian7001/app/database.php
中我们可以看到网站的数据库配置
32、请尝试重构该网站,并指出,该网站的后台管理界面的入口为【标准格式:/web】
答案:/admin
从目录结构可以看到/www/wwwroot/www.honglian7001/app/admin
……所以比较容易猜测admin
,或者我们在PC检材查看历史纪录时就已经发现网站的后台管理界面,
33、已该涉案网站代码中对登录用户的密码做了加密处理。请找出加密算法中的salt值【区分大 小写】
答案:lshi4AsSUrUOwWV
在网站根目录admin中有个common.php打开可以看到加的盐值
34、请分析该网站的管理员用户的密码为:
答案:security
我们能在web服务器中找到面板运行时的日志
对应案发时间的文件夹内只有两个日志文件,我们打开使用搜索passwd或password后可以看到用户名都是admin,而一个密码是 123456 ,另一个密码是 security ,试一试就可以了
验证码要注意区分大小写,成功进入系统
35、在对后台账号的密码加密处理过程中,后台一共计算几次哈希值
答案:3
36、请统计,后台中,一共有多少条设备记录
答案:6002
37、请通过后台确认,本案中受害者的手机号码为
答案:18644099137
为什么这么确定是这张图片呢,是因为在骗子要挟金先生的时候,曾经向金先生炫耀过他的通讯录,里面最显眼的就是第一条女朋友!!,还有这张图片也能确定通讯录
38、请分析,本案中受害者的通讯录一共有多少条记录
答案:34
检材四、五
通过对检材二和三进行分析,警方通过IP落地,警方掌成功抓获犯罪嫌疑人,现将嫌疑人的PC机和手机进行了取证,分别制 作了镜像,请使用第13题的答案对检材四进行解密,并回答下列问题
39、请计算检材四-PC的原始硬盘的SHA256值
答案:E9ABE6C8A51A633F809A3B9FE5CE80574AED133BC165B5E1B93109901BB94C2B
40、请分析,检材四-PC的Bitlocker加密分区的解密密钥为
答案:511126-518936-161612-135234-698357-082929-144705-622578
在取证大师中进行分析,找到bitlocker的恢复密钥
41、请分析,检材四-PC的开机密码为
答案:12306
将恢复密钥填进火眼仿真中,即可自动获取PC的开机密码
42、经分析发现,检材四-PC是嫌疑人用于管理服务器的设备,其主要通过哪个浏览器控制网站后
答案:Chrome
43、请计算PC检材中用户目录下的zip文件的sha256值
答案:0DD2C00C8C6DBDEA123373F91A3234D2F07D958355F6CD7126E397E12E8ADBB3
44、请分析检材四-phone,该手机的IMEI号为
答案:4b5a058f7d26
欢乐的手机取证环节
45、请分析检材四-phone,嫌疑人和本案受害者是通过什么软件开始接触的【标准格式:支付宝
答案:伊对
46、请分析检材四-phone,受害者下载恶意APK安装包的地址为
答案:https://cowtransfer.com/s/a6b28b4818904c
47、请分析检材四-phone,受害者的微信内部ID号为、
答案:wxid_op8i06j0aano22
48、请分析检材四-phone,嫌疑人用于敲诈本案受害者的QQ账号为
答案:1649840939
49、请综合分析,嫌疑人用于管理敲诈对象的容器文件的SHA256值为
答案:9C48E29EB5661E6ED088A364ECCóEF004C150618088D7000A393340180F15608
我们导出并解压 我的赚钱工具.zip
,得到一个虚拟机镜像,我们用仿真打开(选择那个不带后缀0002的镜像),会找到一个叫 我的小白鼠
的文件,密钥文件为key,之后用beracrypt进行解密
转自BB:
但,,,当我看了复盘以后我才发现……这个犯罪嫌疑人就
TM
是天才,每次干完坏事,直接打个快照然后把东西全删了,这nm
是我玩玩没有想到的……绝了!然后我又尝试着直接打开虚拟机,发现依据
vmdk
直接仿真的和直接打开虚拟机有很大差别,而差别就是快照!(这里请教了一下konge
师傅,当你给虚拟机打一个快照的时候,他会生成一个*-0000001.vmdk
文件,这个虚拟硬盘文件就是打快照时*.vmdk
的一个分支。所以*.vmdk
就是全部的文件,也就是没有打快照前的文件,而*-0000001.vmdk
里面就是新储存的文件或者删除的文件信息。)咳咳……
现在相当于是恢复了相关的证据文件,但是
小白鼠.txt
是个加密容器还没有解密,我们在取证大师的加密文件中看到了一个key.rar
我们合理怀疑这个就是密钥文件(但是比赛的时候我一个劲想着把key.rar
解开,以为里面的图片才是密钥文件…… )
第一遍找的时候没有找到,可能是因为我没有先检验该文件的SHA256值就直接用VC进行解密加载了,应该是解密的过程改变了文件,在弘联火眼里删掉该虚拟机(别删掉虚拟机镜像文件),之后重新操作一遍就好了
BB的意思大概是需要将虚拟机镜像和快照进行对比,判断出文件的操作记录,比如这里嫌疑人在快照中直接将系统重置了,我打开的时候里面什么东西也没有,但是由于VM虚拟机默认打开的是快照文件,所以还是建议通过弘联火眼进行仿真再打开(反正直接你也不知道开机密码)
50、请综合分析嫌疑人检材,另外一受害者“郭先生”的手机号码为
答案:15266668888
打开郭先生文件夹,发现了设备手机号
同样在这里也可以找到金先生的手机号
51、通过嫌疑人检材,其中记录了几位受害者的信息
答案:5
查看文件夹,共发现五位受害者
52、请使用第11题的密码解压“金先生转账.zip”文件,并对压缩包中的文件计算SHA256值
答案:cd62a83690a53e5b441838bc55ab83be92ff5ed26ec646d43911f119c15df510
解压后即可得到SHA256值
53、请综合分析,受害者一共被嫌疑人敲诈了多少钱(转账截图被隐藏在多个地方)
答案:6600
下面的内容引用自BB的博客
这个说实话,,,有点难搞:
然后PC端里面的压缩包的图片:
然后就错了……
还有一笔在数据库里,,,这个鬼能想到啊。
然后很自然的想到,分析,导出数据库,查看那个图片。但是,问题来了,虚拟机里面的数据库是个server
,并不是文件。所以我们得直接通过服务进行连接。但是不管是什么工具或者是在它服务器上面都连不上数据库。这块是看了复盘才知道,数据库有个”空用户问题“,我们你需要先修一下这个。
然后这里请教了一下Frank
。这里的空用户问题根源是用户的一个匹配问题,说直白些就是,你以为连接数据库时你用的是A用户,A用户是有密码的,你也传了一个密码进去;但是你却匹配到了B用户,而B用户却没有密码,所以就发生了冲突,就登录不上了。而匹配时会在user
表里面查找匹配:
解决方法:
- 去掉密码验证,这样的话都没有密码了,也就没有冲突了。
- 删除掉可能会导致匹配错误的用户(但是你还是得先去掉密码登陆进去……)
- 看
mysql
源码,查看他的匹配优先排序的算法(https://dev.mysql.com/doc/refman/5.7/en/connection-access.html),但是貌似这个文档里面说的也不是很清晰,只有一句”越精确越优先“……(加油[doge]
最后终于看到数据库了,,,泪目:
完结撒花(好耶)
花了将近一个周末的时间,只能说效率太低了,或者说由于掌握的东西太少了,导致学习新东西及如何使用的时间占用了太多太多,不过也可以说收获很多。该腾点时间给期中考试(哭哭了,要挂科了),下面将会转战美亚杯2020的团体赛题目(个人赛大概走了一遍,感觉没什么带坑的地方,也不会转弯抹角的采用各种解压密码套路你(doge),继续加油把,冲冲冲)