Open JakePeralta7 opened 4 days ago
So I have not full checked the format but Chainsaw already supports .hve
because it is needed for the shimcache analysis. You can see what the output looks like with chainsaw search '.*' EXAMPLE.hve
.
So to write a rule, kind just needs to be set to hve
. There is a chance we might need to implement a new container type but that depends on the shape of the data that is being output.
I could be missing something, but when I'm running it against the SYSTEM and SOFTWARE hives I get 0 hits.
The rule would need to look something like this:
---
title: Example
group: Persistence
description: Example
authors: []
kind: hve
level: critical
status: stable
timestamp: detail.Light.last_key_written_date_and_time.interpreted
fields:
- name: Path
to: path
- name: Values
to: sub_values
filter:
condition: example
example:
path: '"\ROOT\Classes\*"'
sub_values:
- value_name: AlwaysShowExt
value.String: ''
Which could then be run like so chainsaw hunt -r /tmp/rule.yml /tmp/SOFTWARE.hve
, but the values output is quite large:
[+] Loading detection rules from: /tmp/rule.yml
[+] Loaded 1 detection rules
[+] Loading forensic artefacts from: /tmp/cSOFTWARE.hve (extensions: .hve)
[+] Loaded 1 forensic artefacts (73.9 MB)
[+] Hunting: [========================================] 1/1
[+] Group: Persistence
┌─────────────────────┬────────────┬─────────────────┬────────────────────────────────┐
│ timestamp │ detections │ Path │ Values │
├─────────────────────┼────────────┼─────────────────┼────────────────────────────────┤
│ 2019-12-07 09:17:43 │ ‣ Example │ \ROOT\Classes\* │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: AlwaysShowExt │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: AlwaysShowExt │
│ │ │ │ interpreted: AlwaysShowExt │
│ │ │ │ value_name_size: │
│ │ │ │ value: 13 │
│ │ │ │ size: │
│ │ │ │ value: -40 │
│ │ │ │ padding: │
│ │ │ │ value: 0 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 2147483650 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 0 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28854908 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885489 │
│ │ │ │ 6 │
│ │ │ │ value: │
│ │ │ │ String: '' │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
│ │ │ │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: ConflictPrompt │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: ConflictPrompt │
│ │ │ │ interpreted: ConflictPromp │
│ │ │ │ t │
│ │ │ │ value_name_size: │
│ │ │ │ value: 14 │
│ │ │ │ size: │
│ │ │ │ value: -40 │
│ │ │ │ padding: │
│ │ │ │ value: 1280 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 152 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 28850952 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28855052 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885500 │
│ │ │ │ 8 │
│ │ │ │ value: │
│ │ │ │ String: prop:System.ItemType │
│ │ │ │ Text;System.Size;System.DateMo │
│ │ │ │ dified;System.DateCreated │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
│ │ │ │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: ContentViewModeFo │
│ │ │ │ rBrowse │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: [] │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: ContentViewModeForB │
│ │ │ │ rowse │
│ │ │ │ interpreted: ContentViewMo │
│ │ │ │ deForBrowse │
│ │ │ │ value_name_size: │
│ │ │ │ value: 24 │
│ │ │ │ size: │
│ │ │ │ value: -48 │
│ │ │ │ padding: │
│ │ │ │ value: 0 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 298 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 28851160 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28855260 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885520 │
│ │ │ │ 8 │
│ │ │ │ value: │
│ │ │ │ String: prop:~System.ItemNam │
│ │ │ │ eDisplay;System.ItemTypeText;~ │
│ │ │ │ System.LayoutPattern.PlaceHold │
│ │ │ │ er;~System.LayoutPattern.Place │
│ │ │ │ Holder;System.DateModified;Sys │
│ │ │ │ tem.Size │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
│ │ │ │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: ContentViewModeFo │
│ │ │ │ rSearch │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: [] │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: ContentViewModeForS │
│ │ │ │ earch │
│ │ │ │ interpreted: ContentViewMo │
│ │ │ │ deForSearch │
│ │ │ │ value_name_size: │
│ │ │ │ value: 24 │
│ │ │ │ size: │
│ │ │ │ value: -48 │
│ │ │ │ padding: │
│ │ │ │ value: 0 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 290 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 28851512 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28855612 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885556 │
│ │ │ │ 0 │
│ │ │ │ value: │
│ │ │ │ String: prop:~System.ItemNam │
│ │ │ │ eDisplay;~System.ItemFolderPat │
│ │ │ │ hDisplay;~System.LayoutPattern │
│ │ │ │ .PlaceHolder;System.ItemTypeTe │
│ │ │ │ xt;System.DateModified;System. │
│ │ │ │ Size │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
│ │ │ │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: ContentViewModeLa │
│ │ │ │ youtPatternForBrowse │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: ContentViewModeLayo │
│ │ │ │ utPatternForBrowse │
│ │ │ │ interpreted: ContentViewMo │
│ │ │ │ deLayoutPatternForBrowse │
│ │ │ │ value_name_size: │
│ │ │ │ value: 37 │
│ │ │ │ size: │
│ │ │ │ value: -64 │
│ │ │ │ padding: │
│ │ │ │ value: 0 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 12 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 28851872 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28855972 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885590 │
│ │ │ │ 4 │
│ │ │ │ value: │
│ │ │ │ String: delta │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
│ │ │ │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: ContentViewModeLa │
│ │ │ │ youtPatternForSearch │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: ContentViewModeLayo │
│ │ │ │ utPatternForSearch │
│ │ │ │ interpreted: ContentViewMo │
│ │ │ │ deLayoutPatternForSearch │
│ │ │ │ value_name_size: │
│ │ │ │ value: 37 │
│ │ │ │ size: │
│ │ │ │ value: -64 │
│ │ │ │ padding: │
│ │ │ │ value: 0 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 12 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 28851952 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28856052 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885598 │
│ │ │ │ 4 │
│ │ │ │ value: │
│ │ │ │ String: delta │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
│ │ │ │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: ExtendedTileInfo │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: [] │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: ExtendedTileInfo │
│ │ │ │ interpreted: ExtendedTileI │
│ │ │ │ nfo │
│ │ │ │ value_name_size: │
│ │ │ │ value: 16 │
│ │ │ │ size: │
│ │ │ │ value: -40 │
│ │ │ │ padding: │
│ │ │ │ value: 0 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 168 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 28852008 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28856108 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885606 │
│ │ │ │ 4 │
│ │ │ │ value: │
│ │ │ │ String: prop:System.ItemType │
│ │ │ │ Text;System.Size;System.DateMo │
│ │ │ │ dified;System.OfflineAvailabil │
│ │ │ │ ity │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
│ │ │ │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: FullDetails │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: FullDetails │
│ │ │ │ interpreted: FullDetails │
│ │ │ │ value_name_size: │
│ │ │ │ value: 11 │
│ │ │ │ size: │
│ │ │ │ value: -40 │
│ │ │ │ padding: │
│ │ │ │ value: 0 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 630 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 28852256 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28856356 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885628 │
│ │ │ │ 0 │
│ │ │ │ value: │
│ │ │ │ String: prop:System.PropGrou │
│ │ │ │ p.FileSystem;System.ItemNameDi │
│ │ │ │ splay;System.ItemTypeText;Syst │
│ │ │ │ em.ItemFolderPathDisplay;Syste │
│ │ │ │ m.Size;System.DateCreated;Syst │
│ │ │ │ em.DateModified;System.FileAtt │
│ │ │ │ ributes;*System.StorageProvide │
│ │ │ │ rState;*System.OfflineAvailabi │
│ │ │ │ lity;*System.OfflineStatus;*Sy │
│ │ │ │ stem.SharedWith;*System.FileOw │
│ │ │ │ ner;*System.ComputerName │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
│ │ │ │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: InfoTip │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: │
│ │ │ │ - 0 │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: InfoTip │
│ │ │ │ interpreted: InfoTip │
│ │ │ │ value_name_size: │
│ │ │ │ value: 7 │
│ │ │ │ size: │
│ │ │ │ value: -32 │
│ │ │ │ padding: │
│ │ │ │ value: 847 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 114 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 28852928 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28857028 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885699 │
│ │ │ │ 2 │
│ │ │ │ value: │
│ │ │ │ String: prop:System.ItemType │
│ │ │ │ Text;System.Size;System.DateMo │
│ │ │ │ dified │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
│ │ │ │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: NoRecentDocs │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: NoRecentDocs │
│ │ │ │ interpreted: NoRecentDocs │
│ │ │ │ value_name_size: │
│ │ │ │ value: 12 │
│ │ │ │ size: │
│ │ │ │ value: -40 │
│ │ │ │ padding: │
│ │ │ │ value: 0 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 2147483650 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 0 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28857156 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885714 │
│ │ │ │ 4 │
│ │ │ │ value: │
│ │ │ │ String: '' │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
│ │ │ │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: NoStaticDefaultVe │
│ │ │ │ rb │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: NoStaticDefaultVerb │
│ │ │ │ interpreted: NoStaticDefau │
│ │ │ │ ltVerb │
│ │ │ │ value_name_size: │
│ │ │ │ value: 19 │
│ │ │ │ size: │
│ │ │ │ value: -48 │
│ │ │ │ padding: │
│ │ │ │ value: 0 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 2147483650 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 0 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28857196 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885718 │
│ │ │ │ 4 │
│ │ │ │ value: │
│ │ │ │ String: '' │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
│ │ │ │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: PreviewDetails │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: PreviewDetails │
│ │ │ │ interpreted: PreviewDetail │
│ │ │ │ s │
│ │ │ │ value_name_size: │
│ │ │ │ value: 14 │
│ │ │ │ size: │
│ │ │ │ value: -40 │
│ │ │ │ padding: │
│ │ │ │ value: 847 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 308 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 28853176 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28857276 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885723 │
│ │ │ │ 2 │
│ │ │ │ value: │
│ │ │ │ String: prop:System.DateModi │
│ │ │ │ fied;System.Size;System.DateCr │
│ │ │ │ eated;*System.StorageProviderS │
│ │ │ │ tate;*System.OfflineAvailabili │
│ │ │ │ ty;*System.OfflineStatus;*Syst │
│ │ │ │ em.SharedWith │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
│ │ │ │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: PreviewTitle │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: PreviewTitle │
│ │ │ │ interpreted: PreviewTitle │
│ │ │ │ value_name_size: │
│ │ │ │ value: 12 │
│ │ │ │ size: │
│ │ │ │ value: -40 │
│ │ │ │ padding: │
│ │ │ │ value: 847 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 96 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 28853528 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28857628 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885758 │
│ │ │ │ 4 │
│ │ │ │ value: │
│ │ │ │ String: prop:System.ItemName │
│ │ │ │ Display;System.ItemTypeText │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
│ │ │ │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: QuickTip │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: [] │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: QuickTip │
│ │ │ │ interpreted: QuickTip │
│ │ │ │ value_name_size: │
│ │ │ │ value: 8 │
│ │ │ │ size: │
│ │ │ │ value: -32 │
│ │ │ │ padding: │
│ │ │ │ value: 0 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 114 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 28853664 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28857764 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885772 │
│ │ │ │ 8 │
│ │ │ │ value: │
│ │ │ │ String: prop:System.ItemType │
│ │ │ │ Text;System.Size;System.DateMo │
│ │ │ │ dified │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
│ │ │ │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: SetDefaultsFor │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: │
│ │ │ │ - 0 │
│ │ │ │ - 0 │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: SetDefaultsFor │
│ │ │ │ interpreted: SetDefaultsFo │
│ │ │ │ r │
│ │ │ │ value_name_size: │
│ │ │ │ value: 14 │
│ │ │ │ size: │
│ │ │ │ value: -40 │
│ │ │ │ padding: │
│ │ │ │ value: 847 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 94 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 28853824 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28857924 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885788 │
│ │ │ │ 0 │
│ │ │ │ value: │
│ │ │ │ String: prop:System.Author;S │
│ │ │ │ ystem.Document.DateCreated │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
│ │ │ │ - data_type: REG_SZ │
│ │ │ │ value_parse_warnings: null │
│ │ │ │ value_name: TileInfo │
│ │ │ │ versions: [] │
│ │ │ │ detail: │
│ │ │ │ Light: │
│ │ │ │ slack: │
│ │ │ │ value: [] │
│ │ │ │ signature: │
│ │ │ │ value: vk │
│ │ │ │ flags_raw: │
│ │ │ │ value: 1 │
│ │ │ │ data_type_raw: │
│ │ │ │ value: 1 │
│ │ │ │ value_name: │
│ │ │ │ value: TileInfo │
│ │ │ │ interpreted: TileInfo │
│ │ │ │ value_name_size: │
│ │ │ │ value: 8 │
│ │ │ │ size: │
│ │ │ │ value: -32 │
│ │ │ │ padding: │
│ │ │ │ value: 0 │
│ │ │ │ data_size_raw: │
│ │ │ │ value: 114 │
│ │ │ │ data_offset_relative: │
│ │ │ │ value: 28853960 │
│ │ │ │ data_offsets_absolute: │
│ │ │ │ - 28858060 │
│ │ │ │ updated_by_sequence_num: null │
│ │ │ │ sequence_num: null │
│ │ │ │ cell_parse_warnings: │
│ │ │ │ logs: null │
│ │ │ │ file_offset_absolute: 2885802 │
│ │ │ │ 4 │
│ │ │ │ value: │
│ │ │ │ String: prop:System.ItemType │
│ │ │ │ Text;System.Size;System.DateMo │
│ │ │ │ dified │
│ │ │ │ flags: CellKeyValueFlags(VALU │
│ │ │ │ E_COMP_NAME_ASCII) │
│ │ │ │ state: Allocated │
└─────────────────────┴────────────┴─────────────────┴────────────────────────────────┘
[+] 1 Detections found on 1 documents
Some sort of container that can pull out matching values from an array of objects would probably need to be implemented to solve the array of values output noise.
That will be great.
Also an abstraction for the rules to be able to translate HKEY_LOCAL_MACHINE\SYSTEM in the rule format to SYSTEM hive file (without needing to put '\ROOT\').
Changing the hive files to .hve also feels unnecessary (isn't there a file header or something?)
Thanks for the help!
That is doable too, but would need some code changes to handle that behind the scenes.
You can bypass having to add .hve
by using the command --load-unknown
, currently there is no magic support because at the time of writing there was no good portable libmagic solution.
I would like to have the ability to create rules on registry hives, for example:
I think that this feature will allow to get a lot value from the registry hives, both in forensics and threat hunting.