2020年长安杯复盘WP
长安杯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 |

总结
整整两天时间都搭这套题目上面了……但确实很有意思,题目后期到处都是坑,需要审计需要逆向需要解密,充分考验了选手的综合能力。我从中也积累了不少经验,至少不会以为还原出网站就万事大吉了吧(笑)
话说回来,长安杯是个人赛吗?如果是的话,感觉有点离谱了……

浙公网安备 33010602011771号