Difference between pages "Carver 2.0 Planning Page" and "Windows"

From ForensicsWiki
(Difference between pages)
Jump to: navigation, search
(Requirements)
 
(Windows Firewall)
 
Line 1: Line 1:
This page is for planning Carver 2.0.
+
{{Expand}}
  
Please, do not delete text (ideas) here. Use something like this:
+
'''Windows''' is a widely-spread [[operating system]] from [[Microsoft]].
  
<pre>
+
There are 2 main branches of Windows:
<s>bad idea</s>
+
* the DOS-branch: i.e. Windows 95, 98, ME
:: good idea
+
* the NT-branch: i.e. Windows NT 4, XP, Vista
</pre>
+
  
This will look like:
+
== Features ==
 +
* Basic and Dynamic Disks, see: [http://msdn.microsoft.com/en-us/library/windows/desktop/aa363785(v=vs.85).aspx]
  
<s>bad idea</s>
+
=== Introduced in Windows NT ===
:: good idea
+
* [[NTFS]]
  
= License =
+
=== Introduced in Windows 2000 ===  
  
BSD-3.
+
=== Introduced in Windows XP ===
:: [[User:Joachim Metz|Joachim]] library based validator could need other licenses
+
* [[Prefetch]]
 +
* System Restore (Restore Points); also present in Windows ME
  
= OS =
+
==== SP2 ====
 +
* Windows Firewall
  
Linux/FreeBSD/MacOS
+
=== Introduced in Windows 2003 (Server) ===
: Shouldn't this just match what the underlying afflib & sleuthkit cover? [[User:RB|RB]]
+
* Volume Shadow Copies
:: Yes, but you need to test and validate on each. Question: Do we want to support windows? [[User:Simsong|Simsong]] 21:09, 30 October 2008 (UTC)
+
:: [[User:Joachim Metz|Joachim]] I think we would do wise to design with windows support from the start this will improve the platform independence from the start
+
:::: Agreed; I would even settle at first for being able to run against Cygwin.  Note that I don't even own or use a copy of Windows, but the vast majority of forensic investigators do. [[User:RB|RB]] 14:01, 31 October 2008 (UTC)
+
  
= Requirements =
+
=== Introduced in Windows Vista ===
 +
* [[BitLocker Disk Encryption | BitLocker]]
 +
* [[Windows Desktop Search | Search]] integrated in operating system
 +
* [[SuperFetch]]
 +
* [[NTFS|Transactional NTFS (TxF)]]
 +
* [[Windows NT Registry File (REGF)|Transactional Registry (TxR)]]
 +
* [[Windows Shadow Volumes|Shadow Volumes]]; the volume-based storage of the Volume Shadow Copy data
 +
* $Recycle.Bin
 +
* [[Windows XML Event Log (EVTX)]]
 +
* [[User Account Control (UAC)]]
  
* [[User:Joachim Metz|Joachim]] A name for the tooling I propose coldcut
+
=== Introduced in Windows 2008 (Server) ===
:: How about 'butcher'?  ;)  [[User:RB|RB]] 14:20, 31 October 2008 (UTC)
+
  
[[User:Joachim Metz|Joachim]] Could we do a MoSCoW evaluation of these.
+
=== Introduced in Windows 7 ===
 +
* [[BitLocker Disk Encryption | BitLocker To Go]]
 +
* [[Jump Lists]]
 +
* [[Sticky Notes]]
  
* AFF and EWF file images supported from scratch. ([[User:Joachim Metz|Joachim]] I would like to have raw/split raw and device access as well)
+
=== Introduced in Windows 8 ===
:: If we base our image i/o on afflib, we get all three with one interface. [[User:RB|RB]]
+
* [[Windows Shadow Volumes | File History]]
* [[User:Joachim Metz|Joachim]] volume/partition aware layer (what about carving unpartioned space)
+
* [[Windows Storage Spaces | Storage Spaces]]
* File system aware layer.
+
* [[Resilient File System (ReFS)]]; server edition will likely be available in Windows Server 2012
** By default, files are not carved. (clarify: only identified? [[User:RB|RB]]; I guess that it operates like [[Selective file dumper]] [[User:.FUF|.FUF]] 07:00, 29 October 2008 (UTC))
+
* Plug-in architecture for identification/validation.
+
** [[User:Joachim Metz|Joachim]] support for multiple types of validators
+
*** dedicated validator
+
*** validator based on file library (i.e. we could specify/implement a file structure for these)
+
*** configuration based validator (Can handle config files,like Revit07, to enter different file formats used by the carver.)
+
* Ship with validators for:
+
[[User:Joachim Metz|Joachim]] I think we should distinguish between file format validators and content validators
+
** JPEG
+
** PNG
+
** GIF
+
** MSOLE
+
** ZIP
+
** TAR (gz/bz2)
+
  
[[User:Joachim Metz|Joachim]] For a production carver we need at least the following formats
+
== Forensics ==
** Grapical Images
+
*** JPEG (the 3 different types with JFIF/EXIF support)
+
*** PNG
+
*** GIF
+
*** BMP
+
*** TIFF
+
** Office documents
+
*** OLE2 (Word/Excell content support)
+
*** PDF
+
*** Open Office/Office 2007 (ZIP+XML)
+
** Archive files
+
*** ZIP
+
*** 7z
+
*** gzip
+
*** bzip2
+
*** tar
+
*** RAR
+
** E-mail files
+
*** PFF (PST/OST)
+
*** MBOX (text based format, base64 content support)
+
** Audio/Video files
+
*** MPEG
+
*** MP2/MP3
+
*** AVI
+
*** ASF/WMV
+
*** QuickTime
+
*** MKV
+
** Printer spool files
+
*** EMF (if I remember correctly)
+
** Internet history files
+
*** index.dat
+
*** firefox (sqllite 3)
+
** Other files
+
*** thumbs.db
+
*** pagefile?
+
  
* Simple fragment recovery carving using gap carving.
+
=== Partition layout ===
** [[User:Joachim Metz|Joachim]] have hook in for more advanced fragment recovery?
+
Default partition layout, first partition starts:
* Recovering of individual ZIP sections and JPEG icons that are not sector aligned.
+
* at sector 63 in Windows 2000, XP, 2003
** [[User:Joachim Metz|Joachim]] I would propose a generic fragment detection and recovery
+
* at sector 2048 in Windows Vista, 2008, 7
* Autonomous operation (some mode of operation should be completely non-interactive, requiring no human intervention to complete [[User:RB|RB]])
+
** [[User:Joachim Metz|Joachim]] as much as possible, but allow to be overwritten by user
+
* Tested on 500GB-sized images. Should be able to carve a 500GB image in roughly 50% longer than it takes to read the image.
+
** Perhaps allocate a percentage budget per-validator (i.e. each validator adds N% to the carving time) [[User:RB|RB]]
+
** [[User:Joachim Metz|Joachim]] have multiple carving phases for precision/speed trade off?
+
* Parallelizable
+
** [[User:Joachim Metz|Joachim]] tunable for different architectures
+
* Configuration:
+
** Capability to parse some existing carvers' configuration files, either on-the-fly or as a one-way converter.
+
** Disengage internal configuration structure from configuration files, create parsers that present the expected structure
+
** [[User:Joachim Metz|Joachim]] The validator should deal with the file structure the carving algorithm should not know anything about the file structure (as in revit07 design)
+
**  Either extend Scalpel/Foremost syntaxes for extended features or use a tertiary syntax ([[User:Joachim Metz|Joachim]] I would prefer a derivative of the revit07 configuration syntax which already has encountered some problems of dealing with defining file structure in a configuration file)
+
* Can output audit.txt file.
+
* [[User:Joachim Metz|Joachim]] Can output database with offset analysis values i.e. for visualization tooling
+
* [[User:Joachim Metz|Joachim]] Can output debug log for debugging the algorithm/validation
+
* Easy integration into ascription software.
+
** [[User:Joachim Metz|Joachim]] I'm no native speaker what do you mean with "ascription software"?
+
:: I think this was another non-native requesting easy scriptability. [[User:RB|RB]] 14:20, 31 October 2008 (UTC)
+
:::: [[User:Joachim Metz|Joachim] that makes sense ;-)
+
  
= Ideas =
+
=== Filesystems ===
* Use as much TSK if possible. Don't carry your own FS implementation the way photorec does.
+
* [[FAT]], [[FAT|exFAT]]
** [[User:Joachim Metz|Joachim]] using TSK as much as possible would not allow to add your own file system support (i.e. mobile phones, memory structures, cap files) I would propose wrapping TSK and using it as much as possible but allow to integrate own FS implementations.
+
* [[NTFS]]
* Extracting/carving data from [[Thumbs.db]]? I've used [[foremost]] for it with some success. [[Vinetto]] has some critical bugs :( [[User:.FUF|.FUF]] 19:18, 28 October 2008 (UTC)
+
* [[Resilient File System (ReFS) | ReFS]]
** [[User:Joachim Metz|Joachim]] this poses an interesting addition to the carver do we want to support (let's call it) 'recursive in file carving' (for now) this is different from embedded files because there is a file system structure in the file and not just another file structure
+
* Carving data structures. For example, extract all TCP headers from image by defining TCP header structure and some fields (e.g. source port > 1024, dest port = 80). This will extract all data matching the pattern and write a file with other fields. Another example is carving INFO2 structures and URL activity records from index.dat [[User:.FUF|.FUF]] 20:51, 28 October 2008 (UTC)
+
** This has the opportunity to be extended to the concept of "point at blob FOO and interpret it as BAR"
+
  
== Configuration language/specification ==
+
=== Recycle Bin ===
.FUF added:
+
The main idea is to allow users to define structures, for example (in pascal-like form):
+
  
<pre>
+
==== RECYCLER ====
Field1: Byte = 123;
+
Used by Windows 2000, XP.
SomeTextLength: DWORD;
+
Uses INFO2 file.
SomeText: string[SomeTextLength];
+
Field4: Char = 'r';
+
...
+
</pre>
+
  
This will produce something like this:
+
See: [http://www.cybersecurityinstitute.biz/downloads/INFO2.pdf]
<pre>
+
Field1 = 123
+
SomeTextLength = 5
+
SomeText = 'abcd1'
+
Field4 = 'r'
+
</pre>
+
  
(In text or raw forms.)
+
==== $RECYCLE.BIN ====
 +
Used by Windows Vista.
 +
Uses $I and $R files.
  
Opinions?
+
See: [http://www.forensicfocus.com/downloads/forensic-analysis-vista-recycle-bin.pdf]
  
Opinion: Simple pattern identification like that may not suffice, I think Simson's original intent was not only to identify but to allow for validation routines (plugins, as the original wording was).  As such, the format syntax would need to implement a large chunk of some programming language in order to be sufficiently flexible. [[User:RB|RB]]
+
=== Registry ===
  
[[User:Joachim Metz|Joachim]]
+
The [[Windows Registry]] is a database of keys and values that provides a wealth of information to forensic [[investigator]]s.
In my option your example is too limited. Making the revit configuration I learned you'll need a near programming language to specify some file formats.
+
A simple descriptive language is too limiting. I would also go for 2 bytes with endianess instead of using terminology like WORD and small integer, it's much more clear. The configuration also needs to deal with aspects like cardinality, required and optional structures.
+
  
Please take a look at the revit07 configuration. It's not there yet but goes a far way. Some things currently missing:
+
=== Thumbs.db Files ===
* bitwise alignment
+
* handling encapsulated streams (MPEG/capture files)
+
* handling content based formats (MBOX)
+
  
=Caving algorithm =
+
[[Thumbs.db]] files can be found on many Windows systems. They contain thumbnails of images or documents and can be of great value for the [[investigator]].
[[User:Joachim Metz|Joachim]]
+
* should we allow for multiple runs?
+
* should we allow for multiple algorithms?
+
* does the algorithm passes data blocks to the validators?
+
* does a validator need to maintain a state?
+
* does a validator need to revert a state?
+
* do we use the assumption that a data block can be used by a single file (with the exception of embedded/encapsulated files)?
+
  
==Caving scenarios ==
+
See also: [[Vista thumbcache]].
[[User:Joachim Metz|Joachim]]
+
* normal file (file structure, loose text based structure (more a content structure?))
+
* fragmented file (the file entirely exist)
+
* a file fragment (the file does not entirely exist)
+
* intertwined file
+
* encapsulated file (MPEG/network capture)
+
* embedded file (JPEG thumbnail)
+
* obfuscation ('encrypted' PFF) this also entails encryption and/or compression
+
* file system in file
+
  
=File System Awareness =
+
=== Browser Cache ===
==Background: Why be File System Aware?==
+
Advantages of being FS aware:
+
* You can pick up sector allocation sizes
+
:: [[User:Joachim Metz|Joachim]] do you mean file system block sizes?
+
* Some file systems may store things off sector boundaries. (ReiserFS with tail packing)
+
* Increasingly file systems have compression (NTFS compression)
+
* Carve just the sectors that are not in allocated files.
+
  
==Tasks that would be required==
+
=== Browser History ===
  
==Discussion==
+
The [[Web Browser History]] files can contain significant information. The default [[Web browser|web browser]] that comes with Windows is [[Internet Explorer|Microsoft Internet Explorer]] but other common browsers on Windows are [[Apple Safari]], [[Google Chrome]], [[Mozilla Firefox]] and [[Opera]].
:: As noted above, TSK should be utilized as much as possible, particularly the filesystem-aware portion. If we want to identify filesystems outside of its supported set, it would be more worth our time to work on implementing them there than in the carver itself.  [[User:RB|RB]]
+
  
:::: I guess this tool operates like [[Selective file dumper]] and can recover files in both ways (or not?). Recovering files by using carving can recover files in situations where sleuthkit does nothing (e.g. file on NTFS was deleted using ntfs-3g, or filesystem was destroyed or just unknown). And we should build the list of filesystems supported by carver, not by TSK. [[User:.FUF|.FUF]] 07:08, 29 October 2008 (UTC)
+
=== Search ===
 +
See [[Windows Desktop Search]]
 +
 
 +
=== Setup log files (setupapi.log) ===
 +
Windows Vista introduced several setup log files [http://support.microsoft.com/kb/927521].
 +
 
 +
=== Sleep/Hibernation ===
 +
 
 +
After (at least) Windows 7 recovers from sleep/hibernation there often is a system time change event (event id 1) in the event logs.
 +
 
 +
=== Users ===
 +
Windows stores a users Security identifiers (SIDs) under the following registry key:
 +
<pre>
 +
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
 +
</pre>
 +
 
 +
The %SID%\ProfileImagePath value should also contain the username.
 +
 
 +
=== Windows Error Reporting (WER) ===
 +
 
 +
As of Vista, for User Access Control (UAC) elevated applications WER reports can be found in:
 +
<pre>
 +
C:\ProgramData\Microsoft\Windows\WER\
 +
</pre>
 +
 
 +
As of Vista, for non-UAC elevated applications (LUA) WER reports can be found in:
 +
<pre>
 +
C:\Users\%UserName%\AppData\Local\Microsoft\Windows\WER\
 +
</pre>
 +
 
 +
Corresponding registry key:
 +
<pre>
 +
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting
 +
</pre>
 +
 
 +
== Advanced Format (4KB Sector) Hard Drives ==
 +
Windows XP does not natively handle drives that use the new standard of 4KB sectors. For information on this, see [[Advanced Format]].
 +
 
 +
== %SystemRoot% ==
 +
The actual value of %SystemRoot% is store in the following registry value:
 +
<pre>
 +
Key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\
 +
Value: SystemRoot
 +
</pre>
  
:: This tool is still in the early planning stages (requirements discovery), hence few operational details (like precise modes of operation) have been fleshed out - those will and should come later.  The justification for strictly using TSK for the filesystem-sensitive approach is simple: TSK has good filesystem APIs, and it would be foolish to create yet another standalone, incompatible implementation of filesystem(foo) when time would be better spent improving those in TSK, aiding other methods of analysis as well.  This is the same reason individuals that have implemented several other carvers are participating: de-duplication of effort.  [[User:RB|RB]]
+
== See Also ==
 +
* [[Windows Event Log (EVT)]]
 +
* [[Windows XML Event Log (EVTX)]]
  
[[User:Joachim Metz|Joachim]] I would like to have the carver (recovery tool) also do recovery using file allocation data or remainders of file allocation data.
+
== External Links ==
  
[[User:Joachim Metz|Joachim]]  
+
* [http://en.wikipedia.org/wiki/Microsoft_Windows Wikipedia: Microsoft Windows]
I would go as far to ask you all to look beyond the carver as a tool and look from the perspective of the carver as part of the forensic investigation process. In my eyes certain information needed/acquired by the carver could be also very useful investigative information i.e. what part of a hard disk contains empty sectors.
+
* [http://support.microsoft.com/kb/927521 Windows 7, Windows Server 2008 R2, and Windows Vista setup log file locations]
 +
* [http://www.forensicfocus.com/downloads/forensic-analysis-vista-recycle-bin.pdf The Forensic Analysis of the Microsoft Windows Vista Recycle Bin], by [[Mitchell Machor]], 2008
 +
* [http://www.ericjhuber.com/2013/02/microsoft-file-system-tunneling.html?m=1 Microsoft Windows File System Tunneling], by [[Eric Huber]], February 24, 2013
 +
* [http://www.nsa.gov/ia/_files/app/Spotting_the_Adversary_with_Windows_Event_Log_Monitoring.pdf Spotting the Adversary with Windows Event Log Monitoring], by National Security Agency/Central Security Service, February 28, 2013
  
=Supportive tooling=
+
=== Under the hood ===
[[User:Joachim Metz|Joachim]]
+
* [http://msdn.microsoft.com/en-us/library/windows/desktop/aa366533(v=vs.85).aspx MSDN: Comparing Memory Allocation Methods], by [[Microsoft]]
* validator (definitions) tester (detest in revit07)
+
* [http://blogs.msdn.com/b/ntdebugging/archive/2007/06/28/how-windows-starts-up-part-the-second.aspx How Windows Starts Up (Part the second)]
* tool to make configuration based definitions
+
* [http://msdn.microsoft.com/en-us/library/aa375142.aspx DLL/COM Redirection]
* post carving validation
+
* [http://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs.85).aspx Dynamic-Link Library Search Order]
* the carver needs to provide support for fuse mount of carved files (carvfs)
+
* [http://blogs.msdn.com/b/junfeng/archive/2004/04/28/121871.aspx Image File Execution Options]
  
=Testing =
+
=== MSI ===
[[User:Joachim Metz|Joachim]]
+
* [http://blogs.msdn.com/b/heaths/archive/2009/02/02/changes-to-package-caching-in-windows-installer-5-0.aspx?Redirected=true Changes to Package Caching in Windows Installer 5.0], by Heath Stewart, February 2, 2009
* automated testing
+
* [http://blog.didierstevens.com/2013/07/26/msi-the-case-of-the-invalid-signature/ MSI: The Case Of The Invalid Signature], by Didier Stevens, July 26, 2013
* test data
+
  
=Validator Construction=
+
=== Side-by-side (WinSxS) ===
Options:
+
* [http://en.wikipedia.org/wiki/Side-by-side_assembly Wikipedia: Side-by-side assembly]
* Write validators in C/C++
+
* [http://msdn.microsoft.com/en-us/library/aa374224.aspx Assembly Searching Sequence]
** [[User:Joachim Metz|Joachim]] you mean dedicated validators
+
* [http://blogs.msdn.com/b/junfeng/archive/2007/06/26/rt-manifest-resource-and-isolation-aware-enabled.aspx RT_MANIFEST resource, and ISOLATION_AWARE_ENABLED]
* Have a scripting language for writing them (python? Perl?) our own?
+
* [http://msdn.microsoft.com/en-us/library/windows/desktop/dd408052(v=vs.85).aspx Isolated Applications and Side-by-side Assemblies]
** [[User:Joachim Metz|Joachim]] use easy to embed programming languages i.e. Phyton or Lua
+
* [http://blogs.msdn.com/b/junfeng/archive/2006/01/24/517221.aspx#531208 DotLocal (.local) Dll Redirection], by [[Junfeng Zhang]], January 24, 2006
* Use existing programs (libjpeg?) as plug-in validators?
+
* [http://blogs.msdn.com/b/junfeng/archive/2006/04/14/576314.aspx Diagnosing SideBySide failures], by [[Junfeng Zhang]], April 14, 2006
** [[User:Joachim Metz|Joachim]] define a file structure api for this
+
* [http://omnicognate.wordpress.com/2009/10/05/winsxs/ EVERYTHING YOU NEVER WANTED TO KNOW ABOUT WINSXS]
  
=Existing Code that we have=
+
=== Application Compatibility Database ===
[[User:Joachim Metz|Joachim]]
+
* [http://technet.microsoft.com/en-us/library/dd837644(v=ws.10).aspx Technet: Understanding Shims], by [[Microsoft]]
Please add any missing links
+
* [http://msdn.microsoft.com/en-us/library/bb432182(v=vs.85).aspx MSDN: Application Compatibility Database], by [[Microsoft]]
 +
* [http://www.alex-ionescu.com/?p=39 Secrets of the Application Compatilibity Database (SDB) – Part 1], by [[Alex Ionescu]], May 20, 2007
 +
* [http://www.alex-ionescu.com/?p=40 Secrets of the Application Compatilibity Database (SDB) – Part 2], by [[Alex Ionescu]], May 21, 2007
 +
* [http://fred.mandiant.com/Whitepaper_ShimCacheParser.pdf Leveraging the Application Compatibility Cache in Forensic Investigations], by [[Andrew Davis]], May 4, 2012
  
Documentation/Articles
+
=== System Restore (Restore Points) ===
* DFRWS2006/2007 carving challenge results
+
* [http://en.wikipedia.org/wiki/System_Restore Wikipedia: System Restore]
* DFRWS2008 paper on carving
+
* [http://www.stevebunting.org/udpd4n6/forensics/restorepoints.htm Restore Point Forensics], by [[Steve Bunting]]
 +
* [http://windowsir.blogspot.ch/2007/06/restore-point-analysis.html Restore Point Analysis], by [[Harlan Carvey]],  June 16, 2007
 +
* [http://windowsir.blogspot.ch/2006/10/restore-point-forensics.html Restore Point Forensics], by [[Harlan Carvey]], October 20, 2006
 +
* [http://www.ediscovery.co.nz/wip/srp.html System Restore Point Log Decoding]
  
Carvers
+
=== Tracking removable media ===
* DFRWS2006/2007 carving challenge results
+
* [http://www.swiftforensics.com/2012/08/tracking-usb-first-insertion-in-event.html Tracking USB First insertion in Event logs], by Yogesh Khatri, August 18, 2012
* photorec (http://www.cgsecurity.org/wiki/PhotoRec)
+
* revit06 and revit07 (http://sourceforge.net/projects/revit/)
+
* s3/scarve
+
  
Possible file structure validator libraries
+
=== Crash dumps ===
* divers existing file support libraries
+
* [http://blogs.technet.com/b/yongrhee/archive/2010/12/29/drwtsn32-on-windows-vista-windows-server-2008-windows-7-windows-server-2008-r2.aspx Technet: Drwtsn32 on Windows Vista/Windows Server 2008/Windows 7/Windows Server 2008 R2], by Yong Rhee, December 29, 2010
* libole2 (inhouse experimental code of OLE2 support)
+
* [http://support.microsoft.com/kb/315263 MSDN: How to read the small memory dump file that is created by Windows if a crash occurs], by [[Microsoft]]
* libpff (alpha release for PFF (PST/OST) file support) (http://sourceforge.net/projects/libpff/)
+
  
Input support
+
=== ReadyBoost ===
* AFF (http://www.afflib.org/)
+
* [http://en.wikipedia.org/wiki/ReadyBoost Wikipedia: ReadyBoost]
* EWF (http://sourceforge.net/projects/libewf/)
+
* [http://windowsir.blogspot.ch/2013/04/plugin-emdmgmt.html Plugin: EMDMgmt], by [[Harlan Carvey]], April 05, 2013
* TSK device & raw & split raw (http://www.sleuthkit.org/)
+
* [http://hackingexposedcomputerforensicsblog.blogspot.ch/2013/08/daily-blog-65-understanding-artifacts.html Understanding the artifacts EMDMgmt], by [[David Cowen]], August 27, 2013
  
Volume/Partition support
+
=== Windows Firewall ===
* disktype (http://disktype.sourceforge.net/)
+
* [http://en.wikipedia.org/wiki/Windows_Firewall Wikipedia: Windows Firewall]
* testdisk (http://www.cgsecurity.org/wiki/TestDisk)
+
* [http://technet.microsoft.com/en-us/library/cc737845(v=ws.10).aspx#BKMK_log Windows Firewall Tools and Settings]
* TSK
+
  
File system support
+
=== Windows 32-bit on Windows 64-bit (WoW64) ===
* TSK
+
* [http://en.wikipedia.org/wiki/WoW64 Wikipedia: WoW64]
* photorec FS code
+
* implementations of FS in Linux/BSD
+
  
Content support
+
=== Windows XP ===
 +
* [http://support.microsoft.com/kb/q308549 Description of Windows XP System Information (Msinfo32.exe) Tool]
  
=Implementation Timeline=
+
=== Windows 8 ===
# gather the available resources/ideas/wishes/needs etc. (I guess we're in this phase)
+
* [http://en.wikipedia.org/wiki/Features_new_to_Windows_8 Features new to Windows 8], Wikipedia
# start discussing a high level design (in terms of algorithm, facilities, information needed)
+
* [http://computerforensics.champlain.edu/blog/windows-8-forensics Windows 8 Forensics - part 1]
## input formats facility
+
* [http://computerforensics.champlain.edu/blog/windows-8-forensics-part-2 Windows 8 Forensics - part 2]
## partition/volume facility
+
* [http://computerforensics.champlain.edu/blog/windows-8-forensics-part-3 Windows 8 Forensics - part 3]
## file system facility
+
* [http://propellerheadforensics.files.wordpress.com/2012/05/thomson_windows-8-forensic-guide2.pdf Windows 8 Forensic Guide], by [[Amanda Thomson|Amanda C. F. Thomson]], 2012
## file format facility
+
* [http://forensicfocus.com/Forums/viewtopic/t=9604/ Forensic Focus: Windows 8 Forensics - A First Look], [http://www.youtube.com/watch?v=uhCooEz9FQs&feature=youtu.be Presentation], [http://www.forensicfocus.com/downloads/windows-8-forensics-josh-brunty.pdf Slides], by [[Josh Brunty]], August 2012
## content facility
+
* [http://dfstream.blogspot.ch/2013/03/windows-8-tracking-opened-photos.html Windows 8: Tracking Opened Photos], by [[Jason Hale]], March 8, 2013
## how to deal with fragment detection (do the validators allow for fragment detection?)
+
## how to deal with recombination of fragments
+
## do we want multiple carving phases in light of speed/precision tradeoffs
+
# start detailing parts of the design
+
## Discuss options for a grammar driven validator?
+
## Hard-coded plug-ins?
+
## Which existing code can we use?
+
# start building/assembling parts of the tooling for a prototype
+
## Implement simple file carving with validation.
+
## Implement gap carving
+
# Initial Release
+
# Implement the ''threaded carving'' that [[User:.FUF|.FUF]] is describing above.
+
  
[[User:Joachim Metz|Joachim]] Shouldn't multi threaded carving (MTC) not be part of the 1st version?
+
[[Category:Operating systems]]
The MT approach makes for different design decisions
+

Revision as of 00:32, 3 September 2013

Information icon.png

Please help to improve this article by expanding it.
Further information might be found on the discussion page.

Windows is a widely-spread operating system from Microsoft.

There are 2 main branches of Windows:

  • the DOS-branch: i.e. Windows 95, 98, ME
  • the NT-branch: i.e. Windows NT 4, XP, Vista

Features

  • Basic and Dynamic Disks, see: [1]

Introduced in Windows NT

Introduced in Windows 2000

Introduced in Windows XP

  • Prefetch
  • System Restore (Restore Points); also present in Windows ME

SP2

  • Windows Firewall

Introduced in Windows 2003 (Server)

  • Volume Shadow Copies

Introduced in Windows Vista

Introduced in Windows 2008 (Server)

Introduced in Windows 7

Introduced in Windows 8

Forensics

Partition layout

Default partition layout, first partition starts:

  • at sector 63 in Windows 2000, XP, 2003
  • at sector 2048 in Windows Vista, 2008, 7

Filesystems

Recycle Bin

RECYCLER

Used by Windows 2000, XP. Uses INFO2 file.

See: [2]

$RECYCLE.BIN

Used by Windows Vista. Uses $I and $R files.

See: [3]

Registry

The Windows Registry is a database of keys and values that provides a wealth of information to forensic investigators.

Thumbs.db Files

Thumbs.db files can be found on many Windows systems. They contain thumbnails of images or documents and can be of great value for the investigator.

See also: Vista thumbcache.

Browser Cache

Browser History

The Web Browser History files can contain significant information. The default web browser that comes with Windows is Microsoft Internet Explorer but other common browsers on Windows are Apple Safari, Google Chrome, Mozilla Firefox and Opera.

Search

See Windows Desktop Search

Setup log files (setupapi.log)

Windows Vista introduced several setup log files [4].

Sleep/Hibernation

After (at least) Windows 7 recovers from sleep/hibernation there often is a system time change event (event id 1) in the event logs.

Users

Windows stores a users Security identifiers (SIDs) under the following registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

The %SID%\ProfileImagePath value should also contain the username.

Windows Error Reporting (WER)

As of Vista, for User Access Control (UAC) elevated applications WER reports can be found in:

C:\ProgramData\Microsoft\Windows\WER\

As of Vista, for non-UAC elevated applications (LUA) WER reports can be found in:

C:\Users\%UserName%\AppData\Local\Microsoft\Windows\WER\

Corresponding registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting

Advanced Format (4KB Sector) Hard Drives

Windows XP does not natively handle drives that use the new standard of 4KB sectors. For information on this, see Advanced Format.

%SystemRoot%

The actual value of %SystemRoot% is store in the following registry value:

Key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\
Value: SystemRoot

See Also

External Links

Under the hood

MSI

Side-by-side (WinSxS)

Application Compatibility Database

System Restore (Restore Points)

Tracking removable media

Crash dumps

ReadyBoost

Windows Firewall

Windows 32-bit on Windows 64-bit (WoW64)

Windows XP

Windows 8