User activity
Outlook data files (PST and OST)
Outlook PST/OST cheat sheet: data file locations, mail and deleted items, the Content.Outlook attachment cache, profile keys, new Outlook and parsing.
- Location
- C:\Users\<user>\AppData\Local\Microsoft\Outlook\*.ost
- Proves
- Which emails and attachments a user received, sent, opened or deleted, and when
- Timestamps
- MAPI message properties (submit, delivery, creation, modification) as FILETIME in UTC; header Date fields carry the sender's offset
- Retention
- PST: until the user deletes the file; OST: limited to the cached-mode sync window and rebuilt when the profile is recreated
- Access
- User or admin; PST/OST are locked while Outlook runs, so collect from a shadow copy or raw copy, or close Outlook first
- Evidence of
- User activityFile & folder access
- Type
- File / file system
- Windows
- XPVista / 78 / 8.11011
- KAPE target
- OutlookPSTOST
- Velociraptor
- No dedicated target
Tools
Compare all toolsWhat it is
Classic Outlook (Outlook 2003 to Microsoft 365 Apps) stores mail in two Personal Folders formats:
- PST (Personal Storage Table): a standalone archive used for POP/IMAP accounts, exports and user archives. It is portable and can be opened on any machine.
- OST (Offline Storage Table): a local cache of an Exchange or Microsoft 365 mailbox in Cached Exchange Mode. It is bound to the Outlook profile that created it, but forensic parsers read it directly.
Both hold messages, attachments, calendar items, contacts, tasks and folder structure. In phishing and data-leak cases they are the primary source for what the user actually received, opened and forwarded.
Location
| Item | Path |
|---|---|
| OST (Outlook 2013 and later) | %LOCALAPPDATA%\Microsoft\Outlook\<address>.ost |
| PST (Outlook 2010 and later) | %USERPROFILE%\Documents\Outlook Files\*.pst |
| PST (Outlook 2007 and earlier) | %LOCALAPPDATA%\Microsoft\Outlook\*.pst |
| Opened attachment cache | %LOCALAPPDATA%\Microsoft\Windows\INetCache\Content.Outlook\<8 random chars>\ (Windows 8+; Temporary Internet Files\Content.Outlook on 7) |
| Profiles (Outlook 2013+) | HKCU\Software\Microsoft\Office\<ver>\Outlook\Profiles\<profile>\ |
| Profiles (Outlook 2010 and earlier) | HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\ |
| Cache folder name | HKCU\Software\Microsoft\Office\<ver>\Outlook\Security\OutlookSecureTempFolder |
| Indexed data file paths | HKCU\Software\Microsoft\Office\<ver>\Outlook\Search\Catalog |
PSTs can live anywhere, including removable drives and network shares. The Search\Catalog values and the profile keys often reveal PST paths that no longer exist on disk.
New Outlook for Windows (olk.exe) is a WebView2-based app that does not use an OST. Its local cache sits under %LOCALAPPDATA%\Microsoft\Olk\, reportedly as Chromium-style storage (IndexedDB, cache). Treat that layout as version-dependent and verify on a reference machine.
What it proves
- Proves a message was present in the mailbox, with its sender, recipients, subject, body, headers and attachments.
- Proves user handling: read flag, reply/forward state, the folder it sits in (including Deleted Items), and when the item was last modified.
- A file in
Content.Outlookproves the attachment was opened (or previewed with an external handler) from Outlook on this machine. - It does not prove a message was read by a human: preview pane, rules and mobile clients all change the read flag.
- An OST is a cache: an item missing from it may still exist server-side (Recoverable Items, litigation hold). Request a server-side export when possible.
Key fields
| MAPI property | Meaning |
|---|---|
PR_TRANSPORT_MESSAGE_HEADERS | Full internet headers: Received chain, Message-ID, SPF/DKIM/DMARC results |
PR_CLIENT_SUBMIT_TIME | When the sender submitted the message |
PR_MESSAGE_DELIVERY_TIME | When the message reached the mailbox |
PR_CREATION_TIME / PR_LAST_MODIFICATION_TIME | Item creation and last change in the store |
PR_MESSAGE_FLAGS | Read, unsent, has-attachment flags |
PR_LAST_VERB_EXECUTED + time | Last reply/forward action and when |
PR_ATTACH_LONG_FILENAME | Attachment name; the binary is stored inline |
PR_SENDER_EMAIL_ADDRESS, PR_SENT_REPRESENTING_* | Sender, and "on behalf of" identity |
Timestamps
| Timestamp | Format | Notes |
|---|---|---|
| Submit / delivery time | FILETIME, UTC | Compare with the top Received header to spot clock or relay anomalies |
Header Date: and Received: | RFC 5322 text with offset | Sender and relay local time; normalise to UTC (UTC and local time) |
| Item creation / modification | FILETIME, UTC | Creation time can reflect when the item was synced into the OST, not when the mail was sent |
| PST/OST file $SI times | NTFS, UTC | File modification tracks Outlook activity, not specific messages |
Retention and clearing
- A PST persists until the user deletes the file. Items deleted from Deleted Items leave the folder tree but blocks often survive inside the PST until it is compacted;
pffexportcan recover some of them. - An OST only holds the "mail to keep offline" window. In recent builds the default depends on disk size (commonly between one month and one year), so older mail may exist only on the server.
- Exchange and Microsoft 365 keep hard-deleted items in the server-side Recoverable Items folder for 14 days by default (configurable, longer under hold).
Content.Outlookfiles are normally removed when the attachment is closed, but often remain after a crash or when the file was still open when Outlook exited.
Collection
The data files are locked while Outlook runs. Use a triage tool with raw access or a shadow copy.
# KAPE target
kape.exe --tsource C: --tdest E:\case --target OutlookPSTOST
# Locate every PST/OST, and the attachment cache folder name
Get-ChildItem C:\Users -Recurse -Include *.pst,*.ost -ErrorAction SilentlyContinue
reg query "HKCU\Software\Microsoft\Office\16.0\Outlook\Security" /v OutlookSecureTempFolder
reg query "HKCU\Software\Microsoft\Office\16.0\Outlook\Search\Catalog"
Also collect Content.Outlook, NTUSER.DAT and Downloads.
Parsing tools
- libpff (Joachim Metz, open source):
pffinfoandpffexport -m all -f all file.pstexport items, attachments and recovered items. Support for the 4 KB page OST variant written by Outlook 2013+ has historically been limited; test on your version. - XstReader (open source): Windows GUI to browse PST/OST, view headers and export attachments.
- readpst (libpst): PST to mbox/EML on Linux.
- Commercial: Aid4Mail, Forensic Email Collector, Magnet AXIOM, X-Ways, Intella and Nuix handle PST/OST at scale with search and deduplication.
Investigation tips
- Phishing workflow: find the lure by subject or sender, pull the headers (Received chain, SPF/DKIM/DMARC, Message-ID), export the attachment and hash it, then look for the same filename in
Content.Outlook, Downloads and Zone.Identifier streams to prove it was opened. Pivot to LNK files, Office trust records (macro enabled) and Prefetch of the handling app. - Whether a saved or opened attachment carries Mark of the Web depends on the Outlook build and how it was saved; its absence is not proof the file came from elsewhere.
- Check Outlook rules and forwarding (stored in the mailbox) for business email compromise persistence.
- Several
.ostfiles for one account usually mean the profile was recreated; the older OST may still hold mail deleted since. - When an OST is locked or corrupt, the Windows Search index may still contain indexed message text.
Related artifacts
- Zone.Identifier (Mark of the Web)Zone.Identifier cheat sheet: Mark of the Web ADS, ZoneId 0 to 4, ReferrerUrl and HostUrl per browser, loss and bypass cases, and collection from the $MFT.
- LNK shortcut filesLNK cheat sheet: Recent folder shortcuts, first and last open times, embedded target timestamps, volume serial, network share and TrackerDataBlock MAC.
- Office MRU and Trust RecordsOffice MRU and TrustRecords cheat sheet: File MRU and User MRU keys per Office version, the [T…] timestamp, and how to spot documents with macros enabled.
- Microsoft Teams (classic and new client)Microsoft Teams cheat sheet: classic vs new Teams data folders, IndexedDB LevelDB messages and call logs, logs, and Purview or Graph exports as the reference.
- Browser artifacts (Chrome, Edge, Firefox)Browser forensics cheat sheet: Chromium and Firefox profile files, History and places.sqlite tables, WebKit and PRTime timestamps, downloads, cookies, cache.
- Windows Search indexWindows Search index cheat sheet: Windows.edb (ESE) and Windows 11 SQLite Windows.db, indexed paths, dates and content, deleted records, esentutl collection.
Glossary terms
- FILETIMEThe 64-bit Windows timestamp format counting 100-nanosecond intervals since 1 January 1601 UTC, used by NTFS, the registry and many artifacts.
- Mark of the Web (MOTW)The Zone.Identifier alternate data stream Windows adds to downloaded files, recording the security zone and often the source URL.
- UTC vs local time in Windows artifactsWhy some Windows artifacts record UTC and others local time, and how the TimeZoneInformation registry key helps normalize a forensic timeline.
- Unallocated spaceClusters a file system currently marks as free; they often still contain data from deleted files until new data overwrites them.
Guides
- User Activity Forensics: ShellBags, LNK Files and Jump ListsProve which files and folders a Windows user opened, and when: ShellBags, LNK files, Jump Lists, MRU keys, Office Trust Records and Timeline, correlated.
- Phishing Forensics: MotW, ISO, LNK and Initial AccessTrace a phishing attack from email to first execution: Outlook temp files, Zone.Identifier, ISO and LNK MotW bypass, macros, OneNote, LOLBins and a timeline.