Source: Juni_2026_Exams/Advance_Forensics/notes/12-guided-practical-workbook.md
Guided Practical Workbook
Scope
This workbook consolidates the repository's supplemental disk-forensics exercises. It is not the lecture-derived malware-analysis workbook. For the uploaded 2026 lectures, use notes/13-lecture-exercises-step-by-step.md. Do not invent results when evidence is unavailable.
Use a Windows forensic workstation and a legally obtained practice image. Replace paths and observations in brackets with values from your evidence.
Lab Workspace
Create this structure before beginning:
D:\Forensics-Lab\
βββ 00-Original\
βββ 01-Working-Copy\
βββ 02-Exports\
β βββ Registry\
β βββ MFT\
β βββ LNK\
β βββ EventLogs\
β βββ SuspiciousFiles\
βββ 03-Parser-Output\
βββ 04-Screenshots\
βββ 05-Notes\
Record:
Case:
Evidence filename:
Evidence type:
SHA-256:
Tool and version:
Examiner:
Start time in UTC:
Evidence timezone:
Why: repeatable notes distinguish observations from interpretation and allow another examiner to reproduce the result.
Exercise 1: Load and Survey an Image
Goal: Open evidence correctly and identify the Windows partition and users.
Tool: FTK Imager
- Start FTK Imager.
- Select
FileβAdd Evidence Item. - Choose
Image File. UsePhysical Driveonly for an authorized live
device and preferably through a write blocker.
- Select the first segment, such as
.E01,.001, or.dd. - Expand the evidence tree and identify each partition.
- Find the partition containing
Windows,Users, andProgram Files. - Open
Usersand list profile directories. Exclude obvious service profiles
only after recording them.
- Inspect
Windows\System32\configand confirm thatSYSTEM,SOFTWARE,
SAM, SECURITY, and DEFAULT exist.
- Take a screenshot showing the evidence tree and Windows partition.
Why each step matters: Selecting the wrong partition produces missing or irrelevant artifacts. User-profile names identify where per-user hives, LNK files, browser data, and PowerShell history may exist.
Record:
| Item | Observation |
|---|---|
| Windows partition | [partition] |
| Windows directory | [path] |
| User profiles | [names] |
| Image loaded without errors | [yes/no and error] |
Exercise 2: Export Registry Hives Correctly
Goal: Export system and user hives with transaction logs.
- In FTK Imager, open
Windows\System32\config. - Export
SOFTWARE,SYSTEM,SAM,SECURITY, andDEFAULT. - Export matching
.LOG1and.LOG2files where present. - For every user, export
C:\Users\[user]\NTUSER.DATand its logs. - Export
C:\Users\[user]\AppData\Local\Microsoft\Windows\UsrClass.dat and its logs.
- Rename only the destination copies so ownership remains obvious, for
example john-NTUSER.DAT.
- Record source path, destination path, size, and hash.
- Compare exported sizes with the sizes shown in FTK Imager.
Why: A hive without its logs can omit recent updates. Labeling prevents one user's activity from being attributed to another.
Success test: Registry Explorer can parse every exported hive, and no file is zero bytes.
Exercise 3: Load Hives in Registry Explorer
Goal: Understand the difference between a hive file and a live registry path.
- Open Registry Explorer.
- Load the exported
SOFTWAREhive. - If transaction logs are detected, recover them into a working copy and note
that recovery occurred.
- Navigate from the loaded root to:
Microsoft\Windows NT\CurrentVersion.
- Locate
ProductName,RegisteredOwner, andInstallDate. - Record the logical path as:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion.
- Load
SYSTEMin a separate tab. - Open
Selectand recordCurrent. - If
Current = 1, useControlSet001; ifCurrent = 2, use
ControlSet002.
- Load
SAM, eachNTUSER.DAT, and eachUsrClass.dat, keeping clear user
labels.
Interpretation: RegisteredOwner is a configured string, not proof of the real owner. InstallDate can reflect an upgrade or reset.
Record:
| Hive | Source path | Logs replayed? | Parse errors? |
|---|---|---|---|
| SOFTWARE | [path] |
[yes/no] |
[details] |
| SYSTEM | [path] |
[yes/no] |
[details] |
| SAM | [path] |
[yes/no] |
[details] |
| NTUSER.DAT | [user/path] |
[yes/no] |
[details] |
Exercise 4: Identify the System
Goal: Answer basic system-identification questions with exact sources.
- In
SOFTWARE, open
Microsoft\Windows NT\CurrentVersion.
- Record
ProductName,CurrentBuildorCurrentBuildNumber,
RegisteredOwner, and InstallDate.
- In the active
SYSTEM\ControlSet00x, open
Control\ComputerName\ComputerName.
- Record the
ComputerNamevalue. - Check
Services\Tcpip\ParametersforHostnameand compare it. - Locate timezone information under
Control\TimeZoneInformation.
- Convert
InstallDateonly after verifying its data type and timestamp
format.
Expected conclusion: State exactly what each value says. Do not call RegisteredOwner the confirmed owner.
Exercise 5: Convert and Explain Timestamps
Goal: Convert timestamps without losing source or timezone context.
- Copy the raw
InstallDatevalue. - Record whether it is decimal, hexadecimal, binary FILETIME, or text.
- Open DCode and choose the matching format.
- Convert to UTC.
- Record local time only after identifying the evidence system's timezone and
daylight-saving state for that date.
- Repeat for
SYSTEM\ControlSet00x\Control\Windows\ShutdownTime. - Preserve the raw value beside the converted result.
- Sanity-check the result against other case dates.
Do not: Remove arbitrary bytes from a FILETIME value or assume every registry timestamp uses the same format.
| Artifact | Raw value | Format | UTC result | Limitation |
|---|---|---|---|---|
| InstallDate | [value] |
[format] |
[time] |
May reflect upgrade/reset |
| ShutdownTime | [value] |
FILETIME | [time] |
Last recorded clean shutdown |
Exercise 6: Enumerate User Accounts
Goal: Identify local accounts without guessing from profile folders alone.
- Load
SAM. - Navigate to
SAM\Domains\Account\Users\Names. - Record each username and associated RID.
- Review the corresponding RID key under
Users. - Use a trusted parser for binary account metadata rather than manually
guessing offsets.
- Compare accounts with directories under
C:\Users. - Explain discrepancies, such as an account without a profile or a deleted
account with a remaining profile.
Record: username, RID, account state if reliably parsed, profile path, and the tool used.
Exercise 7: Recent Documents and UserAssist
Goal: Investigate user activity while respecting artifact limitations.
- Load one user's
NTUSER.DAT. - Open
Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs.
- Record
MRUListExordering and relevant entries. - Note filenames and extension subkeys; use a parser if binary values are not
rendered clearly.
- Open
Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist.
- Expand each GUID's
Countkey. - Decode ROT13 value names or use Registry Explorer's available decoding.
- Record execution count and last-run time only when the parser exposes them
reliably.
- Correlate an interesting item with Prefetch, Amcache, LNK, or event logs.
Interpretation: RecentDocs supports recent file interaction. UserAssist is useful for Explorer-launched GUI execution. Neither artifact is a complete history, and absence does not prove an event did not occur.
Exercise 8: Export and Analyze LNK Files
Goal: Recover target paths and contextual metadata from shortcuts.
- Export all files from
C:\Users\[user]\AppData\Roaming\Microsoft\Windows\Recent.
- Keep original directory structure and filenames.
- Parse them with LECmd or the supplied LNK analyzer.
- Export parser results to CSV.
- For each relevant shortcut, record target path, volume information,
working directory, arguments, machine ID if available, and all labeled timestamps.
- Compare the LNK filesystem timestamps with target timestamps stored inside
the LNK. They describe different objects.
- Correlate the target with RecentDocs and
$MFT.
Do not claim: that every target executed or that an LNK target timestamp is the time the shortcut was opened.
Exercise 9: Export and Load $MFT
Goal: Find file records and distinguish metadata from content.
- At the NTFS partition root in FTK Imager, locate
$MFT. - Export it to
02-Exports\MFT. - Record source path, size, and hash.
- Load it in MFT Explorer or parse it with MFTECmd.
- Confirm columns for record number, in-use/deleted state, parent path,
$STANDARD_INFORMATION timestamps, and $FILE_NAME timestamps.
- Search a known Windows file to verify parsing.
Why: NTFS commonly stores two timestamp sets. Always state which attribute produced a time.
Exercise 10: Find Deleted Executables
Goal: Locate deleted .exe records without calling every executable malware.
- Filter for records marked deleted/not in use.
- Filter the filename extension to
.exe. - Record at least three results if the evidence contains them.
- Capture full path, record number, size, and both timestamp sets.
- Check whether the record has resident data.
- Attempt content recovery separately through FTK Imager/Autopsy if required.
- Hash recovered content and identify its file type.
- Assess suspiciousness using path, filename, signature, hash, execution
artifacts, and persistence evidence.
Interpretation: βDeleted executableβ is an observation. βMalwareβ requires additional evidence.
Exercise 11: Search for PowerShell Scripts
- Search
$MFTfor.ps1,.psm1, and.psd1. - Record current and deleted results.
- Check paths under user Downloads, Desktop, Temp, and script directories.
- Export available files and inspect them as text.
- Search PowerShell history at:
C:\Users\[user]\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt.
- Check PowerShell event logs if present.
- Correlate script path and time with execution evidence.
Safety: Do not execute recovered scripts.
Exercise 12: Persistence Investigation
Goal: Find configuration that can cause automatic execution.
- Check system Run and RunOnce keys in
SOFTWARE. - Check Run and RunOnce in every
NTUSER.DAT. - Resolve the active SYSTEM control set.
- Review services with automatic or boot/system start values and inspect
ImagePath, ServiceDll, and account configuration.
- Export and inspect
C:\Windows\System32\Tasks. - Correlate task files with the
TaskCacheregistry keys. - Inspect user and all-users Startup folders.
- Treat the normal
BootExecutevalueautocheck autochk *as expected. - Verify every referenced executable against the filesystem and execution
artifacts.
Finding format:
Observed:
Artifact and path:
Value/task/service:
Referenced executable:
File exists:
Corroboration:
Assessment:
Limitation:
Do not report a registry value creation time unless the artifact truly provides one. A key last-write time is not automatically the creation time of an individual value.
Exercise 13: Build a Correlated Timeline
Goal: Build a defensible timeline, not merely sort unrelated dates.
- Select one event hypothesis, such as βsuspicious executable introduced and
configured for persistence.β
- Collect timestamps from
$MFT, Prefetch, UserAssist, LNK/Jump Lists,
registry keys, event logs, and persistence artifacts.
- Preserve source, raw timestamp, parser, timezone, and interpretation.
- Normalize a copy to UTC while retaining original values.
- Sort chronologically.
- Separate facts from inference.
- Require corroboration before claiming execution or compromise.
| UTC time | Observed event | Artifact/source | Interpretation | Confidence |
|---|---|---|---|---|
[time] |
[fact] |
[path/field] |
[meaning] |
[level] |
Created-after-modified timestamps may result from copying. File access times may be disabled or delayed. Neither condition alone proves anti-forensics.
Exercise 14: Full Mock Investigation
Answer these using only observed evidence:
- What Windows system and hostname are represented?
- Which local users and profiles exist?
- What configured registration information exists?
- What recent file activity is supported?
- Which programs have evidence of execution?
- Are deleted executable or script records present?
- Is persistence configured?
- When was the last recorded clean shutdown?
- What is the most defensible incident timeline?
- Is compromise supported, suspected, or not established?
For every answer include:
- direct answer
- tool and version
- artifact and exact source
- raw and interpreted value
- UTC timestamp where relevant
- corroboration
- confidence
- limitation
Completion Standard
You have completed the workbook when you can:
- load an image and export artifacts without modifying evidence
- load hives with their transaction logs
- resolve an offline SYSTEM control set
- keep users and timestamp sources separate
- parse LNK and MFT artifacts without overstating them
- identify and corroborate persistence
- produce a UTC timeline with explicit sources
- distinguish observation, interpretation, and conclusion
When lecture PDFs are added, create a βLecture Exercisesβ section and map each lecture task to the closest workbook exercise. Add new exercises only where the lecture introduces a distinct artifact or workflow.