Cazando Malware (Parte II)

Como segunda parte del laboratorio de honeypots vamos a continuar por donde lo dejamos.

A modo resumen: ya instalamos nuestro Cowrie, pero faltaba instalar el Logstash para poder enviar todos los logs normalizados a nuestro Elasticsearch.

Por tanto estamos en este punto:

Parte 2: Instalando Logstash en nuestro Honeypot


*Nota: Necesita java y al menos 2gb de ram disponibles. (Esto es más doloroso si pagamos por un servicio de VPS xD).

Descargamos Logstash (en nuestro caso es la versión 5.6.3). Os recomiendo mirar la última release que estuviera disponible en el momento que lo instaléis.
$ curl –O https://artifacts.elastic.co/downloads/logstash/logstash-5.6.3.deb
$ dpkg –i logstash-5.6.3.deb

Creamos el fichero de configuración de Logstash /etc/logstash/conf.d/logstash-cowrie.conf con el siguiente contenido:
input {
       file {
              path => ["/home/cowrie/cowrie/log/cowrie.json"]
              codec => json
              type => "cowrie"
       }
}
filter {
    if [type] == "cowrie" {
    json {
            source => message
        }
        date {
            match => [ "timestamp", "ISO8601" ]
        }
        if [src_ip]  {
            mutate {
                add_field => { "src_host" => "%{src_ip}" }
            }
            dns {
                reverse => [ "src_host" ]
                nameserver => [ "8.8.8.8", "8.8.4.4" ]
                action => "replace"
                hit_cache_size => 4096
                hit_cache_ttl => 900
                failed_cache_size => 512
                failed_cache_ttl => 900
            }
        }
        mutate {
            remove_tag => [ "beats_input_codec_plain_applied"]
            remove_field => [ "source", "offset", "input_type" ]
        }
    }
}
output {
    if [type] == "cowrie" {
        elasticsearch {
            hosts => ["localhost:9200"] # cambiar en caso de tenerlo remoto.
        }
        file {
            path => "/home/cowrie/tmp/cowrie-logstash.log"
            codec => json
        }
        stdout {
            codec => rubydebug
        }
    }
}

*Nota:  En este caso es la configuración que funciona para este laboratorio. Podéis modificar este fichero a vuestro antojo. Logstash tiene infinitas posibilidades, pero como el laboratorio ya es en sí muy largo hemos omitido ciertas partes. Eso ya lo dejo para que el lector indague por su cuenta si le interesa el tema.

Dentro del apartado "file {}" la opcion "path =>" es la ruta de donde va a coger los logs del cowrie, recomiendo incluirlo en el logrotate para evitar problemas de espacio.

Arrancamos el Logstash:
$ cd /usr/share/logstash/bin ; 
./logstash -f /etc/logstash/conf.d/logstash-cowrie.conf 
 --path.settings /etc/logstash/
Podéis arrancarlo en screen y luego “deatacharlo”.
$ screen
$ cd /usr/share/logstash/bin ; 
./logstash -f /etc/logstash/conf.d/logstash-cowrie.conf 
 --path.settings /etc/logstash/
$ screen -d
*Nota:  Los comandos de ./logstash van en una sola línea. Los muestro así para que se vean mejor en el blog, pero tenerlo en cuenta.

y deberéis ver algo de este estilo cuando el Elasticsearch este montado:



*Nota:  Probablemente veais algo distinto a esto ya que no conectara con el Elasticsearch


El siguiente paso, como es lógico, es instalar la base de datos para poder almacenar toda la información que nos proporciona el honeypot. Pero este paso lo veremos en la parte 3...

Un saludo y nos vemos en la siguiente.

Aquí tenéis todas las partes del laboratorio:

5 comentarios :

  1. ¿En serio son necesarios los 2Gb de RAM? En algunos foros hablan de instalar Logstash en Raspberry Pi y dicen que funciona. No lo he probado.
    Si lo podemos meter todo en un "honey-pi" casi major que el VPS, ¿no? (Más baratito)

    ResponderEliminar
  2. Yo no lo metería en mi red de mi casa , con mi ip como honey para que me estén atacando, pero bueno eso soy yo que soy un poco paranoico, en lo de la ram, si con 1 gb puede tirar pero por eso recomiendo almenos 2gb para que vaya bien, con menos lo probé en digital ocean con vps de 512 y no hubo manera de arrancarlo, de todas maneras la pobre rasp tiene que ir petadisima con el logstash xD, el caso dandole una vuelta con 512 mb de ram y 2gb de memoria swap podría tambien funcionar pero yo eso no lo he probado.

    ResponderEliminar
    Respuestas
    1. A mí es exactamente lo que me interesa: Saber de dónde proceden los ataques a mi IP de casa.
      Desde luego sé que los hay, porque los logs de intentos de login cantan muchísimo. De hecho ya tuve cowrie funcionando echándole un ojo a lo que iba apareciendo (Todo bots).
      Si alguien se anima antes que yo a ponerlo a prueba en RPi que comente cómo va. Si no, yo mismo comentaré por aquí.

      Eliminar
  3. Alguien puede explicarme los conceptos de logtash y honeypot...

    ResponderEliminar
    Respuestas
    1. Para logstash: https://es.wikipedia.org/wiki/Logstash
      Para honeypot: https://es.wikipedia.org/wiki/Honeypot

      Eliminar