Demo Videos¶
These demonstrations accompany the ADARE research paper. Each demo shows a complete experiment: creating a test file, deleting it through the GUI, and verifying that the expected forensic artifacts (trash bin entries, metadata) are produced.
Ubuntu 22.04 — File Deletion & Trash Bin Verification¶
This experiment creates a file in the user’s Documents folder, opens the Nautilus file manager, and moves the file to Trash via right-click context menu. ADARE then verifies that the file appears in ~/.local/share/Trash/files/ and that the .trashinfo metadata contains the correct original path and deletion timestamp.
Playbook:
1settings:
2 idle: 2.0
3 timeout: 600
4 screenshot:
5 format: "png"
6 quality: 95
7
8variables:
9 filename:
10 type: string
11 value: "testfile.txt"
12 description: "Name of the file to be created and deleted"
13
14 filepath:
15 type: path
16 value: "{{ adare_user_documents }}/{{ filename }}"
17 description: "Full path to the test file"
18
19 trashbin_path:
20 type: path
21 value: "{{ adare_user_home }}/.local/share/Trash"
22 description: "Path to user's trash bin"
23
24 icon_filemanager_taskbar:
25 type: string
26 value: "nautilus_taskbar.png"
27 description: "name of the file manager icon file"
28
29
30
31tests:
32 - name: testfile_created
33 description: 'Verify test file does exist before experiment'
34 function: file_exists
35 parameter:
36 dst: '{{filepath}}'
37 - name: testfile_deleted
38 description: 'Verify test file was deleted successfully'
39 function: file_does_not_exist
40 parameter:
41 dst: '{{filepath}}'
42 - name: trashbin_check_file
43 description: 'check if file exists in trashbin'
44 function: file_exists
45 parameter:
46 dst: '{{trashbin_path}}/files/{{ filename }}'
47 - name: trahsbin_check_info_file
48 description: 'check if info file exists in trashbin'
49 function: file_exists
50 parameter:
51 dst: '{{trashbin_path}}/info/{{ filename }}.trashinfo'
52 - name: trashbin_check_info_date
53 description: 'check if deletion date in info file is correct'
54 function: file_content_equals
55 parameter:
56 dst: '{{trashbin_path}}/info/{{ filename }}.trashinfo'
57 content: |
58 [Trash Info]
59 Path={{ filepath }}
60 DeletionDate={{ deletion_timestamp | localtime | format('%Y-%m-%dT%H:%M:%S') | tolerance(5, -5) }}
61
62
63actions:
64 - command:
65 name: "Create Test File"
66 description: "create the to deleted file"
67 command: "echo 'This is a test file.' > {{ filepath }}"
68 shell: true
69 - test: testfile_created
70 - click:
71 target:
72 image: "{{ icon_filemanager_taskbar }}"
73 description: "Open Ubuntu File Explorer"
74 - idle:
75 duration: 2.0
76 description: "Wait additional time for File Explorer to open since some systems are slow"
77 - click:
78 target:
79 text: "Documents"
80 strategy:
81 SweepStrategy:
82 index: 2
83 description: "Navigate to Documents folder"
84 - click:
85 type: "right"
86 target:
87 text: "{{ filename }}"
88 description: "Right-click on the test file"
89 - click:
90 target:
91 text: "Move to Trash"
92 description: "Select 'Move to Trash' from context menu"
93 - save_timestamp:
94 description: "Save the timestamp of file deletion for later verification"
95 variable: deletion_timestamp
96 - idle:
97 duration: 1.0
98 description: "Wait for file deletion to complete"
99 - test: testfile_deleted
100 - test: trashbin_check_file
101 - test: trahsbin_check_info_file
102 - test: trashbin_check_info_date
103
Key concepts demonstrated:
Variable templating with
{{ adare_user_documents }}and{{ adare_user_home }}Test functions
file_exists,file_does_not_exist, andfile_content_equalsActions including
command,click,idle,save_timestampTimestamp tolerance matching with
| tolerance(5, -5)
Windows 11 — File Deletion & Recycle Bin Verification¶
This experiment follows the same pattern on Windows 11: a test file is created, selected in File Explorer, and deleted via the Delete key. ADARE then runs RBCmd.exe to parse the Recycle Bin $I files into CSV and verifies that the deleted file’s metadata (path, timestamp) appears correctly.
Playbook:
1# Variables that can be used throughout the playbook
2settings:
3 idle: 2.0
4variables:
5 username:
6 type: string
7 value: "adare"
8 description: "Username for the target system"
9
10 filepath:
11 type: path
12 value: "C:/Users/{{username}}/Documents/testfile.txt"
13 description: "Full path to the test file"
14
15 trashbin_csv:
16 type: path
17 value: "C:/Users/{{username}}/Documents/trashbin/*.csv"
18 description: "Path pattern for trashbin CSV files"
19
20# Test definitions
21tests:
22 - name: testfile_created
23 description: 'Verify test file exists before experiment'
24 function: file_exists
25 parameter:
26 dst: '{{filepath}}'
27 - name: testfile_deleted
28 description: 'Verify test file was deleted successfully'
29 function: file_does_not_exist
30 parameter:
31 dst: '{{filepath}}'
32 - name: trashbin_check
33 description: 'check if file metadata exists in CSV with correct timestamp'
34 function: csv.contains_line
35 parameter:
36 dst: '{{trashbin_csv}}'
37 entry:
38 - !re '.*' # Any value in first column
39 - '$I' # Recycle bin identifier
40 - 'C:\Users\{{username}}\Documents\testfile.txt'
41 - !re '.*' # Any value in fourth column
42 - !timestamp
43 timestamp: '{{deletion_timestamp}}'
44 tolerance: 5
45 timezone: 'utc'
46 format: '%Y-%m-%d %H:%M:%S'
47
48# Main playbook actions
49actions:
50 - command:
51 name: "Create Test File"
52 description: "create the to deleted file"
53 command: "echo 'This is a test file.' > {{ filepath }}"
54 shell: true
55 - test: testfile_created
56 - click:
57 target:
58 image: "explorer.png"
59 description: "Open File Explorer"
60 - idle:
61 duration: 5.0
62 description: "Wait additional time for File Explorer to open since some systems are slow"
63 - click:
64 target:
65 text: "Documents"
66 strategy:
67 SweepStrategy:
68 index: 2
69 description: "Navigate to Documents folder"
70 - click:
71 target:
72 text: "testfile"
73 description: "Select the test file to delete it with shortcut"
74 - keyboard:
75 combination: ["delete"]
76 description: "Delete the test file using keyboard shortcut"
77 - save_timestamp:
78 description: "Save the timestamp of file deletion for later verification"
79 variable: deletion_timestamp
80 - idle:
81 duration: 5.0
82 description: "Wait for file deletion to complete"
83 - test: testfile_deleted
84 - block:
85 description: "Check if file metadata exists in trash bin"
86 actions:
87 - command:
88 name: "RBCmd"
89 description: "Run RBCmd.exe to check file metadata"
90 tool: RBCmd.exe
91 command: 'RBCmd.exe -d C:\$recycle.bin --csv C:/Users/{{username}}/Documents/trashbin'
92 timeout: 180
93 - test: trashbin_check
Key concepts demonstrated:
Variable templating with Windows-style paths
Test function
csv.contains_linewith regex and timestamp matchersActions including
keyboardcombination andblockgroupingExternal forensic tool integration (
RBCmd.exe) via thecommandaction withtoolparameter