OS Forensics Notes
OS Forensics Notes
Week 2: Introduction
Forensic Principles
Definition: Digital forensics is a scientific process involving the preservation, collection, validation, and presentation
of digital evidence to support investigations or legal actions.
Locard’s Exchange Principle: Every contact leaves a trace. In forensics, this principle applies to digital interactions,
where traces of activity can often be recovered even if attempts were made to delete them.
4. Reporting: Document findings clearly, considering the audience’s understanding and presenting recommendations.
Core Concepts
Evidence Integrity: Forensic evidence should remain unchanged to ensure admissibility in legal settings.
Techniques include:
Hashing: Use SHA256 or MD5 to verify data integrity by generating unique data "fingerprints."
ACPO Principles:
Principle 2: Only competent individuals should access original data, with explanations of their actions.
Principle 4: Ensure all forensic work follows legal and procedural guidelines.
Investigative Techniques
Data Reduction: Techniques such as keyword searches, hash lookups, and sorting by recent usage narrow the
focus.
Artifact Analysis: Common OS artifacts include filesystems, registry entries, browser data, and logs, each
containing potential evidence of user activity.
Binary to Hex Conversion: Convert binary data into hex by grouping binary in “nibbles” (4 bits each).
Endianness:
Practical Consideration: Endianness impacts data interpretation, particularly with raw disk data, as it affects how
dates, times, and other fields are read.
OS - Revision 1
ACPO Good Practice Guide: Lays out best practices for evidence handling, ensuring preservation, reproducibility,
and adherence to legal standards.
FAT 16 uses 16 bits to represent the cluster number. Therefore, 65,536 possible clusters.
FAT 32 uses 28 bits to represent the cluster number. Therefore, 268,435,456 possible clusters.
FAT 32 also made several changes to the system area. Namely, changes to the volume boot record and the location
of the root directory.
Reserved Sectors
FAT Table 1: Maintains the cluster list of files and free clusters
Data Area: Contains all the file data and any other folders
OS - Revision 2
Cluster 2 Calculation: The location of Cluster 2 (start of data area) can be calculated by adding the reserved
sectors, FAT tables, and root directory entries.
𝑅𝑒𝑠𝑒𝑟𝑣𝑒𝑑 𝑆𝑒𝑐𝑡𝑜𝑟𝑠 + 𝑛𝑜 𝑜𝑓 𝐹𝐴𝑇 ∗ 𝑆𝑒𝑐𝑡𝑜𝑟𝑠 𝑝𝑒𝑟 𝐹𝐴𝑇 + (𝑅𝑜𝑜𝑡 𝐸𝑛𝑡𝑟𝑖𝑒𝑠 𝐵𝑦𝑡𝑒𝑠 𝑝𝑒𝑟 𝑆𝑒𝑐𝑡𝑜𝑟) ∗ (𝑠𝑖𝑧𝑒 𝑜𝑓 𝑑𝑖𝑟 𝑒𝑛𝑡𝑟𝑦)
Directory Entries
Structure:
Fields: File/folder name, extension, attributes, timestamps (creation, access, modified), starting cluster, and file
size.
8.3 Format: Compatible with DOS, storing filenames in 8 characters with a 3-character extension.
Attributes: Each entry has bit flags indicating read-only, hidden, system, directory, archive, and reserved bits.
Date/Time Fields: FAT uses DOS date and time formats for tracking creation, access, and modification.
Long File Names (LFN): Filenames exceeding 8.3 format require multiple directory entries using Unicode, with
checksum to verify data integrity.
S=(C−2)×n+s OR C=n(S−s)+2
s = sector of cluster 2
C = cluster number
S = sector number
Reserved Sectors
FAT Table 1: Maintains the cluster list of files and free clusters
Data Area: Contains all the file data and any other folders
FAT 32 PBR
OS - Revision 3
OEM Identifier 0x03–0x0A 8 Typically identifies the file system
Total Sectors 0x13–0x14 2 Set to 0 in FAT32 (large sector count in Extended BPB)
Backup Boot Sector 0x32–0x33 2 Typically points to sector 6 for backup boot sector
Directory Entries
Each item (file and folder) on the file system has an associated directory entry within the parent folder.
Directory Entries
00000010 Hidden
00000100 System
00010000 Directory
00100000 Archive
01000000 Reserved
10000000 Reserved
If the entry relates to a long file name, then the attribute field will contain the value 0x0F.
OS - Revision 4
Date: 44 D1 – 17 06 2014
Time: 56 ED – 10 55 26
Hundredths of a second: C0 – 192
Time: 17/06/2014 10:55:27 and 92 hundredths.
h h h h h m m m
y y y y y y y m
Y: Indicates the number of years offset from 1980 (0-119) representing years 1980 to 2099.
FAT Table
Tracks cluster usage on the disk, including the status of clusters (used, unused, or bad).
Deleting a File: First byte of the filename in the directory entry is replaced with 0xE5, and FAT clusters are marked
as 0x0000 (indicating unused), but data remains on the disk.
Metadata for LFNs includes sequence numbers, checksum verification, and Unicode filename storage.
File Recovery
OS - Revision 5
When a file is deleted, its filename is partially erased (first byte replaced), but FAT table entries may still retain
cluster information, allowing recovery.
For long filenames, sequence numbers are replaced, but the name can still be recovered as it is not overwritten
entirely.
Allocation strategy used in Windows XP onward may result in old entries remaining in the directory table.
ExFAT Disk Structure: Features Boot Parameters, OME Parameters, Cluster HEAP, and FAT locations.
64-bit cluster addressing, allowing up to 264−12^{64} - 1264−1 in size, though Windows XP is limited to
232−12^{32} - 1232−1.
NTFS Versions
Version 1.0: Released with Windows NT 3.1 (1993).
Version 1.2: Released with Windows NT 3.51 (1995), adding support for compressed files, named streams, and
access control lists.
Version 3.0: Released with Windows 2000, adding disk quotas, encrypted file systems, sparse files, update
sequence number (USN) journaling, $Extend folder, and reorganized security descriptors.
Version 3.1: Released with Windows XP (2001), expanding the MFT record.
Seizure Issues: Files written/deleted before cache clear may be lost or remain deleted.
NTFS Logging: Changes are logged first, allowing the OS to check if the changes were successful and to roll back
or re-commit as necessary.
System files store metadata, and each has a Master File Table (MFT) entry.
OS - Revision 6
System files have filenames that start with $.
NTFS PBR
The Partition Boot Record (PBR) in an NTFS file system is crucial for initiating the loading of NTFS-specific structures.
The NTFS PBR contains fields and metadata needed to locate and load the Master File Table (MFT) and handle NTFS-
specific features.
MFT Start Cluster 0x30–0x37 8 Starting cluster for the Master File Table (MFT)
MFT Mirror Start Cluster 0x38–0x3F 8 Starting cluster for the MFT Mirror
Purpose: This 3-byte instruction allows the CPU to skip the BPB (BIOS Parameter Block) and jump directly to the
executable code, starting the NTFS boot process.
Example: Commonly EB 52 90, where EB represents a short jump, 52 is the jump offset, and 90 is a NOP (no
operation).
Purpose: This is an 8-byte field typically containing the ASCII string "NTFS ". It helps identify the file system as
NTFS.
OS - Revision 7
Bytes per Sector (Bytes 0x0B–0x0C):
Specifies the size of each sector, typically 512 bytes (00 02 in hexadecimal).
Defines the number of sectors in a cluster. Common values are 08, meaning 8 sectors per cluster.
Usually 0x00 00 in NTFS, meaning no reserved sectors (used by FAT but not NTFS).
These fields are typically zero in NTFS. They represent fields like "Number of FATs" in FAT filesystems, which
are irrelevant to NTFS.
This is an 8-byte field representing the total number of sectors in the partition, which allows support for very
large volumes.
Indicates the starting cluster for the Master File Table (MFT), the main database for file and directory entries in
NTFS.
Points to a backup of the MFT, providing a recovery point if the main MFT becomes corrupted.
Purpose: Specifies the size of file record segments in clusters. This value is typically 0xF6 or similar, indicating
1024-byte file records.
Purpose: Defines the size of index buffer segments, used for indexing directories in NTFS. This size is typically set
to a multiple of the cluster size.
Purpose: An 8-byte unique identifier for the volume. This serial number is generated during volume formatting.
Purpose: Contains executable code to load the NTFS file system and continue the boot process. This code locates
and loads the NTFS bootloader, such as bootmgr or ntldr, depending on the Windows version.
Description: This boot code is machine-specific, customized for the NTFS file system, and includes instructions to
locate the MFT and proceed with loading system files.
Purpose: The last two bytes of the PBR are a boot sector signature, 0x55AA, which is a standard identifier
indicating the sector contains valid boot code.
OS - Revision 8
Calculating C:H:S start / end
Take the starting head, starting sector, and starting cylinder values in binary (or the ending)
Then take the first 2 bits (not bytes) from the start sector and add them to the start of the binary for the starting
cylinder. After this is done convert all into decimal and order as cylinder : head : sector
Example (numbers here are random)
head = 14, sector = 3A, cylinder = 10
Convert to binary
head = 18 (decimal), sect = 00111010, cylinder = 00010000
Then sect = 111010 and cylinder= 0000010000
Concert to decimal
Sect = 58 and cylinder = 16
So, the C:H:S = 16:18:58
GPT has:
Partition sizes up to 1 ZiB for 512 byte sectors (4 ZiB for 4KiB)
A “Protective MBR” to prevent legacy devices from overwriting parts of the disk
OS - Revision 9
Master File Table (MFT)
The main file in NTFS, containing file records for each file in the file system, including itself.
Metadata Files
$ MFT Record
File Name Description Details
#
Contains one base file record for each file and folder on an NTFS volume. If
$Mft Master File Table 0 the allocation information for a file or folder is too large to fit within a single
record, other file records are allocated as well.
Contains information used by NTFS for faster recoverability. The log file is
used by Windows Server 2003 to restore metadata consistency to NTFS after
$LogFile Log file 2
a system failure. The size of the log file depends on the volume size, but it
can be increased using the Chkdsk command.
Contains information about the volume, such as the volume label and the
$Volume Volume 3
volume version.
Attribute
$AttrDef 4 Lists attribute names, numbers, and descriptions.
definitions
$Bitmap Cluster bitmap 6 Represents the volume by showing free and unused clusters.
Includes the BPB used to mount the volume and additional bootstrap loader
$Boot Boot sector 7
code if the volume is bootable.
OS - Revision 10
$BadClus Bad cluster file 8 Contains bad clusters for a volume.
$Secure Security File 9 Contains unique security descriptors for all files within a volume.
$Upcase Upcase table 10 Converts lowercase characters to matching Unicode uppercase characters.
NTFS extension Used for various optional extensions such as quotas, reparse point data, and
$Extend 11
file object identifiers.
Reserved for
Reserved 12–15 Reserved for future use.
future use
A header containing the entry's status, bytes used, and other info.
End of each sector in an MFT entry has a 0x55AA signature to verify it was written correctly.
MFT fix-up array keeps a record of values that may have been overwritten by this signature.
MFT Attributes
Each attribute describes part of the file or metadata. Key attributes include:
Attributes can be resident (stored directly within the MFT entry) or non-resident (pointing to clusters where data is
stored).
Data Runs
In non-resident attributes, a run list is used to describe the clusters storing the file's data. Each entry in the list
describes an extent (continuous data section) of the file.
Acts as a central repository for settings, essential for both OS functionality and forensic analysis.
4. Windows 95 and beyond: Full establishment of the Registry, expanding its scope.
OS - Revision 11
Hives: Files that store data in the Registry.
Located at %SYSTEMROOT%\System32\config.
System configuration, connected devices, user details, browsing activity, files accessed, programs executed,
and potential passwords.
Local and UTC Time: Modern OS store time in UTC and calculate differences based on time zones.
Date Representations:
It effectively holds the time zone as an offset from UTC, this gives us the absolute time for the system relative to the
rest of the world, regardless of where it is located
Without this we would have a lot of trouble matching up times between different devices, particularly when they are
in different parts of the world (consider network traffic logs, etc)
Recycle Bin
Recycle Bin (pre-Vista):
Files are renamed and stored with INFO2 records for each deleted file, which include original paths and deletion
timestamps.
Prefetch Files
OS - Revision 12
Location: Stored in C:\Windows\Prefetch.
Link Files
Purpose: Created whenever a file is accessed or modified.
Attributes: Contain metadata such as the volume serial number, file paths, and timestamps.
Linked files are essentially shortcut files which get created when a user interacts with (by opening or modifying) a
file.
They contain the path to the original file, MAC times of the original file, volume serial/identifier (which file system it
comes from), network details (if applicable) and original file size.
They tell us which files the user has been accessing and using (some degree of attribution), as they are stored on a
per-user basis.
They can store information for files which have been deleted, or those which are no longer accessible (USB drive or
networked resource).
ShellBags
Purpose: Stores user view settings for folders, valuable for tracking accessed directories.
OS Thumbnail Caches
Function: Caches thumbnails to reduce loading time for image previews.
Forensics: Cached thumbnails may retain images even after the original file is deleted.
User Account Information: Tracks login history, password requirements, and user privileges.
MountedDevices and USB Devices: Registry entries track devices connected to the system, including details like
vendor ID, product ID, and serial numbers.
OS - Revision 13
Typed URLs in Internet Explorer can be traced, and activity is timestamped.
ShellActivities in Windows 10 track even the titles of windows, such as browser tab titles, including for Tor
Browser.
RunMRU: Logs items entered in the "Run" dialog box, providing insight into command use.
Shellbags:
Shellbags store folder view preferences, which reveal folder paths and modifications even after folders are deleted.
Browsing History: Tracks pages visited, frequently accessed sites, and timestamps.
Internet Cache: Stores data for faster page loading; useful for seeing past page access.
Cookies: Stores session information, helping forensic analysts understand interactions with specific sites.
Browser-Specific Analysis:
Chrome & Firefox: Use SQLite databases for history, cookies, and cache.
DB Browser for SQLite: Examines SQLite files from Firefox, Chrome, and other browsers.
No central Registry; settings distributed across configuration files and directories such as /proc/ (kernel info),
/etc/ (software config), /var/log/ (logs), and /var/lib/.
2. Services:
OS - Revision 14
Networking:
User Accounts:
Account Info: /etc/shadow (hashed passwords), /etc/group (user groups), /etc/sudoers (sudo permissions).
Login Records: /var/log/utmp, wtmp, and btmp track current and past login sessions and failed attempts.
Mount Points:
EXT, EXT2 (no journaling), EXT3 (journaling added), EXT4 (supports large files).
Inodes:
Unix file systems use inodes to store file metadata but not file names.
Directories are structured with inodes, with more complex links in larger files.
User Folders: Located in /Users/<username> with subdirectories like Documents, Desktop, and Library.
Forensic Artifacts
Thumbnails:
Swap Files and File Slack: Track residual data storage areas for recovering deleted data.
HEX
In the MBR data will be big-endian so for example the bytes per sector may contain “0x0002” which will need to be
little-endian before being converted. So 0x0002 becomes 0x0200 which is 512 so translates to 512 bytes per sector.
OS - Revision 15
To calculate the size of a partition in MiB (Mebibytes) when examining an MBR in digital forensics, follow these steps:
In the MBR, the partition table starts at offset 0x1BE and contains four 16-byte entries (one for each possible
primary partition).
Each entry includes the Total Sectors field, which specifies the number of sectors allocated to that partition.
This field is 4 bytes long and located at offset 0x0C within each 16-byte partition entry.
The Total Sectors value is typically in little-endian format (meaning the bytes are ordered from least significant
to most significant).
Convert this 4-byte hex value to decimal to get the total number of sectors in the partition.
Multiply the decimal Total Sectors value by 512 to obtain the partition size in bytes.
To get the partition size in MiB (Mebibytes), divide the result by 1024210242 (1,048,576).
Explanation: This is a 3-byte jump instruction to skip over the next fields and start executing the boot code. Here,
EB 3C is a jump command (jmp short), and 90 is a NOP (no operation) instruction, filling in space.
OS - Revision 16
Explanation: This 2-byte field specifies the number of bytes per sector. Here, 0x0200 in hexadecimal translates to
512 bytes per sector.
Explanation: This 1-byte field indicates the number of sectors per cluster. In this example, the value 0x08 means
there are 8 sectors per cluster.
Explanation: This 2-byte field specifies the number of reserved sectors before the file system's first data section.
Here, 0x0000 means there are no reserved sectors (or it could be a placeholder, depending on the file system
type).
Explanation: This 1-byte field indicates the number of File Allocation Tables (FATs) on the disk. Here, 0x02
signifies two FAT copies.
Explanation: This 2-byte field specifies the maximum number of entries in the root directory. Here, 0x0200 in
hexadecimal translates to 512 root directory entries.
Explanation: For FAT12/FAT16 file systems, this 2-byte field specifies the total number of sectors on the volume if
it's less than 32,768. A value of 0x0000 here suggests the actual count is specified elsewhere (in the “Large
Sectors” field for larger disks).
Explanation: This 1-byte value represents the media descriptor, indicating the storage type. 0xF8 is commonly
used for fixed (non-removable) disks.
Explanation: This 2-byte field specifies the number of sectors per FAT table. Here, 0x0001 means 1 sector per
FAT.
Explanation: This 2-byte field indicates the number of sectors per track. Here, 0x003F translates to 63 sectors
per track.
Explanation: This 2-byte field specifies the number of read/write heads. The value 0xFFFF suggests 65535 heads
or could be a placeholder, depending on the context.
OS - Revision 17
13. Hidden Sectors (Offset 0x1C - 0x1F)
Bytes: 3F 00 00 00
Explanation: This 4-byte field indicates the number of hidden sectors preceding the partition. 0x0000003F means
63 hidden sectors.
Explanation: This 4-byte field is used for disks with more than 32,768 sectors. Here, it’s a placeholder and may
contain other data for compatibility.
Boot Code
Following these fields, the Boot Code starts from offset 0x24 and typically continues until offset 0x1FD. The boot code
contains executable instructions for the initial stages of the OS boot process, including loading system files from the
active partition. The code is machine-specific and varies based on the OS and disk configuration.
These fields form the initial and essential parts of the MBR, setting up parameters for the OS to understand the disk’s
structure and access its contents. If you’d like further details on specific fields or parts of the boot code, let me know!
In this simple example, there are only two “runs”. Let's decode these and place them into the table below.
The first run is 31: 04 00 00 0C
As this is the first run, it contains the starting clusters of the attribute content. There is no jump value as such, so the
jump value for the 1st run should always be left blank.
Next, we need to split the rest into the fragment size and the starting cluster.
Here the header is 31. The first nibble is 3 and the second nibble is 1; so, there is one byte in the run list for the
fragment length and 3 bytes the starting cluster.
The thing to remember here is that the right-hand nibble points to the first piece of data and the left-hand nibble points
the second piece of data. This is a lot easier to show in a drawing:
So, we know that the fragment length (the number of clusters in this run) is given by the first byte of the run itself. This
is 0x04, decimal 4.
As the left nibble in the header is 3, the next 3 bytes give us the starting cluster of this first run (in subsequent runs, this
would be the jump). This gives us 0x00 0x00 0x0C in little endian, so the real value is: 0x0C0000 or decimal 786432.
This is our starting cluster (starting extent). These values are in the first row of the table.
Now onto the second run which is: 32: 7C 03 04 00 F4
We can split this as before, into fragment size and jump value. The fragment size is two bytes this time, 0x7C 0x03.
This is little endian, so the final value is 0x037C.
The jump value, 0x04 0x00 0xF4, is little endian again so convert to big endian: 0xF40004.
A jump could be negative (if the second run is earlier on the disk than the first). To represent this, it is a signed binary
number. A signed binary number uses the most significant bit to indicate that it is a negative. To convert a signed binary
number to decimal, first take two's complement of the binary value (i.e. invert every bit and add 1), then convert to
decimal. Doing this here gives –786428 in decimal.
OS - Revision 18
Finally, to work out the starting cluster of this second run, we need to add the jump to the start of the previous cluster.
I.e. we need to take 0x0C0000 (from the first run) and apply the jump (-786428). We need both values in the same
format, either hex: 0x0C0000 – 0xBFFFC or decimal: 786432 + –786428. Either way, this gives us 0x04 or 4.
Windows Artefacts
Registry Files
Location: C:\Windows\System32\Config\ (System-wide), C:\Users\<username>\NTUSER.DAT (User-specific)
Description: The Windows Registry is a hierarchical database that stores critical configuration information for the OS,
hardware, installed applications, and user-specific settings. Key hives (major sections) include:
SAM (Security Account Manager): Stores hashed passwords and user account details.
NTUSER.DAT: Stores user-specific configurations such as recent files, desktop settings, and application
preferences.
Forensic Use:
Installed Programs: Tracks installed software in the SOFTWARE hive, useful for identifying unauthorized
installations.
USB Device Connections: SYSTEM and SOFTWARE hives record details on connected USBs, including timestamps,
which is helpful for tracking data transfers or unauthorized device usage.
User Activity: NTUSER.DAT files reveal files recently opened, applications executed, and network connections,
allowing investigators to build a timeline of user behavior, pinpoint unauthorized access, or detect signs of data
exfiltration.
Event Logs
Location: C:\Windows\System32\winevt\Logs\
Description: Event logs record system, application, and security events, including
information, warnings, and errors. Key logs:
System: Logs OS and device events like driver loads, crashes, and system reboots.
Security: Logs login/logout events, policy changes, and access control changes. It includes Audit Success and
Audit Failure events, critical for security assessments.
Forensic Use:
Login/Logout Tracking: Security logs track user access, including successful and failed login attempts, which can
help identify unauthorized access.
Policy and System Changes: Detect changes like user account creations, privilege changes, or system
reconfigurations, potentially indicating privilege escalation or malware deployment.
OS - Revision 19
Application Errors: Application log entries can reveal system instability or pinpoint the time malware or
unauthorized software ran.
Browser Artifacts
Locations:
Firefox: C:\Users\<username>\AppData\Roaming\Mozilla\Firefox\Profiles\
Description: Browsers save browsing history, cache, cookies, and bookmarks. Chrome and Firefox use SQLite
databases (History, Cookies, Downloads, and Places files), while Internet Explorer uses the WebCacheV01.dat file
format.
Forensic Use:
Browsing History: Reveals the web pages visited, useful for tracking user interests, research, or interaction with
potentially malicious sites.
Cache and Cookies: Cache files contain copies of visited web pages, and cookies store login sessions and
preferences. These can provide information on accessed accounts, online communications, or the presence of
session tokens.
Downloads: Download logs within browser history can help identify files downloaded, supporting evidence for
malware downloads or unauthorized data access.
Prefetch Files
Location: C:\Windows\Prefetch\
Description: Prefetch files are created when an application is run, containing metadata to optimize loading times. Each
file has a .pf extension and records the last run timestamp and the paths of associated files.
Forensic Use:
Application Usage Timeline: Prefetch files show the last time an application was executed and the number of
executions, aiding in reconstructing user behaviour.
Identifying Suspicious Programs: Suspicious applications or malware may leave traces in Prefetch files even if
deleted. The presence of unusual or unauthorized program names can alert investigators to potentially harmful
software.
Recycle Bin
Location: C:\$Recycle.Bin\
Description: The Recycle Bin stores deleted files temporarily, assigning each a unique identifier and keeping metadata
on the original location and deletion date.
Forensic Use:
Recovery of Deleted Files: Files in the Recycle Bin can be restored to their original state, often revealing attempts to
hide or remove sensitive information.
Deletion Timeline: By examining the deletion timestamps, investigators can identify when files were deleted, which
may coincide with suspicious activities or indicate efforts to cover tracks.
Description: LNK files (shortcut files) are created when a user accesses a file or application, containing metadata such
as the path to the original file, MAC times of the original file, volume serial/identifier (which file system it comes from),
network details (if applicable) and original file size.
Forensic Use:
OS - Revision 20
Access Verification: LNK files provide evidence that a file was accessed even if it’s since been deleted or moved,
proving user interaction with specific files.
Tracking Removable Devices: If LNK files reference files on external drives, they may reveal use of removable
devices, helpful for investigations of data transfers or exfiltration attempts.
Shellbags
Location: Windows Registry at HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\BagMRU
Description: Shellbags store folder view settings for Windows Explorer, tracking the directories that users have
accessed.
Forensic Use:
Folder Access History: Shellbags track folder access even if the folder is deleted, giving insight into directories that
were accessed on the system.
Evidence of Deleted Folders: This artifact can prove access to sensitive folders that may have been deleted to
cover tracks, valuable for timeline reconstruction and uncovering hidden files or directories.
Jump Lists
Location: C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\
Description: Jump Lists track recently accessed documents and applications on Windows 7 and newer. Each entry
contains timestamps and file paths.
Forensic Use:
Recent Activity Tracking: Jump Lists help establish recent user activities, showing what files or programs were
accessed and when.
Behavioral Patterns: Patterns in application and file usage can indicate typical user behavior or identify anomalies,
such as the execution of uncommon programs or access to sensitive files.
Description: Hibernation files store the system’s RAM state during hibernation, while page files are used to extend RAM
on the hard drive, containing data moved from RAM.
Forensic Use:
Volatile Data Recovery: Since hibernation and page files store RAM content, they may contain remnants of open
documents, network activity, or unsaved work, useful for retrieving unsaved passwords or chat history.
Active Session Analysis: Hibernation files may capture data on active sessions, including open programs and
network connections, which can be crucial in cases where the system was powered down during the investigation.
File Recovery: Volume Shadow Copies can retain previous versions of files, making it possible to recover data
modified or deleted over time.
System State History: These snapshots help investigators access historical versions of files and Registry settings,
enabling them to track changes to critical files, system settings, or configurations that may indicate tampering.
OS - Revision 21
NTUSER.DAT Keys (User-Specific Settings)
Location: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
Usefulness: Helps investigators identify recent files accessed by the user, which is essential for understanding
recent user activity and building a timeline.
Location: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
Usefulness: Provides insight into recent actions taken by the user, especially useful if suspicious commands or
scripts were executed.
Usefulness: Tracks user’s web browsing behavior, which can reveal access to suspicious or malicious websites.
Location: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU
Usefulness: Useful for establishing a list of files the user interacted with, which may indicate the user’s actions
leading up to an incident.
Usefulness: Indicates common storage locations and preferred directories, which may contain relevant data for
investigation.
System-Wide Settings
Location: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
Usefulness: Detects potentially malicious software set to persistently run on startup, indicating malware or
unauthorized programs.
Location: HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
Usefulness: Tracks connected storage devices, which can reveal if external drives were used for data transfer or
exfiltration.
Location: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\
Usefulness: Investigates changes in system services, as malicious software often installs its own services for
persistence.
User Assist
Location: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist
Stores: Counts and last accessed timestamps for applications run by the user.
Usefulness: Shows what applications were used frequently or recently by the user, which helps in identifying patterns
of activity or suspicious software usage.
Shellbags
Location: HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\BagMRU and
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags
Stores: Folder view settings for directories accessed by the user.
OS - Revision 22
Usefulness: Tracks access to specific folders, even if they were deleted later. Useful for identifying folders the user
viewed or modified, including hidden or sensitive directories.
Usefulness: Reveals network connections made by the device, useful for tracking potential unauthorized network
access points.
Stores: Information on USB storage devices previously connected, including device IDs and connection timestamps.
Usefulness: Identifies external storage devices connected to the system, which can indicate potential data transfers or
unauthorized access.
Usefulness: Tracks searches conducted on the system, potentially revealing search terms related to suspicious
activities or efforts to locate sensitive files.
Usefulness: Establishes a clear record of user activity on specific files, helpful for creating a timeline or identifying
sensitive documents accessed.
Security Settings
Location: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
Usefulness: Assesses if security settings have been altered, which could indicate attempts to weaken security or
unauthorized changes by an intruder.
Usefulness: Without this we would have a lot of trouble matching up times between different devices, particularly when
they are in different parts of the world (consider network traffic logs, etc). Inconsistencies in time settings may suggest
attempts to alter timestamps on files, which is a common tactic in covering tracks.
Usefulness: Useful for identifying remote connections to the system, which could indicate unauthorized access or
lateral movement within a network.
OS - Revision 23
Application-Specific Artifacts
Location: Varies by application, e.g., HKEY_CURRENT_USER\Software\Microsoft\Office for Microsoft Office.
Communication Forensics
Skype Forensics
Artifacts and Storage Locations:
Skype for Windows Desktop stores data locally in a database file called main.db, which is found at: C:\Users\
<username>\AppData\Roaming\Skype\<Skype username>\
Database Format: SQLite, containing information on chat messages, call logs, file transfers, and contacts.
Cloud-Based Data: In recent versions, much of Skype’s data is stored on Microsoft servers, so local artifacts may
be limited depending on the platform version. Cloud-stored data may require legal authorization to access.
Data Retrieved:
Messages and Chat History: Individual and group messages are stored in main.db under tables like Messages,
allowing investigators to retrieve chat content, timestamps, and sender/receiver information.
Call Logs: Tables in the database, like Calls, contain information on call participants, start/end times, and call
duration.
File Transfers: Records of sent/received files, including filenames, timestamps, and sometimes file paths.
Contacts: Stores contact information, which can link the user to other Skype users or correlate with other contact
lists.
Forensic Use:
Reconstructing Conversations: Chat and call logs allow investigators to piece together conversations, identify
discussion topics, and find references to suspicious activities or relationships.
Timeline Creation: The timestamps on messages, calls, and file transfers help build a chronological timeline of user
interactions.
Link Analysis: Contact and communication frequency data can help establish relationships, potentially linking the
user to associates or uncovering patterns of repeated contact with certain individuals.
Email Forensics
Artifacts and Storage Locations:
Local Email Clients (e.g., Outlook, Thunderbird) store emails on the user’s device in database formats like .pst or
.ost files (Outlook) or in folders like AppData\Roaming\Thunderbird\Profiles\.
Web-Based Email (e.g., Gmail, Outlook.com): Webmail data is generally stored on servers rather than locally.
Accessing this data usually requires legal processes such as subpoenas or cooperation from the email provider.
Logs and Metadata: Email metadata includes headers with information about the sender, recipient, subject, sending
IP address, timestamps, and routing paths.
Data Retrieved:
Message Content: The body of emails, including any attached files, which can reveal discussions, agreements, or
plans.
Attachments: Files sent with emails, potentially containing additional evidence (documents, photos, malware).
Headers and Metadata: Includes details like sender and recipient IP addresses, which can trace the geographical
origin of an email or identify potential spoofing attempts.
Deleted Emails: Deleted messages can sometimes be recovered from backup files, local storage, or provider
archives.
OS - Revision 24
Forensic Use:
Communication Analysis: Email threads provide insights into communication patterns, enabling investigators to
track discussions and identify key participants in certain activities.
Attachment Examination: Attached files may contain incriminating evidence, such as documents related to the
case or malicious files (e.g., malware sent in phishing attacks).
Geolocation and IP Tracking: Email headers often contain IP addresses that can trace the location from which an
email was sent, which is crucial for identifying potential locations of interest or verifying alibis.
Timeline and Behavior Analysis: Email timestamps and patterns (e.g., frequency, timing of emails) can offer
insights into user routines or anomalies in communication that coincide with suspicious events.
WhatsApp: Data is stored locally on devices, and backups may be in iCloud (iOS) or Google Drive (Android). Local
storage often includes databases like msgstore.db.crypt12 (Android), which contain chat history.
iMessage: Stored in SQLite databases on iOS/macOS devices. The chat.db file on macOS stores iMessage history.
Other Apps: Many other apps (e.g., Facebook Messenger, Signal) use encrypted storage and may also store
backups in the cloud or offer end-to-end encryption.
Data Retrieved:
Chat History: Messages with timestamps, sender/receiver data, and group chats.
Contact Information: Information about contacts or group members, linking the user to other individuals.
Location Data: Some messaging apps store location data shared within conversations, which can be critical for
determining user movements.
Deleted Messages: Although many apps provide “delete” functions, forensic software can often recover deleted
messages from databases, especially if the app does not employ strong encryption.
Forensic Use:
Reconstructing Conversations: Chat logs provide a comprehensive record of interactions, and messages can
reveal plans, discussions, or incriminating evidence.
Media Analysis: Shared photos and videos may contain additional clues, like image metadata (e.g., geolocation in
EXIF data), which can provide insights into where and when media was created.
Timeline and Location Correlation: Messaging timestamps and any shared location data help in reconstructing
timelines, placing individuals in certain locations at specific times.
Linking Participants: Contact and group chat data establish associations between individuals, valuable for
determining communication networks and understanding relationships in an investigation.
Internet Browsers
Browsing History
Location:
Firefox: C:\Users\<username>\AppData\Roaming\Mozilla\Firefox\Profiles\<profile>\places.sqlite
Description: Stores records of websites visited, including URLs, visit dates, and times.
Forensic Use: Browsing history provides a record of websites accessed, which can be used to reconstruct a timeline of
user activity, confirm interactions with specific sites, and identify suspicious or inappropriate online behavior.
Investigators can determine what sites were accessed, when, and how often.
OS - Revision 25
Cache Files
Location:
Firefox: C:\Users\<username>\AppData\Local\Mozilla\Firefox\Profiles\<profile>\cache2
Description: The cache stores copies of web pages, images, and other media to load websites faster on subsequent
visits.
Forensic Use: Cache files allow forensic investigators to retrieve content from web pages the user has visited, which
can be crucial when examining deleted or inaccessible online content. For instance, cached images, videos, or page
snapshots might show material related to illegal activity or support evidence of specific web interactions.
Cookies
Location:
Firefox: C:\Users\<username>\AppData\Roaming\Mozilla\Firefox\Profiles\<profile>\cookies.sqlite
Description: Cookies are small files that store user session data, login states, preferences, and tracking information for
websites.
Forensic Use: Cookies reveal session data, such as login status and timestamps, indicating if a user was logged into an
account or interacting with a website at a particular time. They can also track website-specific activity, which is useful
for corroborating access to certain online accounts or services.
Download History
Location:
Description: A record of files downloaded through the browser, including file names, download URLs, and timestamps.
Forensic Use: Download history allows investigators to track potentially suspicious files retrieved from the internet,
which may include malware or unauthorized documents. The download timestamp and source URL help establish when
and from where files were obtained.
Description: Browsers often store form data (such as names, addresses, and email addresses) that users have entered
in web forms.
Forensic Use: Autofill data can reveal user-provided information, including addresses, credit card numbers (if saved),
and account credentials. This information can be instrumental in linking a user to online accounts or services and
providing clues to a user’s identity or personal details.
Search History
Location:
OS - Revision 26
Description: Search history contains records of search terms entered by the user.
Forensic Use: Search queries can provide insights into user intent or areas of interest, which might reveal motives or
suspicious activity. For example, searches related to specific topics can suggest interest or research related to those
subjects.
Firefox: C:\Users\<username>\AppData\Roaming\Mozilla\Firefox\Profiles\<profile>\sessionstore.jsonlz4
Description: Browsers store session data to restore open tabs and windows if the browser crashes or is reopened.
Forensic Use: Session restore files provide snapshots of a user’s browsing session, including all open tabs and their
URLs. This can be crucial for retrieving web pages that were accessed but not saved in browsing history, or for seeing
the user’s immediate online behaviour prior to a shutdown or crash.
ACPO
Principle 1: No Action Alters Data
"No action taken by law enforcement agencies or their agents should change data held on a computer or storage
media which may subsequently be relied upon in court."
Explanation: This principle emphasizes that digital evidence must remain unaltered from the time it is collected to
the time it is presented in court. Any actions taken should not modify the original data, ensuring the evidence’s
authenticity.
Implementation: This is often achieved through write blockers (devices that prevent any writing to a drive),
hashing (creating a digital fingerprint of data), and forensic imaging (creating an exact copy of the original data for
analysis).
Explanation: Only qualified individuals should access the original evidence, as they understand the potential impact
of their actions on the data. This helps ensure that handling procedures are appropriate and minimizes the risk of
accidental data modification.
Implementation: Investigators handling evidence should be trained in digital forensic techniques and should
document any actions they take with the data. If possible, analysis should be conducted on a forensic image rather
than the original evidence.
OS - Revision 27
"An audit trail or other record of all processes applied to computer-based electronic evidence should be created and
preserved. An independent third party should be able to examine those processes and achieve the same result."
Explanation: This principle calls for comprehensive documentation of all actions taken with digital evidence, so that
the process can be independently reviewed and replicated. This audit trail enhances transparency and ensures that
any findings are reproducible.
Implementation: Every step in the handling, analysis, and storage of digital evidence should be recorded. This
includes documenting who accessed the evidence, when it was accessed, and what actions were taken. Chain of
custody forms are often used to track who has had possession of the evidence at each stage.
Explanation: The lead investigator is responsible for making sure that all actions in the investigation comply with
relevant laws and ACPO principles. This person ensures that evidence is handled properly and that legal standards
are met.
Implementation: The investigator must oversee the evidence-handling procedures, provide guidance to the
forensic team, and confirm that the principles are followed throughout the investigation.
The ACPO principles have been central to digital forensics but, as some experts have noted, may need to be adapted
as technology and the field of digital forensics evolve. However, they continue to form a core framework for evidence
handling in digital investigations worldwide.
Recommended Reading
ACPO principles for digital evidence: Time for an update?
The article "ACPO principles for digital evidence: Time for an update?" by Graeme Horsman evaluates the long-
standing ACPO principles, which guide digital evidence handling and forensic practices, questioning their relevance
given rapid advancements in digital forensics. Horsman discusses the four ACPO principles established by the
Association of Chief Police Officers, which have been a benchmark for over a decade in ensuring digital evidence
integrity. He highlights that these principles, while foundational, may now be insufficient due to technological
advancements and evolving investigative challenges.
Horsman proposes a revised framework with eight principles to address current gaps, such as the need for validated
forensic methods, respect for privacy, and limitations on intrusive methods. He argues that an updated set of principles
would offer clearer guidance and more robust standards, particularly in terms of quality assurance and evidence
reliability. The article encourages ongoing debate and review of digital forensic standards to adapt to changes in the
field and improve the quality and accountability of forensic practices.
The article highlights several issues with current testing practices, such as the difficulty in verifying that tools function
correctly across all possible scenarios, the lack of industry-wide standards, and the scarcity of accessible, validated
test data. Horsman reviews the efforts of the National Institute of Standards and Technology (NIST) and its Computer
OS - Revision 28
Forensics Tool Testing (CFTT) project, acknowledging its contributions but also noting its limitations, especially
regarding the scalability of tool validation efforts.
To address these challenges, Horsman presents a survey of industry practitioners, revealing that many are concerned
about tool reliability but lack the resources to conduct thorough testing themselves. He concludes by emphasizing the
need for more standardized testing frameworks and the importance of transparency from forensic tool vendors about
error rates and tool limitations, ultimately advocating for improvements in tool validation to support the credibility and
accuracy of digital forensic evidence.
“I couldn’t find it your honour, it mustn’t be there!” - tool errors, tool limitations
and user error in digital forensics
The article, “I Couldn’t Find it, Your Honour, It Mustn’t Be There!” - Tool Errors, Tool Limitations and User Error in Digital
Forensics by Graeme Horsman, addresses the challenges and implications of errors in digital forensic tools. Horsman
explores three types of issues: tool errors (TE), tool limitations (TL), and user errors (UE), discussing how each impacts
forensic investigations.
Tool Errors (TE): Defined as mistakes within the software that cause incorrect or misrepresented data. These errors
can lead to inaccurate forensic findings, affecting the credibility of evidence.
Tool Limitations (TL): Represent the functional boundaries within which a tool operates effectively. If practitioners
are unaware of these limitations, they may rely on tools beyond their capability, leading to incomplete analysis or
oversight.
User Errors (UE): Occur when users misapply tools or lack understanding of their proper usage, often stemming
from inadequate training or unclear tool documentation.
Horsman highlights the importance of validating forensic tools to ensure reliability, given the impact of inaccurate
evidence in legal contexts. The article suggests improvements, such as greater transparency in tool limitations, better
testing protocols, and enhanced user training. Horsman emphasizes that accountability in digital forensics requires
awareness of tool limitations and the necessity of standardized testing practices.
1. Anticipated Challenges: Challenges like increased encryption, managing massive volumes of data, the rise of
cloud and Internet of Things (IoT) forensics, and integrating cross-disciplinary knowledge from fields like
psychology and social network analysis.
2. Research Opportunities: The article highlights emerging areas for research, including IoT, AI-based forensic
methods, and cloud storage. It also underscores the need for advanced techniques to handle encrypted data and
password recovery.
3. Job-Ready Skills: Emphasizes the need for education in foundational forensics, encryption, memory analysis, and
network traffic analysis, alongside skills in communication and problem-solving to meet future job market demands.
The article concludes that for digital forensics to keep pace with technological advancements, ongoing updates to
educational curricula, standardization of forensic tools and methods, and increased collaboration within the community
are essential.
OS - Revision 29