BlueHat2022半决赛
注:虚线代表没做出来/错误/存在问题的部分
手机取证
iPhone手机的iBoot固件版本号:(答案参考格式:iBoot-1.1.1)
盘古石手机取证导入受害者检材:
得到iBoot-7429.62.1
该手机制作完备份UTC+8的时间(非提取时间)
火眼证据导入苹果检材:
2022-01-11 18:47:38
exe分析
文件services.exe创建可执行文件的路径是:(答案参考格式:C:\Windows .exe)
从苹果镜像查看微信聊天记录,提取附件:
上传微步:
查看该MD5下的分析报告:
第一个可执行文件建立在temp目录下,可知为临时文件,第二个可执行文件路径即为答案:C:\Program Files\Common Files\Services\WmiApSvr.exe
同样找到该文件的MD5:
查看导入表可知,调用了该链接库:
文件aspnet_wp.v.exe执行后的启动的进程是什么:(答案参考格式:qax.exe)
找到该文件的md5:
进入报告,看行为树:
启动了svchost.exe
。
文件[4085034a23cccebefd374e4a77aea4f1]是什么类型的木马:(答案参考格式:勒索)
挖矿
。微步或VT查询木马家族、威胁标签可以得到答案。
文件[4085034a23cccebefd374e4a77aea4f1]网络连接的IP地址的归属地是哪个国家:(答案参考格式:美国)
法国
。
APK分析
受害人手机中exec的序列号是:(答案参考格式:0xadc)
把受害者手机镜像放到闪电模拟器VMS目录打开,提取exec安装包。
放到雷电APP智能分析:
0x936eacbe07f201df
受害人手机中exec关联服务器地址是:(答案参考格式:asd.as.d)
启动动态监控功能,可以看到应用存在访问连接:
打开后可以看到可疑服务器地址:
ansjk.ecxeio.xyz
受害人手机中exec加载服务器的函数是:(答案参考格式:asda)
使用jadx-gui分析该APK,在minmtta.hemjcbm.ahibyws.MainActivity
中发现疑似base64字符串aHR0cHM6Ly9hbnNqay5lY3hlaW8ueHl6
解密后为https://ansjk.ecxeio.xyz
,即上题抓取的可疑地址。
故加载服务器的函数为t
。
受害人手机中exec的打包ID是:(答案参考格式:adb.adb.cn )
exec.azj.kny.d.c
受害人手机中exec的是否有安全检测行为?
在d.a.a.h
路径下,可以看到存在检测root的安全检测功能:
受害人手机中exec的检测方法的完整路径和方法名是:(答案参考格式:a.a.a())
1 2 3 4 5 6 7 8 9 10 if (d.a.a.c.a.b() / 1048576 < 200 ) { C.b("您的储存空间不足,可能会影响您正常使用" , 1 ); } else if (d.a.a.c.a.a()) { C.b("您手机处于root环境,请注意资金安全" , 1 ); } else { if (d.a.a.c.a.a(this )) { C.b("当前设备不受信任,请注意资金安全" , 1 ); return ; }
根据代码判断,d.a.a.c.a.a
为检测方法。
受害人手机中exec有几个界面:(答案参考格式:2)
打开AndroidManifest.xml文件,可以找到 标签,每个标签对应一个界面。通过统计这些标签,你可以获得应用程序包含的界面数量。即为3
(最后两个是同一个)。
受害人手机中红星IPA的包名是:(答案参考格式:a.s.d)
受害人手机,如下路径可以找到ipa: (其他人的wp可以从受害人的vmdk镜像里找到,但是我的镜像里找不到下图的路径,很疑惑)
提取ipa,没合适分析工具,直接当zip包解压。
参考文章:https://blog.didctf.com/index.php/archives/378/
根据参考文章知道包名是CFBundleIdentifier
,所以直接搜索得到答案:
com.dd666.hongxin
受害人手机中红星IPA的APIKEY是:(答案参考格式:asd)
全局查找apikey
:
d395159c291c627c9d4ff9139bf8f0a700b98732
受害人手机中红星IPA的权限有哪些?
查看该文件可以得到答案:麦克风、定位、地理位置、摄像头
嫌疑人手机中红星APK的服务器地址是:(答案参考格式:ass.a.d:11)
将应用安装到虚拟机,打开后发现连接的服务器与端口:
www.nansjy.com.cn:8161
嫌疑人手机中红星APK的程序入口是:(答案参考格式:a.v.b.n)
从微信记录中导出红星apk:
找到程序入口:com.example.weisitas526sad.activity.SplashActivity
嫌疑人手机中分析聊天工具,服务器的登录端口是:(答案参考格式:12)
6661
嫌疑人手机中分析聊天工具,用户归属的机构是:(答案参考格式:太阳)
红星
结合手机流量分析聊天工具的登录账号和密码是:(答案参考格式:1212311/12312asd)
检材中的流量文件为saz
格式,查询得到为fiddler的流量文件。使用该程序打开:
抓取到POST /vsf2f/vsf2fv2/token
请求中提交的用户名密码,其中md57f07965ec20841305f9e53a7a89584f4
需要通过somd5解密:
17317289056/b12345678b
服务器取证
服务器在启动时设置了运行时间同步脚本,请写出脚本内第二行内容。(答案参考格式:/abcd/tmp www.windows.com )
centos服务器的/etc/rc.d/rc.local
路径标记了启动时所运行的脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@yisu-60a2196bb5a4f rc.d] /bin/sh /root/time.shtouch /var/lock/subsys/local
可以看到时间同步脚本为/root/time.sh
,故其第二行内容为:skip=44
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 [root@yisu-60a2196bb5a4f rc.d] skip=44 tab=' ' nl =' ' IFS=" $tab$nl " umask =`umask `umask 77 gztmpdir=trap 'res=$? test -n "$gztmpdir" && rm -fr "$gztmpdir" (exit $res); exit $res ' 0 1 2 3 5 10 13 15if type mktemp >/dev/null 2>&1; then gztmpdir=`mktemp -dt`else gztmpdir=/tmp/gztmp$$; mkdir $gztmpdir fi || { (exit 127); exit 127; } gztmp=$gztmpdir /$0 case $0 in -* | */*' ' ) mkdir -p "$gztmp " && rm -r "$gztmp " ;; */*) gztmp=$gztmpdir /`basename "$0 " `;;esac || { (exit 127); exit 127; }case `echo X | tail -n +1 2>/dev/null` in X) tail_n=-n;; *) tail_n=;;esac if tail $tail_n +$skip <"$0 " | gzip -cd > "$gztmp " ; then umask $umask chmod 700 "$gztmp " (sleep 5; rm -fr "$gztmpdir " ) 2>/dev/null & "$gztmp " ${1+"$@"} ; res=$?else echo >&2 "Cannot decompress $0 " (exit 127); res=127fi ; exit $res ���1time.shSV�O���/���/-.�/q�J RKRJ2sS��2�K���˸��Ӆ*
但是文件结尾存在乱码,查看其他人wp后发现是gzexe加密。使用gzexe加密的shell脚本代码特征为:前面一段代码是正常的命令字符,到了后面某一行开始就全部为乱码。
1 2 3 4 5 [root@yisu-60a2196bb5a4f ~] anaconda-ks.cfg backup.sh.x db-bak install.sh mysqldump.sql time.sh time.sh~ [root@yisu-60a2196bb5a4f ~] /usr/sbin/ntpdate time.nist.gov
答案为:/usr/sbin/ntpdate time.nist.gov
服务器在计划任务添加了备份数据库脚本,请写出该脚本的第二行内容。(答案参考格式:2022年第六届蓝帽杯)
通过crontab -l
可以查看到计划任务:
1 2 [root@yisu-60a2196bb5a4f rc.d] 00 03 * * * /root/backup.sh.x
打开文件发现是乱码,应该还是混淆,但是没搜到什么混淆……
查了资料发现是SHC混淆(shc/unshc工具用于加/解密shell脚本_草莓甜甜圈的博客-CSDN博客 ) :
Shc可以用来对shell脚本进行加密,可以将shell脚本转换为一个可执行的二进制文件。经过shc对shell脚本进行加密后,会同时生成两种个新的文件,一个是加密后的可执行的二进制文件(文件名以.x结束),另一个是C语言的原文件(文件名以.x.c结束)。
解密后得到答案:
使用宝塔linux面板的密码加密方式对字符串lanmaobei进行加密,写出加密结果。(答案参考格式:e10adc3949ba59abbe56e057f20f883e)
加密文件路径:/www/server/panel/class/users.py
加密过程就是初始密码进行md5加密运算后,结果尾部加上_bt.cn
再进行一次md5运算,然后与盐加上再进行md5加密。但是官方wp里没有和盐加密运算。
写出服务器中第一次登录宝塔面板的时间。(答案参考格式:2022-02-02 02:02:02)
服务器终端输入bt 14
查看宝塔面板端口:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [root@yisu-60a2196bb5a4f config] ===============宝塔面板命令行================== (1) 重启面板服务 (8) 改面板端口 (2) 停止面板服务 (9) 清除面板缓存 (3) 启动面板服务 (10) 清除登录限制 (4) 重载面板服务 (11) 取消入口限制 (5) 修改面板密码 (12) 取消域名绑定限制 (6) 修改面板用户名 (13) 取消IP访问限制 (7) 强制修改MySQL密码 (14) 查看面板默认信息 (22) 显示面板错误日志 (15) 清理系统垃圾 (23) 关闭BasicAuth认证 (16) 修复面板(检查错误并更新面板文件到最新版) (24) 关闭谷歌认证 (17) 设置日志切割是否压缩 (25) 设置是否保存文件历史副本 (18) 设置是否自动备份面板 (0) 取消 =============================================== 请输入命令编号:14 =============================================== 正在执行(14)... =============================================== ================================================================== BT-Panel default info! ================================================================== 外网面板地址: http://www.nansjy.com.cn:8517/c0a27351 内网面板地址: http://192.168.78.132:8517/c0a27351 *以下仅为初始默认账户密码,若无法登录请执行bt命令重置账户/密码登录 username: d0qxqo4a password: e65972dd If you cannot access the panel, release the following panel port [8517] in the security group 若无法访问面板,请检查防火墙/安全组是否有放行面板[8517]端口 ==================================================================
登录面板提示没有访问权限,按照说明删除文件:
再次打开该网页路径后发现存在basic认证,从/www/server/panel/config/basic_auth.json
获取到账号密码,解密后为:root_bt.cn / root123456_bt.cn
,但是还没办法登录(解密了个寂寞,回顾上题发现需要去掉后缀 )。直接bt 23
关闭基础认证,可以看到登录页面。
通过默认账号密码可以直接登录进后台。在后台查看日志发现并没有登录记录,又折回去从服务器中寻找:/www/server/panel/logs/request
1 2 3 4 5 6 7 [root@yisu-60a2196bb5a4f class] [root@yisu-60a2196bb5a4f logs] access.log certbot.log error.log panel.pid request task.log task.pid terminal.log [root@yisu-60a2196bb5a4f logs] [root@yisu-60a2196bb5a4f logs] 2021-05-17.json.gz 2021-05-26.json.gz 2021-06-05.json.gz 2021-06-19.json.gz 2023-09-12.json 2021-05-20.json.gz 2021-05-27.json.gz 2021-06-07.json.gz 2021-07-03.json.gz
发现备份的文件为gz,使用gzip进行解包:
1 2 3 4 5 [root@yisu-60a2196bb5a4f request] 2021-05-17.json.gz: 93.4% -- replaced with 2021-05-17.json [root@yisu-60a2196bb5a4f request] 2021-05-17.json 2021-05-26.json.gz 2021-06-05.json.gz 2021-06-19.json.gz 2023-09-12.json 2021-05-20.json.gz 2021-05-27.json.gz 2021-06-07.json.gz 2021-07-03.json.gz
2021-05-17 16:10:40
写出宝塔面板的软件商店中已安装软件的个数(答案参考格式:2)
6
写出涉案网站(维斯塔斯)的运行目录路径。(答案参考格式:/root/etc/sssh/html)
/www/wwwroot/v9.licai.com/public
写出最早访问涉案网站后台的IP地址。(答案参考格式:111.111.111.111)
183.160.76.194
写出涉案网站(维斯塔斯)的“系统版本”号。(答案参考格式:6.6.6666)
通过分析/www/wwwlogs/v9.licai.com.log
,看到一个后台可疑的路径:/AdminV9YY/
:
但是直接访问错误,怀疑后面有跟login或其他关键字:
1 192.168.78.1 - - [13/Sep/2023:00:12:39 +0800] "GET /AdminV9YY/Login HTTP/1.1" 200 1423 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 Edg/116.0.1938.76"
用phpmyadmin里的账号密码无法登录,应该是有加密函数,这里直接搜索登录文件修改:
1 2 3 4 5 6 7 8 9 10 11 12 if (0 ) { $msg = '密码不正确' ; DB::table ('loginlogs' )->insert ([ [ 'adminid' => $Admin ->id, 'logintime' => Carbon ::now ()->format ("Y-m-d H:i:s" ), 'ip' => $request ->getClientIp (), 'status' => 0 , 'info' => $msg , ] ]);
然后还是进不去,没办法只能现搜了:
1 2 3 4 5 6 7 8 9 10 11 [root@yisu-60a2196bb5a4f wwwroot] /www/wwwroot/v9.licai.com/resources/views/hui/index/main.blade.php: <th>系统版本</th> /www/wwwroot/v9.licai.com/storage/framework/views/1d1554f79bff353b2032169de5c8047eaded358d.php: <th>系统 版本</th> /www/wwwroot/v9.licai.com/storage/framework/views/bfc448ab2762840f72e330e7b7eb820ad28e7b3b.php: <th>系统 版本</th> /www/wwwroot/v9.licai.com/storage/framework/views/c3f4a3dc2c77768579626247d9e8c43360755ece.php: <th>系统 版本</th> [root@yisu-60a2196bb5a4f wwwroot] <tbody> <tr > <th>系统版本</th> <td>1.0.190311</td></tr> <tr >
分析涉案网站的会员层级深度,写出最底层会员是多少层。(答案参考格式:66)
请写出存放网站会员等级变化制度的网站代码文件的SHA256值。(答案参考格式: 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [root@yisu-60a2196bb5a4f wwwroot] /www/wwwroot/v9.licai.com/app/Memberrecharge.php: 充值达到金额升级会员等级 /www/wwwroot/v9.licai.com/app/Memberrecharge.php: "title" =>"您升级为" .$levels ->name, /www/wwwroot/v9.licai.com/app/Memberrecharge.php: "content" =>"充值升级(" .$levels ->name.")" , /www/wwwroot/v9.licai.com/app/Memberrecharge.php: "title" =>"您升级为" .$levels ->name, /www/wwwroot/v9.licai.com/app/Memberrecharge.php: "content" =>"充值升级(" .$levels ->name.")" , /www/wwwroot/v9.licai.com/app/Memberrecharge.php: 充值达到金额升级会员等级 /www/wwwroot/v9.licai.com/app/Memberrecharge.php: "title" =>"您升级为" .$levels ->name, /www/wwwroot/v9.licai.com/app/Memberrecharge.php: "content" =>"充值升级(" .$levels ->name.")" , /www/wwwroot/v9.licai.com/app/Memberrecharge.php: "title" =>"您升级为" .$levels ->name, /www/wwwroot/v9.licai.com/app/Memberrecharge.php: "content" =>"充值升级(" .$levels ->name.")" , /www/wwwroot/v9.licai.com/app/Memberrecharge.php: "title" =>"您升级为" .$levels ->name, /www/wwwroot/v9.licai.com/app/Memberrecharge.php: "content" =>"充值升级(" .$levels ->name.")" , /www/wwwroot/v9.licai.com/config/web.php: "PromotionRules" =>"累计投资" ,//会员升级规则 /www/wwwroot/v9.licai.com/resources/views/film/zcxy.blade.php: <p>3. 由于黑客攻击、网络供应商技术调整或故障、网站升级、银行方面的问题等原因而造成的本网站服务中断或延迟;</p> /www/wwwroot/v9.licai.com/resources/views/wap/zcxy.blade.php: <p>3. 由于黑客攻击、网络供应商技术调整或故障、 网站升级、银行方面的问题等原因而造成的本网站服务中断或延迟;</p> /www/wwwroot/v9.licai.com/storage/framework/views/9a9305c5486d13bf975282a31e2c609813839171.php: <p>3. 由于黑 客攻击、网络供应商技术调整或故障、网站升级、银行方面的问题等原因而造成的本网站服务中断或延迟;</p> [root@yisu-60a2196bb5a4f wwwroot] 61afb85d7d147c2b02c5032777d055dd /www/wwwroot/v9.licai.com/app/Memberrecharge.php
计算向网站中累计充值最多的五名会员,获得的下线收益总和(不包含平台赠送)。(答案参考格式:666.66)
先查看下充值最多的五名会员:
1 SELECT userid, username, SUM (amount) AS total_amount FROM memberrecharge WHERE status = 1 GROUP BY userid, username ORDER BY total_amount DESC
1 select sum (moneylog_money) from moneylog where moneylog_type like '%下线%' and moneylog_userid in (7 ,2 ,12 ,11 ,168 )
统计涉案网站中余额大于0且银行卡开户行归属于四川省的潜在受害人数量。(答案参考格式:6)
1 2 3 SELECT COUNT (* )FROM member WHERE amount > 0 AND bankaddress LIKE '%四川%' ;
统计平台从成立之初至“2021-07-01 23:59:59”共收益多少金额(不包含平台赠送)。(答案参考格式:6666.66)
1 select b.a- d.c from (SELECT sum (amount) a FROM `memberrecharge`where type = '用户充值' and `status`= 1 and updated_at < '2021-07-01 23:59:59' ) b,(SELECT sum (amount) c FROM memberwithdrawal where `status` = 1 and updated_at < '2021-07-01 23:59:59' ) d
统计涉案网站哪一天登录的会员人数最多。(答案参考格式:1999-09-09)
1 SELECT DATE (logintime) AS login_date, ip, COUNT (DISTINCT ip) AS login_count FROM loginlogs GROUP BY login_date ORDER BY login_count DESC
2021-06-16
这个答案应该是不对的,查了下Loginlogs这个表是后台访问的记录。
写出涉案网站中给客服发送“你好,怎么充值”的用户的fusername值。(答案参考格式:lanmaobei666)
在/root
路径下存在mysqldump.sql
文件,里面直接搜索可以得到答案hm688