2024龙信杯
用到的部分之前没介绍过的小工具可以在WXjzcccc/WXjzc-tool (github.com)中找到
案情
近期,某公安机关接到受害人报案:通过微信添加认识一位相亲中介客服,客服邀约其与“相亲”对象进行选妃,受害人上钩后,整个过程被涉案团伙录音录像,同时,该客服以有更多的对象可供挑选为由,引导受害人下载其事先制作好的木马APP,受害人安装该APP后,嫌疑人利用录制的视频和受害人的通讯录做要挟,从而实施多次诈骗。最终受害人不堪重负,选择报案
手机
1.分析手机检材,请问此手机共通过adb连接过几个设备?[标准格式:3]
文件里一行一个,xml文件里还会有上次连接时间,但是文件名是temp,还是不去看了
结果为2
2.分析手机检材,机主参加考试的时间是什么时候?[标准格式:2024-06-17]
小米便签数据库/data/com.miui.notes/databases/note.db
当天是周一,下周五就是8月23,不过从创建时间来看的话,时间就差得很多了,但是你又不知道他一开始写的啥,还是按修改时间算吧
结果为2024-08-23
3.分析手机检材,请问手机的蓝牙Mac地址是多少?[标准格式:12:12:12:12:12:12]
/misc/bluedroid/bt_config.conf
结果为48:87:59:76:21:0f
4.分析手机检材,请问压缩包加密软件共加密过几份文件?[标准格式:3]
手机中有一个FileCompress软件,data目录和Android/data目录都没有东西,sdcard目录下有一个FileCompress目录
都是需要密码的
找一下软件目录
反编译拿到密码1!8Da9Re5it2b3a.
结果为6
5.分析手机检材,请问机主的另外一个155的手机号码是多少?[标准格式:15555000555]
在上述的mm.txt
中,解压后可以得到手机号
结果为15599555555
6.分析手机检材,其手机存在一个加密容器,请问其容器密码是多少。[标准格式:abc123]
在重要.txt
中。解压后可以得到容器密码d7Avsd!Y]u}J8i(1bnDD@<-o
和服务器密码M6gNFerD8YYu3lq
结果为d7Avsd!Y]u}J8i(1bnDD@<-o
7.分析手机检材,接上问,其容器中存在一份成员名单,嫌疑人曾经误触导致表格中的一个成员姓名被错误修改,请确认这个成员的原始正确姓名?[标准格式:张三]
简单找一下容器
图片里有一个表格
import pandas as pd
df = pd.read_excel(r"名单数据.xlsx",sheet_name='Worksheet')
names = df['姓名'].tolist()
agents = df['邀请人'].tolist()
for agent in agents:
if agent not in names:
print(agent)
#陆陆
找到对应手机号
结果为陆俊梅
8.分析手机检材,接上题,请确认该成员的对应的最高代理人是谁(不考虑总部)?[标准格式:张三]
总部没有上级,上级是空,这样是多树结构,我们给这些总部设置上级为0,然后再添加一行数据,用来计算层级
结果为刘珏兰
9.分析手机检材,请确认在该组织中,最高层级的层次是多少?(从总部开始算第一级)[标准格式:10]
结果为12
10.分析手机检材,请问第二层级(从总部开始算第一级)人员最多的人是多少人?[标准格式:100]
问的应该是第二层的人,下线人数最多的是多少人,不知道包不包含第二层的
或者就是单纯问第二层级的直接下线?那样最多的是13503429521
这个账号,有60
个
结果为1064
或60
11.分析手机检材,机主共开启了几款APP应用分身?[标准格式:3]
手机里1个分身应用
查看其数据库fenshen.db
结果为2
12.分析手机检材,请问机主现在安装了几款即时通讯软件(微博除外)?[标准格式:1]
虚拟机里2个,qq和连信,手机里2个,微信和默往
结果为4
13.分析手机检材,请问勒索机主的账号是多少(非微信ID)?[标准格式:AB123CD45]
微信解密,这个一眼就是默认的1234567890ABCDEF
,具体看之前的文章
但是这里没有sp目录让你去找uin,其实在files/mmkv/system_config_prefs
中是有的
如果这些文件里都没有,那么可以花些时间爆破uin,数据目录哈希是由mm
+uin计算出来的
from hashlib import md5
def compute_md5(text):
_md5 = md5()
_md5.update(("mm"+text).encode('utf-8'))
return _md5.hexdigest()
target_md5 = "a0b534ccdb7db6ab0acbec2945cb2748"
for i in range(100000000,2147483647):
if compute_md5(str(i)) == target_md5:
print(i)
break
if i % 100000000 == 0:
print(str(i)+'...')
#100000000...
#200000000...
#300000000...
#326674411
换个地方后到了默往里
找到userid
解密数据库
找到聊天记录,只是不知道到底要哪个
结果为1836042664454131712
或12233444555
14.分析手机检材,接上问,请问机主通过此应用共删除了多少条聊天记录 ?[标准格式:2]
这是软删除,实际没删,app不显示
结果为1
15.分析手机检材,请问会盗取手机信息的APP应用包名是什么?[标准格式:com.lx.tt]
微信中发送了一个app,过滤一下拿到文件
结果为com.lxlxlx.luoliao
16.接上题,请问该软件作者预留的座机号码是多少?[标准格式:40088855555]
需要解密
结果为40085222666
17.接上题,恶意程序偷取数据的收件邮箱地址的gmail邮箱是多少?[标准格式:lx@gmail.com]
这边定义了邮件的目标地址
之前一堆里可以解出gmail邮箱
结果为1304567895@gmail.com
18.接上题,恶意程序偷取数据的发件邮箱地址是多少?[标准格式:lx@gmail.com]
结果为temp1234@gmail.com
19.接上题,恶意程序偷取数据的发件邮箱密码是多少?[标准格式:abc123]
结果为qwer123456
20.接上题,恶意程序定义收发件的地址函数是什么?[标准格式:a]
结果为b
计算机
1.分析计算机检材,嫌疑人在将其侵公数据出售前在Pycharm中进行了AES加密,用于加密的key是多少?[标准格式:1A23456ABCD]
efs加密了,仿真
结果为65B2564BG89F16G9
2.分析计算机检材,身份证为"371963195112051505"这个人的手机号码是多少?[标准格式:13013524420]
解密部分代码
with open(input_file, "r") as f_in, open(output_file, "w") as f_out:
lines = f_in.readlines()
for line in lines:
parts = line.strip().split(',')
index = parts[0]
f_out.write(index + ",")
decrypted_parts = []
for part in parts[1:]:
encrypted_part = bytes.fromhex(part)
decrypted_part = aes_decrypt(encrypted_part, key, iv)
decrypted_parts.append(decrypted_part)
f_out.write(",".join(decrypted_parts) + "\n")
结果为15075547510
3.分析计算机检材,对解密后的身份证数据列进行单列去重操作,重复的身份证号码数量是多少?(身份证不甄别真假)[标准格式:100]
没看到重复的
import pandas as pd
df = pd.read_csv('decrypted_data.txt',header=None,names=['序号','姓名','身份证','手机号','性别'],encoding='gbk')
print(len(df['身份证'])-len(df['身份证'].unique()))
男性数量 = 0
异常数量 = 0
for index,row in df.iterrows():
if int(str(row['身份证'])[-2]) % 2 == 1:
男性数量 += 1
if row['性别'] == '男' and int(str(row['身份证'])[-2]) % 2 == 0:
异常数量 += 1
elif row['性别'] == '女' and int(str(row['身份证'])[-2]) % 2 == 1:
异常数量 += 1
print(男性数量,异常数量)
结果为0
4.分析计算机检材,接上题,根据身份证号码(第17位)分析性别,男性的数据是多少条?[标准格式:100]
int(str(row['身份证'])[-2]) % 2 == 1
结果为5001714
5.分析计算机检材,接上题,对解密后的数据文件进行分析,甄别身份证号码性别值与标识性别不一致的数量是多少?[标准格式:100]
if row['性别'] == '男' and int(str(row['身份证'])[-2]) % 2 == 0:
异常数量 += 1
elif row['性别'] == '女' and int(str(row['身份证'])[-2]) % 2 == 1:
异常数量 += 1
结果为5001185
6.分析计算机检材,计算机中存在的“VPN”工具版本是多少?[标准格式:1.1]
结果为4.4
7.分析计算机检材,计算机中存在的“VPN”节点订阅地址是什么?标准格式:[http://xxx.xx/x/xxx]
结果为https://paste.ee/d/4eIzU
8.分析计算机检材,eduwcry压缩包文件的解压密码是什么?[标准格式:abcabc]
输入法记录里。。唉手工找一辈子
就在这些bin里面,后续看看能不能写个脚本解析一下
结果为yasuomima
9.分析计算机检材,接上题,请问恶意程序释放压缩包的md5值是多少。[标准格式:全小写]
7z可以直接打开,那么里面就是含了一个压缩包的
wsl突然挂了,foremost提取的话会找不到文件尾,导致多提数据,还是上52拿了resourcehacker
结果为b576ada3366908875e5ce4cb3da6153a
10.分析计算机检材,接上题,请问恶意程序记录的洋葱浏览器下载地址是多少?标准格式:[http://xxx.xxx/xxx/xxx.zip]
本体exe中是没找到,想在压缩包里找,但是压缩包有密码
虚拟机跑一下把资源弄出来,在c.wnry
中找到地址
结果为https://dist.torproject.org/torbrowser/6.5.1/tor-win32-0.2.9.10.zip
*11.分析计算机检材,接上题,请问恶意程序解密了t.wnry后该dll的md5值是多少。[标准格式:全小写]
在这里处理t.wnry
,这个函数应该就是解密文件并将解密后的dll加载到内存当中的
但是呢看不太懂,也没有搞专门的逆向虚拟机,先不动调了
*12.分析计算机检材,接上题,恶意程序运行起来后第一个循环调用了几次taskkill.exe。[标准格式:2]
应该是这边开始搞的,但是应该要先拿到上面的dll
*13.分析计算机检材,接上题,请问@WanaDecryptor@.exe.lnk文件是通过什么函数创建的。[标准格式:Aabcdef]
*14.分析计算机检材,接上题,恶意程序修改系统桌面壁纸是在哪个函数实现的[标准格式:sub_xxx]
15.分析计算机检材,VeraCrypt加密容器的密码是什么?[标准格式:abc]
有个dd文件,实际是压缩包
结果为qwertyuiop1
16.分析计算机检材,其中存在一个苹果手机备份包,手机备份包的密码是什么?[标准格式:12345]
结果为75966
17.分析计算机检材,接上题,机主实际篡改多少条微信数据?[标准格式:1]
根据火眼解析消息碎片和聊天记录
结果为3
18.分析计算机检材,接上题,机主共存款了多少金额?[标准格式:10万]
小西米语音APP的im5db数据库
结果为98万
19.分析计算机检材,在手机模拟器中勒索apk软件的sha256值是什么?[标准格式:全小写]
夜神备份
找到app,很明显是中间那个,另外两个是城信和b站
结果为340BD211955996C5D62BBDE94A0BED4EB3A7965B23AF52114991BCA02346928E
20.分析计算机检材,接上题,请问勒索apk软件的解锁密码是什么?[标准格式:qwer.com]
结果为anzhuo.com
流量分析
1.分析流量包检材,给出管理员对web环境进行管理的工具名。(标准格式:小皮)
后面的webshell做完后可以发现是宝塔面板/www/wwwroot
、/www/server
这样的特征,个人觉得应该不是WordPress
这种,给的答案格式应该也是暗示
结果为宝塔
2.分析流量包检材,给出攻击者的ip地址是多少。(标准格式:127.0.0.1)
目录扫描
结果为192.168.209.135
3.分析流量包检材,给出攻击者爆破出的网站非管理员用户名是。(标准格式:admin)
登录的太多,看进行操作的流量
然后去验证一下,确实是存在的账号
结果为saber
4.分析流量包检材,攻击者进行目录扫描得到的具有后门的页面url路径为。(标准格式:/abc.html)
有up_load.php
和up_load.html
两个,查看一下实际的返回可以发现是后者
结果为/up_load.html
5.分析流量包检材,攻击者通过修改请求包中的哪个字段导致恶意文件成功上传。(标准格式:test-type)
修改了Content-Type
后成功上传
结果为Content-Type
6.分析流量包检材,攻击者上传成功的恶意文件, 该文件的临时存放路径是。(标准格式:/abc/edf)
结果为/tmp/php7Ndiwg
7.分析流量包检材,服务器php配置文件的存放位置(标准格式:/www/sev/php.ini)
这是webshell
目标是有openssl的,所以用的aes加密
解密这个流量
得到返回的数据
将basicInfo解码后另存为html
这样就可以拿到phpinfo
结果为/www/server/php/82/etc/php.ini
8.分析流量包检材,被攻击的web环境其数据库密码是。(标准格式:qwer1234)
简单写了一下流量解析(Byxs20yyds)
import pyshark
import FlowAnalyzer #Byxs20yyds
from Crypto.Cipher import AES
from base64 import b64decode
import re
from rich import print
capture = pyshark.FileCapture("F:\\BaiduNetdiskDownload\\2024龙信杯\\流量包检材.pcapng", display_filter="http")
fa = FlowAnalyzer.FlowAnalyzer("F:\\BaiduNetdiskDownload\\2024龙信杯\\1.json")
# 注释的这一部分用于一开始生成可以解析的json文件
# fa.get_tshark_path("C:\Program Files\Wireshark\tshark.exe")
# fa.extract_json_file(file_name="F:\\BaiduNetdiskDownload\\2024龙信杯\\流量包检材.pcapng",
# tshark_path="C:\\Program Files\\Wireshark\\tshark.exe",
# display_filter="http",
# tshark_work_dir="F:\\BaiduNetdiskDownload\\2024龙信杯",
# json_work_path="F:\\BaiduNetdiskDownload\\2024龙信杯\\1.json")
def decrypt(cipher_text):
key = "e45e329feb5d925b".encode()
iv = bytearray.fromhex("00000000000000000000000000000000")
enc_data = b64decode(cipher_text)
aes = AES.new(key, AES.MODE_CBC, iv)
msg = aes.decrypt(enc_data).decode()
return msg
def get_cmd(b64str):
pattern = r"base64_decode\('(.*?)\)\);"
match = re.findall(pattern, b64str)
b64 = match[0]
cmd_str = b64decode(b64).decode()
cmd_pattern = r'\$cmd="(.*?)";'
cmd_match = re.findall(cmd_pattern, cmd_str)
if cmd_match:
return b64decode(cmd_match[0]).decode()
else:
return None
def get_msg(response_data):
pattern = r'"msg":"(.*?)"\}'
match = re.findall(pattern, response_data)
if match:
return b64decode(match[0]).decode()
else:
return None
requests, responses = fa.parse_http_json()
keys = []
keys.extend(requests.keys())
keys.extend(responses.keys())
keys.sort()
for key in keys:
if key in requests.keys():
request = requests[key]
if request.header.__contains__(b"POST /uploaded_img/cont.php HTTP/1.1\r\n"):
file_data = request.file_data
msg = decrypt(file_data)
cmd = get_cmd(msg)
print(f"[blue]{cmd=}")
if key in responses.keys():
response = responses[key]
file_data = response.file_data
try:
msg = decrypt(file_data)
print(f"[green]response={get_msg(msg)}")
except Exception as e:
pass
结果为X847Z3QzF1a6MHjR
9.分析流量包检材,服务器管理存放临时登录密码的位置。(标准格式:/tmp/pass)
结果为/tmp/tmppass
10.分析流量包检材,黑客获取的高权限主机的登录密码。(标准格式:qwer1234)
结果为passwd!@#
服务器分析
1.分析服务器检材,服务器会做登录密码验证,该登录验证文件位置在?[标准格式:/xxx/xxx/xxx.xxx]
看一下自启动脚本,可以找到一个,判断密码是否正确的,如果和之前保存的密码不一致(也就是仿真改了密码),就会删掉一些东西,比如docker、历史命令等,所以要用手机中找到的密码M6gNFerD8YYu3lq
来登录,不绕密(不过这个密码好像不对),或者先进单用户模式删掉这个脚本
结果为/etc/profile.d/check-system.sh
2.分析服务器检材,服务器ssh端口是多少?[标准格式:1234]
结果为12320
3.分析服务器检材,服务器docker内有多少个镜像。[标准格式:100]
删掉验证脚本
结果为7
4.分析服务器检材,服务器内sqlserver默认账号的密码是?[标准格式:xxx]
docker inspect 39
结果为<i7uFtnkTv8>
5.分析服务器检材,服务器内sqlserver存放了阿里云存储下载地址,该下载地址是?标准格式:[https://xxx]
把这几个数据库容器都启动一下
连接一下即可
结果为https://xinfenfa.oss-accelerate.aliyuncs.com
6.分析服务器检材,服务器内sqlserver内“cmf_user_action_log”表,表内存在的用户操作日志,一共操作次数是多少?[标准格式:100]
表里有一个counts
字段用于表示操作次数
结果为99684318
7.分析服务器检材,该服务器正在使用的数据库的持久化目录是什么?[标准格式:/xxx/xxx]
找到项目路径
项目使用的是mongodb,查看配置docker inspect d4
结果为/data/mongo
8.分析服务器检材,该网站后台正在使用的数据库有多少个集合?[标准格式:100]
连接时验证数据库要为admin
结果为13
9.分析服务器检材,该网站的后台登录地址是?[标准格式:/xxx/xxx.xxx 全小写,不加域名]
网站无法正常运行,这是因为缺少了mongo的依赖
再次通过日志可以发现,其实以前用的是mysql
连接到mysql后发现这个库并没有任何表
安装依赖可能行不通,因为这明显是为了出题故意改的,实际代码里应该没有做mongo的改动,所以还是把数据转回mysql比较好
导入完成后改一下配置文件
这样直接访问/appmanager
就可以进入后台
这和模块名是互相印证的,按照常规的thinkphp框架,这个appmanager
应该是admin
,常规访问/admin
跳转后台
访问后回跳转到完整路径
结果为/appmanager/common/login.html
10.分析服务器检材,该网站后台使用的管理员加密算法是?[标准格式:全大写]
在/opt/bl.dsnbbaj686.fit/www/app/appmanager/controller/Admin.php
中找到加密函数为encryptpass
,该方法在/opt/bl.dsnbbaj686.fit/www/app/appmanager/common.php
中定义
结果为BCRYPT
11.分析服务器检材,该网站最早使用超级管理员进行删除管理员操作的IP地址是?[标准格式:x.x.x.x]
知道加密方式,直接生成密码替换登录
各种问题。。
直接翻数据库
结果为117.132.191.203
12.分析服务器检材,该网站后台上传过sha256值为“b204ad1f475c7716daab9afb5f8d61815c508f2a2b1539bc1f42fe2f212b30d1”的压缩包文件,该文件内的账单交易订单号是多少?[标准格式:123456]
找到上传路径
下载下来发现存在密码,注释带了密码组成
暴力
得到密码MTj02
是一张图片
结果为20240321000000005443369778283185
13.分析服务器检材,该网站存在网站数据库备份功能,该功能的接口地址是?[标准格式:/xxx/xxx 全小写,不加域名]
按理说应该加上export
?
结果为/appmanager/databackup
*14.分析服务器检材,该网站存放银行卡信息数据表中,其中信息数量前十的公司对应旗下visa银行卡一共有多少金额?[标准格式:100.00]
很难理解这里面的意思,因为这个数据库实际上并不完整,少了几张表,不知道这个信息和短信是不是有什么关联
结果为21701599.63
*15.分析服务器检材,该网站在2023年二月一共获取了多少条通信记录?[标准标准格式:100]
只能这么理解??我是真的怀疑哪里存了一个数据库备份,但是没有找到
结果为2879
16.分析服务器检材,该网站的一条管理员信息存在数据篡改,请分析是哪个管理员信息遭到篡改,该管理员用户名是?[标准格式:ABCDE] 2)
只找到一个时间有异常的
结果为xYpMLuROhNl