手机取证

1. 分析黄志远phone.E01检材,黄志远手机总共安装了多少款短视频应用?[答案格式:1]

apk 分析里面,4 个。当时把 b 站也算上了

2. 分析黄志远phone.E01检材,黄志远手机安装的龙虾应用的包名是什么?[答案格式:com.xxx.ui]

很明显就是这个gptos.intelligence.assistant

3. 接上题,首次打开应用的时间是?[答案格式:2021-01-11-01:11:44]

这个很熟悉了,直接搜索包名,选择 data 目录下的,shared_prefs 文件,里面可以找到

时间戳转化一下1776397998058

2026-04-17-11:53:18

但是我的 ai 跑错了,不该丢的分

4. 分析黄志远phone.E01检材,黄志远使用此应用攻击过多少台主机?[答案格式:1]

查看包名目录下的文件

挨个翻看并没有发现任何 ip 或者攻击记录等等,所以答案是 0

当时真没想到,ai 抽风了找了不知道从哪里来的俩 ip,交了个 2

5. 分析黄志远phone.E01检材,黄志远使用哪款应用控制了其PC的agent工具[答案格式:wechat]

火眼分析出来的这个 discord,查看一下,应该就是

6. 分析黄志远phone.E01检材,黄志远使用这款应用的版本是多少?[答案格式:111.1]

在 apk 分析里面找一下

311.2,我当时写的 311.20 错了,很可惜

7. 分析黄志远phone.E01检材,接上题,登录的用户名是什么?[答案格式:wwww1234]

test901234

8. 分析黄志远phone.E01检材,该应用与pc端agent的配对码是什么?[答案格式:ABC456]

依旧找到 data 目录下的文件,翻一翻

在这里找到了聊天记录

隐藏其他列,复制一下,内容太多。尝试搜索一下 code

第一个搜到的就是 here's your pairing 3EXEQ5R8

9. 分析黄志远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(pwd+salt)",           lambda p: h(p.encode() + SALT.encode())),
    ("SHA256(salt+pwd)",           lambda p: h(SALT.encode() + p.encode())),
    ("SHA256(pwd)",                lambda p: h(p.encode())),
    ("SHA256(hex SHA256(pwd+salt))", lambda p: h(h(p.encode()+SALT.encode()).encode())),
    ("SHA256(raw SHA256(pwd+salt))", lambda p: h(d(p.encode()+SALT.encode()))),
    ("SHA256(hex SHA256(salt+pwd))", lambda p: h(h(SALT.encode()+p.encode()).encode())),
    ("SHA256(raw SHA256(salt+pwd))", lambda p: h(d(SALT.encode()+p.encode()))),
    ("MD5(pwd+salt)",              lambda p: hashlib.md5(p.encode()+SALT.encode()).hexdigest()),
    ("MD5(salt+pwd)",              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

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐