引言

其实这篇WP早在21年美亚杯比赛之前就写好了,但是我比较懒,懒得挂博客上(反正没人看)

检材1

1.apk的sha256

用火眼给的软件打开,直接算好了。
1

2.apk应用包名

2

3.封装服务商(打包服务商)应用唯一标识(调证值)

3

4.危险权限

4

5.发送回的后台数据有哪些内容

打开模拟器进行抓包
小tips:在进行实验前,对自己的模拟器导入联系人,测试短信信息,甚至是浏览器历史记录,虚拟位置信息
开启代理模式抓包,会截取模拟器的所有流量。

5

可以看到,手机型号,通讯录截取到,但是模拟器没有短信功能,不能判断短信抓没抓

不过在比赛的时候软件出了问题,根本没抓到包,建议大家以后准备另外的模拟器抓包方法(记得提醒我去用flider抓包看看),喜欢安卓开发的可以搞一台安卓工程机。

最好的方法是直接看源码。不过这个apk的源码和ctf不太一样,据复盘所言是框架编程,具体的可以自行百度研究,但在这题当中的坑就是真正的源码其实是在jadx反编译中的资源文件内的!

源代码段全是调用的java系统函数,看不出任何逻辑。

我踏马直接疑惑???

6

还是个sojson.v4加密

7

怎么就出来段代码?简单分析之后就会发现,这就是apk的主逻辑代码。

淦!

8

发现了定位权限调用,所以获得的权限为ACDE

也可以花点时间多看看

9

联系人

10

短信

6&7.使用的http请求方式和回传域名

​ 用之前的抓包

11

8.配置的变量apiserver的地址

简单搜一下

12

9.短信上传服务器接口

回传函数(应该)

apiserver + ‘apisms’

那就应该是http://www.honglian7001.com/api/uploads/apisms

13

10&11.关于数据库

神奇的压轴题,要写py的hook脚本,动态跑apk然后分析so文件里的密钥,这种难度差不多可以出一道ctf题了,有空可以研究下他给的脚本。但毕竟是宣传软件,不可能放这么难的题,软件里就自带一个sql检测脚本,跑一下。

[ 2021-10-25 21:19:33 ][net.sqlcipher] 检测到数据库文件:

/data/user/0/plus.H5B8E45D3/databases/test.db,

密码:c74d97b01eae257e44aa9d5bade97baf

[ 2021-10-25 21:19:33 ][net.sqlcipher] SQL:select count(*) from sqlite_master;

[ 2021-10-25 21:19:33 ][net.sqlcipher] SQL:PRAGMA user_version;

看起来很顺畅,但做的时候因为抓包问题卡了半天,没有时间做后面的题,亏死!

检材2

12..sha256

14

13.案发时间段登录服务器的ip地址

时区是UTF+8,那么根据题意主要看4.25或4.24的日期

仿真使用last命令

15

推测是192.168.110.203

14. 推测服务器的作用

分析服务器,首先查看history,这里直接在取证软件里看了。

好消息,没有被删除,发现奇怪的路径opt/honglianjingsai/chronusNode

进去发现有readme文件,猜测是反向代理

16

然鹅没这么简单,这个答案因为不准确被判错误

其实这题也可以根据后面几题的提示,文件目录下有个controller文件夹,看名字猜是一些配置文件,我们在后续题的分析中会发现,这个服务器将数据分类,分别送到了另外的三台服务器,具体分析见后几题,这时候我们再百度一下反向代理服务器的作用

17

那么显而易见了,答案就是负载均衡服务器!(坑死人了!!!)

15. 主要功能对应服务监听端口

根据readme文件去看const.js,发现是80端口

18

16. 服务启动所需的命令

分析history,发现有node app.js的可疑命令,进去试一下

19

真的可以运行!

20

17&18&19.该服务对于ip的处理依据,小于50转发到的ip

之前我们已经把controller文件里给看了个遍,聪明的你一定知道该去哪里寻找了吧。

找出最可疑的文件ADProxy.js

21

读取ip地址的四个点,如果等于4(合法ip)就判断IP3(ip第三位),当然,后面的数组也说明是第三位(数组是从0开始的,比赛的时候居然忘了……)

同时注意下一段的分类代码,当ip3小于50时,发送到proxy50,根据上一段代码我们可以知道proxy50代表的ip是192.168.110.111

22

再连起来分析下,这段代码通过对ip分类将数据传入了三台不同的服务器,所以转发目标服务器就是3台,这台服务器作用就是负载均衡。

20&21.受害者案发时的ip地址和发到的服务器

猜测该信息应该会存于日志文件中,打开chronusNode/logs

找到4-24的日志

从下往上翻(推测案发时间最晚,先等着,等后面拿到嫌疑人其他机器后可以确认案发时间),发现203和252同时出现,203我们上面已经发现是嫌疑人的登录用ip,那么就是192.168.110.252-CAB2021,同样的,我们可以看到发送到了113的服务器。

23

转发到的服务器,看上一题的分析,ip地址第三位>100很明显就是192.168.110.113啦。

检材3

这个检材稍稍有点迷惑,有3个镜像,分别对应了3个服务器,这里提示个小技巧,在我们做服务器集群的题时,把vm中的dhcp服务关掉,保留服务器镜像原本的静态ip地址(前提是服务器原本就是配置的静态ip)

22.原始硬盘的sha256

3个镜像,我们选哪个的sha256呢?这题比赛的时候我也没想通。结果官方解答是因为最后案发的ip是转发到检材3(192.168.110.113)上的,所以选择检材3。

24

23.开机密码

这个题是由后面的检材中分析得到的,当然你也可以选择爆破或者直接猜。

25

24.宝塔用户名

26

25&26&27.宝塔代码分析

1&2函数名和加密算法

宝塔早就在github上开源了,我的第一反应是直接clone源码。

不过这个题并不需要你去下,我们进入宝塔面板文件夹看看,我们会发现里面有很多的py文件。

27

more一个tools.py看看。

28

好像有点可疑?

我们将这个文件用火眼导出,拿出习惯的编辑器打开看看。

29

一下子就找到了,算法为md5

3.对默认密码执行了几次加密算法

30

在tools.py中首先用了一次md5,寻找这个类(class)文件夹下的pubic.py

(这个界面是在 宝塔面板-文件-编辑 打开的)

31

搜索字符串password

32

分析下代码逻辑可得一共三次

28.分析加密过程中使用的salt值

百度了一下,宝塔面板在传回用户的密码时会生成一个salt值并进对密码进行拼接,然后再进行一次md5加密。文章地址https://blog.csdn.net/qq_38410352/article/details/114087010

所以我们进入www/server/panel/data找到default.db(也可以根据上一题的函数发现这个数据库文件)

33

用其他软件打开,查看users这个表

34

29.网站源码根目录

查看history,发现可疑地址

35

进入www/wwwroot/www.honglian7001

36

发现这就是网站根目录。

顺便看一下index.html

37

完全没用的前端

更改:不用这么做,使用宝塔面板

38

30&31.数据库的ip和登录密码

www/wwwroot/www.honglian7001/app/database.php(用宝塔面板打开该文件更方便)

39

32.重构网站找到后台入口

首先要重构检材3的raid,可以用USF explorer

重构完成后直接仿真就行,不需要分析了。

这题要通过后面的检材才能找到答案。

40

重构之后用192.168.110.113/admin试一下

41

网站可以通,那么后台管理就是https://192.168.110.113/admin

33&35.涉案网站加密使用的salt值

根据上题得知的网站后台,我们进入www.honglian7001/app/admin目录下

找到commen.php,定义输入的密码和salt值(password_code),分别对password和salt值进行md5加密,然后再拼起来再进行md5加密,一共三次。

由此我们可见该架构网页下的app目录主要是网页的源码文件。

再翻深一点会发现该password函数在admin/controller/commmen.php下被调用,发送到数据库进行比对。

42

34.网站后台管理员密码

脑洞题,在日志里可以翻到(哪个想得到日志会记录密码明文啊???)

www/wwwroot/honglian7001/rungtime/log/202104/24

复制到编辑器搜索一下password

43

36.多少条设备记录

登录,设备查看,拉到底

44

37.受害者电话号码

通过通讯录可以分析出来(靠后续检材),分析时间风险太大,时间成本也不合算。

45

38.受害者通讯录一共多少条记录

不想多说

46

检材4

39&40.sha256和bitlocker的密码

火眼进行分析,发现有加密分区。在文件里面随便翻翻

47

卧槽?

输入密钥重新加载,然后计算哈希就行了

48

41.开机密码

各种方法都能看,火眼基本信息分析里面有,仿真也看得到,不过仿真比较容易确定

49

42.主要通过哪个浏览器

随便看看,很明显就是chorme

50

43.算给定文件的sha256

51

52

44.手机的IMEI

53

45.哪个软件接触的受害人

54

笑死

46.恶意安装包的下载地址

55

47.受害者微信id

56

48.嫌疑人的QQ号

57

49&50.管理敲诈对象的容器文件sha256和郭先生的号码

容器文件?看到有点懵,想了想,说的应该是虚拟机,毕竟在PC1找了一遍发现除了vm有用其他啥都没有。

正好仿真进去看发现《我的赚钱工具.zip》就是个虚拟机

但是居然有密码,我们在里面是找不到这个密码的,据题解所说,根据一些社工的知识,就用开机密码就能解出来(wtf???)

用vm打开,发现啥都没有。

我们在vmdk文件夹里看看,发现有vmsd快照盘

58

果然!直接还原

59

在用户/文档下面找到个小白鼠.txt文件,发现打不开,用火眼查看hex也看不出什么。

60

我们是不是忘了他桌面上有个Veracrypt?导出来,发现需要密码

这时候我们在文档下继续翻,可以发现key.rar的文件,这个也有密码无法解压。

怀疑是txt的密钥文件,死马当活马医吧,直接把rar导出来再当密钥文件试一下。

结果居然挂载上了???

61

进去后就能发现受害者信息,那么容器应该就是这个txt了,计算哈希。

62

郭先生号码 63

51.记录了几位受害者

由上题知有5个

52.zip里文件的哈希

照着做就行

64

53.一共转了多少

反正不止2000元

微信2000,依对1000,转账截图2000,QQ有600,数据库有一张1000

一共6600

莫名其妙的题不做也罢。

好多脑洞题,比上一年坑多了……