├── NTFS..png ├── DFIR_logo.jpg ├── SANS_Find_Evil.png ├── iis.yml ├── kape.yml ├── winlog.yml ├── suricata.yml ├── timeline.yml ├── suricata_p.conf ├── filebeat.yml ├── IIS_exchange.conf ├── logstash_parser.conf ├── zeek.yml ├── memory.conf ├── README.md └── Dashboards ├── ELK-home.ndjson ├── suricata_2.ndjson ├── MFT.ndjson ├── ICS_connection.ndjson ├── Kape_win_log.ndjson ├── NTFS_timeline.ndjson └── Memory_forensics.ndjson /NTFS..png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maboalenen/DFIR/HEAD/NTFS..png -------------------------------------------------------------------------------- /DFIR_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maboalenen/DFIR/HEAD/DFIR_logo.jpg -------------------------------------------------------------------------------- /SANS_Find_Evil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maboalenen/DFIR/HEAD/SANS_Find_Evil.png -------------------------------------------------------------------------------- /iis.yml: -------------------------------------------------------------------------------- 1 | # This file creates a filebeat iis 2 | 3 | - type: log 4 | paths: 5 | - /logstash/iis/*/* 6 | - /logstash/iis/* 7 | exclude_files: [ 'readme.txt', '\.gz$', '\.bz2$', '\.zip$' ] 8 | close_inactive: 5m 9 | fields_under_root: true 10 | fields: 11 | type: iis 12 | -------------------------------------------------------------------------------- /kape.yml: -------------------------------------------------------------------------------- 1 | # This file creates a filebeat kape timeline 2 | 3 | - type: log 4 | paths: 5 | - /logstash/kape/*/* 6 | - /logstash/kape/* 7 | exclude_files: [ 'readme.txt', '\.gz$', '\.bz2$', '\.zip$' ] 8 | close_inactive: 5m 9 | fields_under_root: true 10 | fields: 11 | type: kape 12 | -------------------------------------------------------------------------------- /winlog.yml: -------------------------------------------------------------------------------- 1 | # This file creates a filebeat kape windows event_logs 2 | 3 | - type: log 4 | paths: 5 | - /logstash/winlog/*/* 6 | - /logstash/winlog/* 7 | exclude_files: [ 'readme.txt', '\.gz$', '\.bz2$', '\.zip$' ] 8 | close_inactive: 5m 9 | fields_under_root: true 10 | fields: 11 | type: winlog -------------------------------------------------------------------------------- /suricata.yml: -------------------------------------------------------------------------------- 1 | # Module: suricata 2 | # Docs: https://www.elastic.co/guide/en/beats/filebeat/7.10/filebeat-module-suricata.html 3 | 4 | - module: suricata 5 | # All logs 6 | eve: 7 | enabled: true 8 | 9 | # Set custom paths for the log files. If left empty, 10 | # Filebeat will choose the paths depending on your OS. 11 | var.paths: ["/logstash/suricata/*.json"] -------------------------------------------------------------------------------- /timeline.yml: -------------------------------------------------------------------------------- 1 | # This file creates a filebeat log2timeline CSV 2 | 3 | - type: log 4 | paths: 5 | - /logstash/timeline/*/*/*/*/* 6 | - /logstash/timeline/*/*/*/* 7 | - /logstash/timeline/*/*/* 8 | - /logstash/timeline/*/* 9 | - /logstash/timeline/* 10 | exclude_files: [ 'readme.txt', '\.gz$', '\.bz2$', '\.zip$' ] 11 | close_inactive: 5m 12 | fields_under_root: true 13 | fields: 14 | type: timeline 15 | -------------------------------------------------------------------------------- /suricata_p.conf: -------------------------------------------------------------------------------- 1 | # @Maboalenen 2 | # Mahmoud Aboalenen 3 | # github.com/Maboalenen 4 | # Basic Logstash configuration for suricata output 5 | 6 | input { 7 | beats { 8 | port => 5044 9 | } 10 | } 11 | 12 | filter { 13 | 14 | if [type] == "suricata" { 15 | 16 | json { 17 | source => "message" 18 | } 19 | } 20 | } 21 | 22 | output { 23 | elasticsearch { 24 | hosts => ["192.168.60.133:9200"] 25 | index => "suricata" 26 | #user => "elastic" 27 | #password => "changeme" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /filebeat.yml: -------------------------------------------------------------------------------- 1 | ######################## Filebeat Configuration ############################ 2 | 3 | # You can find the full configuration reference here: 4 | # https://www.elastic.co/guide/en/beats/filebeat/index.html 5 | 6 | # For more available modules and options, please see the filebeat.reference.yml sample 7 | # configuration file. 8 | 9 | filebeat.config.inputs: 10 | enabled: true 11 | path: /usr/local/lib/filebeats_inputs/*.yml 12 | 13 | #============================= Filebeat modules =============================== 14 | 15 | filebeat.config.modules: 16 | # Glob pattern for configuration loading 17 | path: ${path.config}/modules.d/*.yml 18 | 19 | # Set to true to enable config reloading 20 | reload.enabled: false 21 | 22 | # Period on which files under path should be checked for changes 23 | #reload.period: 10s 24 | #================================kibana====================================== 25 | 26 | setup.kibana.host: "http://192.168.60.133:5601" 27 | 28 | #================================ Outputs ===================================== 29 | 30 | #----------------------------- Logstash output -------------------------------- 31 | output.logstash: 32 | # The Logstash hosts 33 | hosts: ["localhost:5044"] -------------------------------------------------------------------------------- /IIS_exchange.conf: -------------------------------------------------------------------------------- 1 | # @Maboalenen 2 | # Mahmoud Aboalenen 3 | # github.com/Maboalenen 4 | # Basic Logstash configuration 5 | # Ltype: IIS logs 6 | # Path %SystemDrive%\inetpub\logs\LogFiles 7 | # Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken 8 | 9 | input { 10 | 11 | file { 12 | type => "iis" 13 | path => "/logstash/iis/*.log" 14 | 15 | } 16 | 17 | } 18 | 19 | filter { 20 | if [type] == "iis" { 21 | grok { 22 | match => { "message" => "%{TIMESTAMP_ISO8601:log_timestamp} %{IPORHOST:S-IP} %{WORD:CS-Method} %{URIPATH:CS-URI-Stem} %{NOTSPACE:cs-uri-query} %{NUMBER:S-Port} %{NOTSPACE:CS-Username} %{IPORHOST:C-IP} %{NOTSPACE:CS-UserAgent} %{NOTSPACE:CS-Referer} %{NUMBER:SC-Status} %{NUMBER:SC-SubStatus} %{NUMBER:SC-Win32-Status} %{NUMBER:Time-Taken}"} 23 | } 24 | 25 | date { 26 | match => [ "TIMESTAMP_ISO8601", "yyyy-MM-dd HH:mm:ss,SSS" ] 27 | target => "@timestamp" 28 | } 29 | } 30 | 31 | } 32 | output { 33 | elasticsearch { 34 | hosts => ["192.168.60.133:9200"] 35 | index => "exchange_iis" 36 | #user => "elastic" 37 | #password => "changeme" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /logstash_parser.conf: -------------------------------------------------------------------------------- 1 | # @Maboalenen 2 | # Mahmoud Aboalenen 3 | # github.com/Maboalenen 4 | # Basic Logstash configuration for multiple different file type 5 | # 2- log2time output from log2time csv format 6 | # 3- kape output from kape with json format 7 | # 4- kape output windows-event logs with json format 8 | 9 | input { 10 | beats { 11 | port => 5044 12 | } 13 | } 14 | 15 | filter { 16 | 17 | 18 | if [type] == "timeline" { 19 | grok { 20 | match => ["message","(?(.*?)),(?