Advertisement
D0cEvil

Logstash - Suricata Wifi IDS HoneyPot

Sep 23rd, 2022 (edited)
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 2.87 KB | Cybersecurity | 0 0
  1. input {
  2.        # filebeats
  3.        beats {
  4.              port => 5044
  5.              type => "cowrie"
  6.        }
  7.        beats {
  8.              port => 5045
  9.              type => "suricata"
  10.        }     
  11.        gelf {
  12.             use_tcp => true
  13.             port => 9044
  14.             type => "wids"
  15.        }
  16. }
  17.  
  18. filter {
  19.     if [type] == "cowrie" {
  20.         json {
  21.         source => message
  22.     }
  23.  
  24.         date {
  25.             match => [ "timestamp", "ISO8601" ]
  26.         }
  27.  
  28.         if [src_ip]  {
  29.  
  30.             mutate {
  31.                 add_field => { "src_host" => "%{src_ip}" }
  32.             }
  33.  
  34.             dns {
  35.                 reverse => [ "src_host" ]
  36.                 nameserver => [ "8.8.8.8", "8.8.4.4" ]
  37.                 action => "replace"
  38.                 hit_cache_size => 4096
  39.                 hit_cache_ttl => 900
  40.                 failed_cache_size => 512
  41.                 failed_cache_ttl => 900
  42.             }
  43.  
  44.  
  45.             geoip {
  46.                 source => "src_ip"
  47.                 target => "geoip"
  48.                 database => "/opt/GeoLite2-City.mmdb"
  49.             }
  50.  
  51.         }
  52.        
  53.         mutate {
  54.         # cut out useless tags/fields
  55.             remove_tag => [ "beats_input_codec_plain_applied"]
  56.         remove_field => [ "[log][file][path]", "[log][offset]" ]
  57.         }
  58.     }
  59.     if [type] == "suricata" {
  60.     grok {
  61.             match => {
  62.                 "message" => "%{GREEDYDATA:timestamp}   ?\[?\*?\*?\] ?\[%{INT}:%{INT}:%{INT}?\] %{WORD} %{WORD} %{GREEDYDATA:ids.signature}  ?\[?\*?\*?\] ?\[%{WORD}: %{GREEDYDATA:ids.classification}?\] ?\[%{WORD}: %{INT:ids.severity}?\] ?\{%{WORD:ids.protocol}?\} %{IP:src_ip}:%{INT:src_port} -> %{IP:dst_ip}:%{INT:dst_port}"
  63.             }
  64.         }
  65.         if "_grokparsefailure" in [tags] {
  66.             drop {}
  67.         }
  68.         geoip {
  69.             source => "src_ip"
  70.         }
  71.    
  72.         geoip {
  73.             source => "dst_ip"
  74.         }
  75.         date {
  76.             match => ["timestamp", "MM/dd/yyyy-HH:mm:ss.SSSSSS "]
  77.             timezone => "America/Toronto"
  78.             target => ["@timestamp"]
  79.         }
  80.     }
  81. }
  82.  
  83. output {
  84.     if [type] == "cowrie" {
  85.         elasticsearch {
  86.             hosts => ["127.0.0.1:9200"]
  87.         ilm_enabled => auto
  88.         ilm_rollover_alias => "cowrie-logstash"
  89.             user => logstash_internal
  90.             password => 'P@ssw0rd'
  91.         }
  92.     }
  93.     else if [type] == "suricata" {
  94.         elasticsearch {
  95.             hosts => ["127.0.0.1:9200"]
  96.             ilm_enabled => auto
  97.             ilm_rollover_alias => "suricata-logstash"
  98.             user => logstash_internal
  99.             password => 'P@ssw0rd'
  100.         }
  101.     }
  102.     else {
  103.          elasticsearch {
  104.              hosts => ["127.0.0.1:9200"]
  105.              ilm_enabled => auto
  106.              ilm_rollover_alias => "wids-logstash"
  107.              user => logstash_internal
  108.              password => 'P@ssw0rd'
  109.     }
  110.  }
  111. }
  112.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement