Skip to content
Please update to the latest release 0.77.2 to address Multiple CVEs.
Windows.Forensics.RecycleBin

Windows.Forensics.RecycleBin

Parses Recycle Bin $I metadata files to recover deleted file names, original paths, and deletion timestamps.

Supports Recycle Bin format found in Vista onwards. This will not parse INFO2 files found in the “Recycler” folder from XP and below.

The layout of the Recycle Bin folder is in the in the form:

  C:\$Recycle.Bin\%SID%\

Each folder contains the following files:

$R###### files; the original data
$I###### files; the "Recycled" file's metadata

The first file begins with the value $R followed by a random string – “this file contains the actual contents of the recycled file”

The second file begins with $I and ends in the same string as the $R file – this file contains the metadata for that specific file

Limitations: This artifact uses the OS API to read available $I data. There may be additional unallocated-but-readable $I files referenced in the MFT that may be recoverable.


name: Windows.Forensics.RecycleBin
description: |
  Parses Recycle Bin `$I` metadata files to recover deleted file names,
  original paths, and deletion timestamps.
 
  Supports Recycle Bin format found in Vista onwards. This will not
  parse INFO2 files found in the "Recycler" folder from XP and below.

  The layout of the Recycle Bin folder is in the in the form:
  ```
    C:\$Recycle.Bin\%SID%\
  ```

  Each folder contains the following files:
  ```
  $R###### files; the original data
  $I###### files; the "Recycled" file's metadata
  ```

  The first file begins with the value `$R` followed by a random string
  – "this file contains the actual contents of the recycled file"

  The second file begins with `$I` and ends in the same string as the
  `$R` file – this file contains the metadata for that specific file

  Limitations: This artifact uses the OS API to read available $I
  data. There may be additional unallocated-but-readable $I files
  referenced in the MFT that may be recoverable.

author: "Zach Stanford - @svch0st"

reference:
  - https://forensicswiki.xyz/wiki/index.php?title=Windows#Recycle_Bin
  - https://www.magnetforensics.com/blog/artifact-profile-recycle-bin/


parameters:
    - name: RecycleBinGlobs
      default: C:\$Recycle.Bin\**\$I*

    - name: AlsoUpload
      type: bool
      description: Also upload recovered files.

precondition: SELECT OS From info() where OS = 'windows'

sources:
  - query: |
        SELECT * FROM foreach(
              row={
                 SELECT OSPath FROM glob(globs=RecycleBinGlobs)
              },
              query={
                SELECT
                    timestamp(winfiletime=DeletedTime) as DeletedTimestamp,
                    Name,
                    FilePath as OriginalFilePath,
                    FileSize,
                    OSPath,
                    regex_replace(source=OSPath, re="\\\\\\$I", replace="\\$$R") AS RecyclePath,
                    if(condition=AlsoUpload, then=upload(
                         file=regex_replace(source=OSPath, re="\\\\\\$I", replace="\\$$R"),
                         name=FilePath
                    )) AS Upload
                 FROM parse_recyclebin(filename=OSPath)
              })