手机取证1. 分析黄志远phone.E01检材黄志远手机总共安装了多少款短视频应用[答案格式1]apk 分析里面4 个。当时把 b 站也算上了2. 分析黄志远phone.E01检材黄志远手机安装的龙虾应用的包名是什么[答案格式com.xxx.ui]很明显就是这个gptos.intelligence.assistant3. 接上题首次打开应用的时间是[答案格式2021-01-11-01:11:44]这个很熟悉了直接搜索包名选择 data 目录下的shared_prefs 文件里面可以找到时间戳转化一下17763979980582026-04-17-11:53:18但是我的 ai 跑错了不该丢的分4. 分析黄志远phone.E01检材黄志远使用此应用攻击过多少台主机[答案格式1]查看包名目录下的文件挨个翻看并没有发现任何 ip 或者攻击记录等等所以答案是 0当时真没想到ai 抽风了找了不知道从哪里来的俩 ip交了个 25. 分析黄志远phone.E01检材黄志远使用哪款应用控制了其PC的agent工具[答案格式wechat]火眼分析出来的这个 discord查看一下应该就是6. 分析黄志远phone.E01检材黄志远使用这款应用的版本是多少[答案格式111.1]在 apk 分析里面找一下311.2我当时写的 311.20 错了很可惜7. 分析黄志远phone.E01检材接上题登录的用户名是什么[答案格式wwww1234]test9012348. 分析黄志远phone.E01检材该应用与pc端agent的配对码是什么[答案格式ABC456]依旧找到 data 目录下的文件翻一翻在这里找到了聊天记录隐藏其他列复制一下内容太多。尝试搜索一下 code第一个搜到的就是 heres your pairing3EXEQ5R89. 分析黄志远phone.E01检材该应用共对几个ip进行扫描[答案格式5]这个继续在聊天记录里面先搜索扫描二字192.168.1.16 192.1681.10找到了两个但是bot 始终处于未配对 / 未执行命令的状态后续 bot 只是在枚举自身命令源码没有真正跑nmap或返回端口信息因此目前还没有完成任何一次有效扫描扫描的 IP 只有一个192.168.61.135从这行命令可以确认(标准的 Kali 渗透测试端口扫描行为)terminal: nmap -sS -sV -sC -O -p- -T4 192.168.6...10. 分析黄志远phone.E01检材该应用总共调用了几个暴力破解工具[答案格式[1]两个(都在终端执行的记录这里 )hydra 爆破密码Gobuster 目录暴力枚举11. 分析黄志远phone.E01检材黄志远使用其内部通联工具进行沟通其账号的登陆密码是多少 [答案格式123456]内部通联工具应该是这个 social_chat_app,因为很多人手机上都有这个名字也像是这个题目先去看了看相关的数据库文件发现是加密的shared_prefs 里面有类似数据库的密码但是不对Pgs-dbw1776839203359Good看了其他人手机的检材偶然看到了这个仿照格式 s-dbw1776839203359Goo拿这个试一试成功进去了可能证明其他人的数据库密码也是这样的可以看到信息是加密了这里有用户id :usr_heiked密码hash :fc29eb768c139c05c0bfcb697d9b26d194878a66451b3ab91b202e9710874a63盐值:a3f8d9c2e1b4h7g6k9m2n5p8q1r4t7w密码就需要爆破了。这里我看格式是纯数字遵循着由简入难的原则先试一试 6、7、8 位纯数字让 ai 写一个脚本尝试不同哈希拼接方式。import hashlib import sys import time TARGET_HASH fc29eb768c139c05c0bfcb697d9b26d194878a66451b3ab91b202e9710874a63 SALT a3f8d9c2e1b4h7g6k9m2n5p8q1r4t7w def h(data: bytes) - str: return hashlib.sha256(data).hexdigest() def d(data: bytes) - bytes: return hashlib.sha256(data).digest() strategies [ (SHA256(pwdsalt), lambda p: h(p.encode() SALT.encode())), (SHA256(saltpwd), lambda p: h(SALT.encode() p.encode())), (SHA256(pwd), lambda p: h(p.encode())), (SHA256(hex SHA256(pwdsalt)), lambda p: h(h(p.encode()SALT.encode()).encode())), (SHA256(raw SHA256(pwdsalt)), lambda p: h(d(p.encode()SALT.encode()))), (SHA256(hex SHA256(saltpwd)), lambda p: h(h(SALT.encode()p.encode()).encode())), (SHA256(raw SHA256(saltpwd)), lambda p: h(d(SALT.encode()p.encode()))), (MD5(pwdsalt), lambda p: hashlib.md5(p.encode()SALT.encode()).hexdigest()), (MD5(saltpwd), lambda p: hashlib.md5(SALT.encode()p.encode()).hexdigest()), ] total_checked 0 start_time time.time() # 从1位到8位依次尝试 digit_lengths [ (1, 10), # 0-9 (2, 100), # 00-99 (3, 1000), # 000-999 (4, 10000), # 0000-9999 (5, 100000), # 00000-99999 ] # 已尝试过6位跳过 digit_lengths.extend([ (7, 10_000_000), # 0000000-9999999 ]) for digits, total in digit_lengths: print(f\n[*] 正在尝试 {digits} 位数字密码 (0~{10**digits-1})...) for pwd_int in range(total): password f{pwd_int:0{digits}d} for name, hash_func in strategies: if hash_func(password) TARGET_HASH: elapsed time.time() - start_time print(f\n[] 找到密码) print(f[] 策略: {name}) print(f[] 密码: {password}) print(f[] 耗时: {elapsed:.2f}秒) sys.exit(0) total_checked 1 if total_checked % 500000 0: elapsed time.time() - start_time rate total_checked / elapsed print(f 进度: {total_checked:,} 次, 耗时 {elapsed:.0f}秒, 速度 {rate:.0f} 次/秒, end\r) sys.stdout.flush() print(f\n[-] 1-7位数字密码穷举完成共 {total_checked:,} 次尝试未找到匹配密码) # 尝试8位数字 print(f\n[*] 正在尝试 8 位数字密码...) for pwd_int in range(100_000_000): password f{pwd_int:08d} for name, hash_func in strategies: if hash_func(password) TARGET_HASH: elapsed time.time() - start_time print(f\n[] 找到密码) print(f[] 策略: {name}) print(f[] 密码: {password}) print(f[] 耗时: {elapsed:.2f}秒) sys.exit(0) total_checked 1 if total_checked % 500000 0: elapsed time.time() - start_time rate total_checked / elapsed print(f 进度: {total_checked:,} 次, 耗时 {elapsed:.0f}秒, 速度 {rate:.0f} 次/秒, end\r) sys.stdout.flush() elapsed time.time() - start_time print(f\n[-] 全部穷举完成共 {total_checked:,} 次尝试耗时 {elapsed:.0f}秒未找到匹配密码)08164085