From 1158dcc6426626bef8bada23cdb39257b36acedb Mon Sep 17 00:00:00 2001 From: Miriam Wiesner Date: Sun, 21 Mar 2021 15:38:29 +0100 Subject: [PATCH] - Added new event sources: PowerShell Operational Log, WinRM, Windows Defender, Windows PowerShell, PowerShell DSC, Applocker: Packaged app-Deployment, Applocker: MSI and Script, Applocker: EXE and DLL, Applocker: Packaged app-Execution - Added new columns in events_source: Full Name, Log Path - Added more event ids to the database: PowerShell - Changed events_main structure: the PK "id" is no longer treated as the event id of each event. Column "event_id" was added instead. This should avoid conflicts with matching event ids in different event logs --- EventList/EventList.psd1 | 2 +- EventList/EventList.psm1 | 2 +- EventList/functions/Get-BaselineEventList.ps1 | 2 +- EventList/internal/data/EventList.db | Bin 937984 -> 937984 bytes .../functions/Add-MitreCheckboxes.ps1 | 2 +- .../internal/functions/Get-MitreEvents.ps1 | 6 +++--- README.md | 7 +++++++ 7 files changed, 14 insertions(+), 7 deletions(-) diff --git a/EventList/EventList.psd1 b/EventList/EventList.psd1 index 9506e2c..4836a76 100644 --- a/EventList/EventList.psd1 +++ b/EventList/EventList.psd1 @@ -3,7 +3,7 @@ ModuleToProcess = 'EventList.psm1' # Version number of this module. - ModuleVersion = '2.0.1' + ModuleVersion = '2.0.2' # ID used to uniquely identify this module GUID = '6a7ec113-3459-431c-a0eb-4942615a850c' diff --git a/EventList/EventList.psm1 b/EventList/EventList.psm1 index 23b7fa1..3f3d818 100644 --- a/EventList/EventList.psm1 +++ b/EventList/EventList.psm1 @@ -1,5 +1,5 @@ $script:ModuleRoot = $PSScriptRoot -$script:ModuleVersion = "2.0.1" +$script:ModuleVersion = "2.0.2" $Script:database = "$ModuleRoot\internal\data\EventList.db" # Detect whether at some level dotsourcing was enforced diff --git a/EventList/functions/Get-BaselineEventList.ps1 b/EventList/functions/Get-BaselineEventList.ps1 index 0b309b1..31fbbb4 100644 --- a/EventList/functions/Get-BaselineEventList.ps1 +++ b/EventList/functions/Get-BaselineEventList.ps1 @@ -45,7 +45,7 @@ } else { $BaselineName = ConvertTo-PSSQLString($BaselineName) - $query = "select eaac.category_name as Category, d.subcategory as Subcategory, em.id as 'Event ID', em.event_name as 'Event Description', em.link_text as 'Event Link', d.inclusion_setting as 'Audit Recommendation', d.setting_value 'Audit Recommendation Number', sf.success_failure_name as 'Event S/F', d.policy_target as 'Policy Target', sr.sec_rec_name as Recommendation from baseline_main m, baseline_data d, events_main em, events_source so, events_success_failure sf, events_security_recommendation sr, events_audit_subcategory eas, events_advanced_audit_categories eaac, events_advanced_audit_subcategories eaas where m.id = d.b_id and d.subcategory = eaas.subcategory_name and em.so_id = so.id and em.success_failure_id = sf.id and em.sr_id = sr.id and em.id = eas.event_id and eas.audit_subc_id = eaas.id and eaas.c_id = eaac.id and m.name = '$BaselineName';" + $query = "select eaac.category_name as Category, d.subcategory as Subcategory, em.event_id as 'Event ID', em.event_name as 'Event Description', em.link_text as 'Event Link', d.inclusion_setting as 'Audit Recommendation', d.setting_value 'Audit Recommendation Number', sf.success_failure_name as 'Event S/F', d.policy_target as 'Policy Target', sr.sec_rec_name as Recommendation from baseline_main m, baseline_data d, events_main em, events_source so, events_success_failure sf, events_security_recommendation sr, events_audit_subcategory eas, events_advanced_audit_categories eaac, events_advanced_audit_subcategories eaas where m.id = d.b_id and d.subcategory = eaas.subcategory_name and em.so_id = so.id and em.success_failure_id = sf.id and em.sr_id = sr.id and em.event_id = eas.event_id and eas.audit_subc_id = eaas.id and eaas.c_id = eaac.id and m.name = '$BaselineName';" $results = Invoke-SqliteQuery -Query $query -DataSource $database if ($generateExcelYsn) { $tmp = get-date -f yyyyMMddHHmmss diff --git a/EventList/internal/data/EventList.db b/EventList/internal/data/EventList.db index 465e52213c797da08f101abca7269eaf50989178..9bdfb8616dd7a40a29783ff3c539b6c3872a05fe 100644 GIT binary patch delta 41894 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
    g+5( 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 iDI4*= 3 it's always s+f / 1 = s / 2 = f - $query = "select subcategory_name, guid, sum(success_failure_id) as sf_sum from ( select distinct eaas.subcategory_name, eaas.guid, m.success_failure_id from mitre_techniques t, mitre_events e left join events_main m on e.event_id = m.id left join events_source so on m.so_id = so.id left join events_audit_subcategory eas on m.id = eas.event_id left join events_advanced_audit_subcategories eaas on eas.audit_subc_id = eaas.id where t.technique_id in ($MitreTechniques) and t.id = e.technique_id and e.event_id is not null and so.source_name = 'Advanced Audit Logs' and e.event_id <> '-1' ) group by subcategory_name, guid order by subcategory_name" + $query = "select subcategory_name, guid, sum(success_failure_id) as sf_sum from ( select distinct eaas.subcategory_name, eaas.guid, m.success_failure_id from mitre_techniques t, mitre_events e left join events_main m on e.event_id = em.event_id left join events_source so on m.so_id = so.id left join events_audit_subcategory eas on em.event_id = eas.event_id left join events_advanced_audit_subcategories eaas on eas.audit_subc_id = eaas.id where t.technique_id in ($MitreTechniques) and t.id = e.technique_id and e.event_id is not null and so.source_name = 'Advanced Audit Logs' and e.event_id <> '-1' ) group by subcategory_name, guid order by subcategory_name" } elseif ($EventIds) { - $query = "select distinct e.event_id from mitre_techniques t, mitre_events e left join events_main m on e.event_id = m.id left join events_source so on m.so_id = so.id left join events_security_recommendation sr on m.sr_id = sr.id where t.technique_id in ($MitreTechniques) and t.id = e.technique_id and e.event_id is not null order by e.event_id" + $query = "select distinct e.event_id from mitre_techniques t, mitre_events e left join events_main m on e.event_id = em.event_id left join events_source so on m.so_id = so.id left join events_security_recommendation sr on m.sr_id = sr.id where t.technique_id in ($MitreTechniques) and t.id = e.technique_id and e.event_id is not null order by e.event_id" } else { - $query = "select t.technique_id, t.technique_name, e.event_id, m.event_name, m.link_text, so.source_name, sr.sec_rec_name from mitre_techniques t, mitre_events e left join events_main m on e.event_id = m.id left join events_source so on m.so_id = so.id left join events_security_recommendation sr on m.sr_id = sr.id where t.technique_id in ($MitreTechniques) and t.id = e.technique_id and e.event_id is not null order by e.event_id" + $query = "select t.technique_id, t.technique_name, e.event_id, m.event_name, m.link_text, so.source_name, sr.sec_rec_name from mitre_techniques t, mitre_events e left join events_main m on e.event_id = em.event_id left join events_source so on m.so_id = so.id left join events_security_recommendation sr on m.sr_id = sr.id where t.technique_id in ($MitreTechniques) and t.id = e.technique_id and e.event_id is not null order by e.event_id" } $resultStr = Invoke-SqliteQuery -Query $query -DataSource $database diff --git a/README.md b/README.md index 65260b6..fcb0bbe 100644 --- a/README.md +++ b/README.md @@ -147,3 +147,10 @@ It is still ordered by the MITRE ATT&CK areas & techniques, but it’s still onl Happy hunting! + +# EventList Change Log +## 2021-03-21 +- Added new event sources: PowerShell Operational Log, WinRM, Windows Defender, Windows PowerShell, PowerShell DSC, Applocker: Packaged app-Deployment, Applocker: MSI and Script, Applocker: EXE and DLL, Applocker: Packaged app-Execution +- Added new columns in events_source: Full Name, Log Path +- Added more event ids to the database: PowerShell +- Changed events_main structure: the PK "id" is no longer treated as the event id of each event. Column "event_id" was added instead. This should avoid conflicts with matching event ids in different event logs \ No newline at end of file