长安杯2020
检材一
1 |
检材 1 的操作系统版本是 ()A. CentOS release 6.5 (Final)B. Ubuntu 16.04.3 LTSC. Debian GNU/ Linux 7.8 (wheezy)D. CentOS Linux release 7.6.1810 (Core) |
|
D |
2 |
检材 1 中,操作系统的内核版本是 ()(答案格式: “1.2.34” 数字和半角符号) |
10 |
|
3.10.0 |
|
3 |
检材 1 中磁盘包含一个 LVM 逻辑卷,该 LVM 开始的逻辑区块地址 (LBA) 是 () (答案格式: “12345678” 纯数字) |
10 |
|
2099200 |
|
4 |
检材 1 中网站“www.kkzjc.com”对应的 Web 服务对外开放的端口是 ()(答案格式: “123456” 纯数字) |
10 |
|
32000 |
|
5 |
检材 1 所在的服务器共绑定了 () 个对外开放的域名(答案格式: “123” 纯数字) |
10 |
|
3 |
|
6 |
检材 1 所在的服务器的原始 IP 地址是 ()(答案格式: “172. 172.172.172” 半角符号) |
10 |
|
192.168.99.3 |
|
属实是丢大脸了……docker的默认IP就是172.17.0.1,这也是很多路由器和光猫会设置的地址。
正常方法做的话会有点麻烦,只能通过别人访问自己的记录来获得IP信息(因为是在内网中,也就没有配置公网IP)。所以,这里可以通过docker的日志来观察:docker logs 08
可以看到一直有个222的IP访问目的IP的8091端口。8091其实就是本机nginx的反向代理端口,所以可以确定这个就是本机的原始IP。
7 |
嫌疑人曾经远程登录过检材 1 所在的服务器,分析并找出其登录使用的 IP 地址是 () (并使用该地 址解压检材 2)(答案格式: “172. 172.172.172” 半角符号) |
10 |
|
192.168.99.222 |
|
8 |
检材 1 所在的服务器,其主要功能之一为反向代理。找出“www.kkzjc.com”转发的后台网站所使用 的 IP 地址是 () (并用该 IP 地址解压检材 3)(答案格式: “172. 172.172.172” 半角符号) |
10 |
|
192.168.1.176 |
|
端口转发到8091,看了一下到的是docker?
该死的……最开始起docker的时候就已经起错了,用了命令“docker run -it nginx /bin/bash”,直接起了个新的容器。难怪我说怎么里面连根毛都没有……
9 |
嫌疑人曾经从题 7 的 IP 地址,通过 WEB 方式远程访问过网站,统计出检材 1 中该 IP 出现的次数为 () (答案格式:“888” 纯数字) |
10 |
|
18 |
|
我这里其实还是多此一举了……他只问了用web访问,中间用逗号分隔,没有提到其他登录方式。
检材二
10 |
检材 2 的原始磁盘 SHA256 值为 ()(答案格式: “abcdefg” 不区分大小写) |
10 |
|
2D926D5E1CFE27553AE59B6152E038560D64E7837ECCAD30F2FBAD5052FABF37 |
|
11 |
检材 2 所在计算机的 OS 内部版本号是 ()(答案格式: “12345.7895” 半角符号) |
10 |
|
18363.1082 |
|
这样的版本号还不完整,必须再往后精确……所以只能去“运行”里面输入winver看。
12 |
检材 2 所在计算机最后一次正常关机的时间为 ()(答案格式: “1970- 10-01 10:01:45” 精确到秒,半角符号) |
10 |
|
2020-09-22 13:15:34 |
|
这到底是什么原理?这也能不一样?
13 |
检材 2 中,VMware 程序的安装时间为 ()(答案格式: “2020-01-01 21:35” 精确到分钟,半角符号) |
10 |
|
2020-09-18 17:54 |
|
tnnd,应用程序的安装时间也是坑人的?!估计这里的意思是“开始安装的时间”,即真正的安装时间要从安装包的运行时间看……
14 |
检材 2 中,Vmware.exe 程序总计启动过 () 次(答案格式: “5” 纯数字) |
10 |
|
8 |
|
15 |
嫌疑人通过 Web 方式,从检材 2 访问检材 1 所在的服务器上的网站时,连接的目标端口是 () (答案格式: “12345” 纯数字) |
10 |
|
8091 |
|
因为是web方式,也就很自然地想到是用浏览器了。
16 |
接 15 题,该端口上运行的进程的程序名称 (Program name) 为 ()(答案格式: “avahi-deamon” 字母和半角符号组合) |
10 |
|
docker-proxy |
|
又回到检材1了……
17 |
嫌疑人从检材 2 上访问该网站时,所使用的域名为 ()(答案格式: “www.baidu.com” 半角符号) |
10 |
|
www.sdhj.com |
|
18 |
检材 2 中,嫌疑人所使用的微信 ID 是 ()(答案格式: “abcde8888” 字母数字组合) |
10 |
|
sstt119999 |
|
卡了一小会儿,一直以为是windows本地安装的微信,直到我找了一个ios备份文件……
19 |
分析检材 2 ,嫌疑人为推广其网站,与广告位供应商沟通时使用的通联工具的名称为 () (答案格式: “Wechat ” 不区分大小写) |
10 |
|
telegram |
|
这里要求找的是广告位供应商
20 |
分析检材 2 ,嫌疑人使用虚拟货币与供应商进行交易,该虚拟货币的名称是 ()(答案格式: “bitcoin” 不区分大小写) |
10 |
|
doge |
|
……狗狗币
21 |
上述交易中,对方的收款地址是 ()(答案格式: “abC1de3fghi” 大小写字母数字组合) |
10 |
|
DPBEgbwap7VW5HbNdGi9TyKJbqTLWYYkvf |
|
好麻烦啊……
22 |
上述交易中,嫌疑人和供应商的交易时间是 ()(答案格式: “2020-01-01 21:35:54” 精确到秒,半角符号) |
10 |
|
2020-09-20 12:53 |
|
这里又卡了一下。还好很快找了线索。
虚拟机被加密了,而且从聊天记录里面看似乎他们也不记得密码了。这样一来,剩下的也只能爆破。
既然都直说在github上,那工具还是很好找的:https://github.com/axcheron/pyvmx-cracker
解密之后记得给虚拟机解除密码,不然取证软件会无法识别镜像(我在这里被卡了好久)。之后就是常规流程了。
24 |
检材 2 中,嫌疑人使用的虚拟机的虚拟磁盘被加密,其密码为 ()(答案格式: “aoeiou”小写字母) |
10 |
|
zzzxxx |
|
25 |
检材 2 中,嫌疑人发送给广告商的邮件中的图片附件的SHA256 值为 () ; (忽略邮件状态)(答案格式: “abcdefg” 小写字母) |
10 |
|
cc7ea3ab90ab6b28417e08c715c243ce58ea76d71fd141b93f055a58e9ba561a |
|
26 |
检材 2 中,嫌疑人给广告商发送广告图片邮件的发送时间是 () (忽略邮件状态)(答案格式: “2020-01-01 21:35” 精确到分钟,半角符号)2020-09-20 12:53 |
10 |
27 |
检材 2 中,嫌疑人的邮箱密码是 ()(答案格式: “abcde123456” 字母符号数字组合,区分大小写)honglian7001 |
10 |
28 |
检材 2 中,嫌疑人使用了 () 远程管理工具,登录了检材 1 所在的服务器。(答案格式: “abcde” 字母,不区分大小写)
xshell |
10 |
29 |
检材 2 中,嫌疑人使用上述工具连接服务器时,使用的登录密码为 ()(答案格式: “aBcd#123” 数字符号字母组合,区分大小写)qwer1234!@#$ |
10 |
没啥线索……暂时先跳过
我才发现原来要先把虚拟机移除加密之后才可以给取证软件识别……真是失策
检材三
30 |
检材 3 的原始磁盘 SHA256 值为 ()(答案格式: “abcdefg” 不区分大小写) |
10 |
|
FF593FCCB3770B8845A3334631F8E80807638EE722C5AA7B34E877589857C3BA |
|
31 |
检材 3 所在的计算机的操作系统版本是 ()A. Windows Server 2012B. Windows Server 2008 R2C. Windows Server 2008 HPC EditionD. Windows Server 2019 LTSB |
10 |
|
C |
|
32 |
检材 3 中,部署的网站名称是 ()(答案格式: “abcdefg” 小写字母) |
10 |
|
card |
|
33 |
检材 3 中,部署的网站对应的网站根目录是 ()(答案格式: “d :\path1\path2\path3” 绝对路径,半角符号,不区分大小写) |
10 |
|
c:\inetpub\wwwroot\v7w |
|
34 |
检材 3 中,部署的网站绑定的端口是 ()(答案格式: “12345” 纯数字) |
10 |
|
80 |
|
35 |
检材 3 中,具备登陆功能的代码页,对应的文件名为 ()(答案格式: “index.html ” 字母符号组合,不区分大小写) |
10 |
|
dllogin.aspx |
|
36 |
检材 3 中,请对网站代码进行分析,网站登录过程中,代码中对输入的明文密码作了追加 () 字符 串处理(答案格式: “a1b2c3d4” 区分大小写) |
10 |
|
OvO |
|
37 |
检材 3 中,请对网站代码进行分析,网站登录过程中,代码中调用的动态扩展库文件的完整名称为 ()(答案格式: “abc.html.ABC” 区分大小写,半角符号,包含扩展名) |
10 |
|
App_Web_dllogin.aspx.7d7c2f33.dll |
|
这方面我不是很懂,只是看到有一个“继承”,就猜测可能是这个。注意动态链接库一般都有dll结尾,所以加上去。
38 |
检材 3 中,网站登录过程中,后台接收到明文密码后进行加密处理,首先使用的算法是 Encryption 中 的 () 函数(答案格式: “Bcrypt ” 区分大小写) |
10 |
|
AESEncrypt |
|
.net逆向还是很新奇的……至少在这里,代码段只有这么一点,其他的各种引用就占了大半,头都晕了。
39 |
检材 3 中,分析该网站连接的数据库地址为 () 并使用该地址解压检材 4(答案格式: “172. 172.172.172” 半角符号) |
10 |
|
192.168.1.174 |
|
server=192.168.1.174,1433;uid=sa;pwd=c4f2737e88;database=v7sq3;
使用传统的解密脚本怎么也跑不出来,一怒之下直接找个网站跑原脚本了……
40 |
检材 3 中,网站连接数据库使用的密码为 ()(答案格式: “Abc123!@#” 字母数字符号组合,区分大小写) |
10 |
|
c4f2737e88 |
|
41 |
检材 3 中,网站连接数据库服务器的端口是 ()(答案格式: “12345” 纯数字) |
10 |
|
1433 |
|
建材四
42 |
检材 4 的原始磁盘 SHA256 值为 ()(答案格式: “abcdefg” 不区分大小写) |
10 |
|
E5E548CCAECD02608A0E053A5C7DCDBFBDD4BE5B0E743EB9DC8E318C369BEBC8 |
|
43 |
重构该网站,分析嫌疑用户的推广链接中参数里包含的 ID 是 ()(答案格式: “a1b2c3d4” 字母数字组合,小写) |
10 |
|
abe6d2ee630379c3 |
|
检材三——通过.NET直接和检材四进行连接。因为经过了aes加密,所以这里需要对检材四的IP进行改动,检材三保持不变。而检材三本身也是网站服务器,所以从这里入手即可。
检材二是反向代理服务器,本身没啥东西。检材一……太久远了,是跳板机来着吗?反正一和二不用管太多。
首先就是重建数据库。因为IP、端口、账号密码都是已知的,所以这里就直接配置一下网络就行了……我原以为真的会这么容易。
可惜检材四的centos没有ip-tools,又需要分配静态IP,而且数据库还是运行在docker里面。好家伙,我不熟悉的东西全部一股脑全部来了是吧。
配置还是老流程,先对网卡ens33进行静态IP的分配(我这里因为是两台电脑做题,所以试了下用桥接配置,没想到成功了),顺便配置DNS服务器。然后开启docker,再根据命令历史开启容器sql1,成功打开mssql。最后就直接连接服务器就可以了。
数据库能连上,已经是成功一半了。后面再测试一下网站回显,结果也是正常的。
至此,网站重建算是完成了。可以开始着手取证了。
首先就是尝试进入网站后台。这里我们可以从网页源代码看到数据库的密码全都是md5加密的,所以我们可以直接去cmd5上面撞一下。
然后……照理说应该已经成功了才对啊……然后怎么也搞不出来了。
查了一下大佬的攻略,发现数据库的函数里面还有两层过滤,真的是坑啊!
源码里面还调用了PD_UserLogin函数来对账户数据进行判断,所以进入数据库找一下
源码还是很清晰的,主要解释了两个方面:
1.从DW_Web里面查询数据,看看用户所在的IP及域名是否在数据库中并且是否有权限。如果不在的话,会在后面对用户的ID进行进一步校验(然而ID不可能通过审核)
这里就需要换上网站的IP地址了。
2.通过IP审核后,才对用户的账密进行校验,并且判断用户是否被删除。综合下来,只有liwente1314520是符合条件的。
但是注意,该用户的原密码的md5是撞不开的。自己直接搞个密码然后md5加密再换上去也是不行的,加密过程中似乎有盐,总之不是正常的md5算法!
最直接的方法其实还是逆向——改源码,把网站的“登录失败”回显换成网站加密之后的密码。
把这串密码替换到数据库中去,就可以登陆了。
44 |
重构该网站,该网站后台的代理用户数量为 ()(答案格式: “12345” 纯数字) |
10 |
|
26 |
|
每页显示9行,但注意最后一页只有8个。
45 |
重构该网站,该网站注册用户中共有过 () 个代理 (包含删除的数据)(答案格式: “12345” 纯数字) |
10 |
|
32 |
|
46 |
重构该网站,对补发记录进行统计,统计 2019 年 10 月 1 日后补发成功的金额总值 () (答案格式: “123456” 纯数字) |
10 |
|
|
|
这边实在是没办法了……试着反查数据库,结果失败了。最关键的是,网上的大佬是直接用爬虫爬的数据……似乎确实是个好办法,我之后也得研究一下,也省去逆向的功夫了。
47 |
检材 4 中,对“TX_IpLog”表进行分析,所有在“武汉市”登录的次数为 ()(答案格式: “” 纯数字) |
10 |
|
2829 |
|
tnnd,这数据库是有分页的……
48 |
重构该网站,该嫌疑人下属代理“ liyun10”账户下的余额有 () 元(答案格式: “123456” 纯数字) |
10 |
|
1066449 |
|
49 |
接上一题,该用户的推广 ID 是 ()(答案格式: “a1b2c3d4” 字母数字组合,小写) |
10 |
|
d0fdd7a9a010d37e |
|
50 |
接上一题,该代理商户的最后一次登陆时间是 ()(答案格式: “2020-01-01 21:35” 精确到秒,半角符号) |
10 |
|
2016-9-6 0:43:07 |
|
总结
整整两天时间都搭这套题目上面了……但确实很有意思,题目后期到处都是坑,需要审计需要逆向需要解密,充分考验了选手的综合能力。我从中也积累了不少经验,至少不会以为还原出网站就万事大吉了吧(笑)
话说回来,长安杯是个人赛吗?如果是的话,感觉有点离谱了……