Network Forensics
- Disk forensics
- Memory forensics
- Host artifacts
Use Cases
- 识别 Command & Control (C2) 通信
- Breach detection
- What was taken?
- Patient Zero
Barriers
- Encryption
- Data size + retention
- Capture location
local capture
SPAN port
TAP
网络数据Acquisition
- Packet Capture: PCAP vs PCAPNG
- Capture Methods
Wireshark 分析
ip.dst == www.mit.edu
ip.src == 192.168.1.1
http contains "https://www.wireshark.org"
http.request.method == "GET"
tcp.port == 80 and ip.src ==192.168.2.1
not ip.addr == 224.1.2.3
Wireshark 的 Statistics
- Protocol Hierarchy
- Conversations
- Endpoints
- IO Graphs
- Flow Graph
Cloud Logging
- srcaddr
- dstaddr
- srcport / dstport
- bytes
- packets
- traffic-path
- start / end time
Windows Artefacts
- USB 使用痕迹
- 文件访问痕迹
- 程序执行痕迹
- 回收站 forensics
- Windows Timeline(SQLite)
Windows Registry
- 用户账户信息
- 系统设备加载历史
- 程序运行记录
- USB设备接入记录
- 文件访问历史
- 软件安装信息
- 浏览器设置
- 网络连接历史
- 登录信息
系统Hive
(C:\Windows\System32\Config\)
Hive名称 内容 forensic价值
SAM Security Accounts Manager 本地用户账号、组、密码哈希
SYSTEM 系统硬件、服务、驱动、挂在设备 识别USB设备、系统设置
SOFTWARE 软件安装信息、应用程序设置 识别被安装/运行的软件
SECURITY 本地安装策略、ACL、安全设置 判断用户访问权限、策略
USB Forensics
SYSTEM\ControlSet###\Enum\USBSTOR
Plug and Play Log (PnP日志 —— 安装时间)
Windows XP: C:\Windows\setupapi.log
Windows 7+: C:\Windows\setupapi.dev.log
MountedDevices
SYSTEM\ControlSet###\MountedDevices
USB 被分配了哪个盘符
是否曾经挂载到了多个盘符上
\DosDevices\F:-> USBSTOR#Disk&Ven_Kingston...
MountPoints2
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints
Link Files
C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\*.lnk
用户双击文件
用户通过Explorer打开某文件
用户打开文档、图片、可执行文件
LNK包含:
原文件路径(F:\reports\plan.docx)
Volume serial number (USBSTOR)
原文件MAC时间
程序执行路径
USB Summary
- USB设备型号、序列号(USBSTOR)
- 第一次被插入的时间(SetupAPI 日志)
- 被分配了哪个盘符(MountedDevices)
- 插入时哪个用户出于登录状态(MountPoints2)
- USB中有哪些文件被访问(LNK files)
Evidence of Execution
Prefetch
Evidence of File Access
- LNK files
- Jump Lists
- Recent Files
- Shellbags
- Windows Search MRU
Recycle Bin Forensics
$Recycle.Bin\
两类文件:
$I files 保存被删除文件的metadata(路径、删除时间、原始大小)
$R files 存放被删除文件的实际内容
eg:
$I1234567 (元数据)
$R1234567 (数据本体)
$I 和 $R 的后缀数字相同 -> 同一个文件
清空回收站并不等于真正删除
- netscan 调查网络行为
- pslist 找出对应进程
- malfind 判断是否为注入行为
- psxview 判断rookit 是否隐藏进程
- 网络行为 -> 找对应进程(netscan)
- 进程是否正常? (pslist / pstree)
- 是否被注入?(malfind)
- 是否隐藏?(psxview)
- 提取样本做offline分析 (procdump)