Logstash

Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Logstash

Logstash se utiliza para recopilar, transformar y enviar registros a través de un sistema conocido como pipelines. Estos pipelines están compuestos por etapas de entrada, filtro y salida. Un aspecto interesante surge cuando Logstash opera en una máquina comprometida.

Configuración del Pipeline

Los pipelines se configuran en el archivo /etc/logstash/pipelines.yml, que enumera las ubicaciones de las configuraciones del pipeline:

# Define your pipelines here. Multiple pipelines can be defined.
# For details on multiple pipelines, refer to the documentation:
# https://www.elastic.co/guide/en/logstash/current/multiple-pipelines.html

- pipeline.id: main
path.config: "/etc/logstash/conf.d/*.conf"
- pipeline.id: example
path.config: "/usr/share/logstash/pipeline/1*.conf"
pipeline.workers: 6

Este archivo revela dónde se encuentran los archivos .conf, que contienen configuraciones de canalización. Al emplear un módulo de salida de Elasticsearch, es común que las canalizaciones incluyan credenciales de Elasticsearch, las cuales suelen poseer amplios privilegios debido a la necesidad de Logstash de escribir datos en Elasticsearch. Los comodines en las rutas de configuración permiten a Logstash ejecutar todas las canalizaciones coincidentes en el directorio designado.

Escalada de privilegios a través de Canalizaciones Escribibles

Para intentar la escalada de privilegios, primero identifique el usuario bajo el cual se está ejecutando el servicio de Logstash, típicamente el usuario logstash. Asegúrese de cumplir con uno de estos criterios:

  • Poseer acceso de escritura a un archivo .conf de canalización o

  • El archivo /etc/logstash/pipelines.yml utiliza un comodín y puede escribir en la carpeta objetivo

Además, se debe cumplir con una de estas condiciones:

  • Capacidad para reiniciar el servicio de Logstash o

  • El archivo /etc/logstash/logstash.yml tiene configurado config.reload.automatic: true

Dado un comodín en la configuración, crear un archivo que coincida con este comodín permite la ejecución de comandos. Por ejemplo:

input {
exec {
command => "whoami"
interval => 120
}
}

output {
file {
path => "/tmp/output.log"
codec => rubydebug
}
}

Aquí, interval determina la frecuencia de ejecución en segundos. En el ejemplo dado, el comando whoami se ejecuta cada 120 segundos, con su salida dirigida a /tmp/output.log.

Con config.reload.automatic: true en /etc/logstash/logstash.yml, Logstash detectará y aplicará automáticamente nuevas o modificadas configuraciones de canalización sin necesidad de reiniciar. Si no hay comodines, aún se pueden realizar modificaciones en las configuraciones existentes, pero se recomienda precaución para evitar interrupciones.

Referencias

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización