{{#include ../../banners/hacktricks-training.md}} ## Logstash Logstash, **logları toplamak, dönüştürmek ve iletmek** için **pipeline** olarak bilinen bir sistem kullanır. Bu pipeline'lar **giriş**, **filtre** ve **çıkış** aşamalarından oluşur. Logstash'ın ele geçirilmiş bir makinede çalışması ilginç bir durum ortaya çıkarır. ### Pipeline Yapılandırması Pipeline'lar, **/etc/logstash/pipelines.yml** dosyasında yapılandırılır ve burada pipeline yapılandırmalarının konumları listelenir: ```yaml # 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 ``` Bu dosya, **.conf** dosyalarının, pipeline yapılandırmalarını içeren yerlerini ortaya koymaktadır. **Elasticsearch output module** kullanıldığında, **pipelines**'in genellikle **Elasticsearch kimlik bilgilerini** içerdiği yaygındır; bu kimlik bilgileri, Logstash'ın Elasticsearch'e veri yazma gereksinimi nedeniyle genellikle geniş ayrıcalıklara sahiptir. Yapılandırma yollarındaki joker karakterler, Logstash'ın belirlenen dizindeki tüm eşleşen pipeline'ları çalıştırmasına olanak tanır. ### Yazılabilir Pipeline'lar ile Ayrıcalık Yükseltme Ayrıcalık yükseltme girişiminde bulunmak için, öncelikle Logstash hizmetinin çalıştığı kullanıcıyı belirleyin, genellikle **logstash** kullanıcısıdır. Aşağıdaki kriterlerden **birini** karşıladığınızdan emin olun: - Bir pipeline **.conf** dosyasına **yazma erişiminiz** var **veya** - **/etc/logstash/pipelines.yml** dosyası bir joker karakter kullanıyor ve hedef klasöre yazabiliyorsunuz Ayrıca, aşağıdaki koşullardan **birinin** sağlanması gerekmektedir: - Logstash hizmetini yeniden başlatma yeteneği **veya** - **/etc/logstash/logstash.yml** dosyasında **config.reload.automatic: true** ayarı var Yapılandırmada bir joker karakter verildiğinde, bu joker karakterle eşleşen bir dosya oluşturmak, komut yürütmeye olanak tanır. Örneğin: ```bash input { exec { command => "whoami" interval => 120 } } output { file { path => "/tmp/output.log" codec => rubydebug } } ``` Burada, **interval** yürütme sıklığını saniye cinsinden belirler. Verilen örnekte, **whoami** komutu her 120 saniyede bir çalışır ve çıktısı **/tmp/output.log** dosyasına yönlendirilir. **/etc/logstash/logstash.yml** dosyasında **config.reload.automatic: true** ayarı ile Logstash, yeni veya değiştirilmiş boru hattı yapılandırmalarını otomatik olarak algılayacak ve uygulayacaktır; yeniden başlatmaya gerek kalmadan. Eğer bir joker karakter yoksa, mevcut yapılandırmalarda değişiklikler yapılabilir, ancak kesintileri önlemek için dikkatli olunması önerilir. ## References {{#include ../../banners/hacktricks-training.md}}