Logstash

AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı) öğrenin!

HackTricks'ı desteklemenin diğer yolları:

Logstash

Logstash, günlükleri toplamak, dönüştürmek ve iletmek için bir sistem olan pipeline'lar aracılığıyla kullanılır. Bu pipeline'lar, giriş, filtre ve çıkış aşamalarından oluşur. Logstash, bir kompromize uğramış bir makinede çalıştığında ilginç bir yön ortaya çıkar.

Pipeline Yapılandırması

Pipeline'lar, /etc/logstash/pipelines.yml dosyasında yapılandırılır ve bu dosya pipeline yapılandırmalarının konumlarını listeler:

# 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, pipeline yapılandırmalarını içeren .conf dosyalarının nerede bulunduğunu ortaya çıkarır. Bir Elasticsearch çıkış modülü kullanırken, genellikle pipelines Elasticsearch kimlik bilgilerini içerir. Bu kimlik bilgileri, Logstash'in Elasticsearch'e veri yazma ihtiyacından dolayı genellikle geniş yetkilere sahiptir. Yapılandırma yollarındaki joker karakterler, Logstash'in belirtilen dizindeki tüm eşleşen pipeline'ları çalıştırmasına olanak tanır.

Yazılabilir Pipeline'lar Aracılığıyla Yetki Yükseltme

Yetki yükseltme denemeleri için öncelikle Logstash servisinin hangi kullanıcı altında çalıştığını 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 yazabilirsiniz

Ek olarak, aşağıdaki koşullardan birini karşılamak gerekmektedir:

  • Logstash servisini yeniden başlatma yeteneği veya

  • /etc/logstash/logstash.yml dosyasında config.reload.automatic: true ayarlıdır

Yapılandırmada bir joker karakter olduğunda, bu joker karakterle eşleşen bir dosya oluşturmak komut yürütme imkanı sağlar. Örneğin:

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

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

İşte, interval saniye cinsinden çalışma sıklığını belirler. Verilen örnekte, whoami komutu 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 olduğunda, Logstash yeni veya değiştirilmiş pipeline yapılandırmalarını otomatik olarak algılar ve uygular, yeniden başlatma gerektirmez. Joker karakteri yoksa, mevcut yapılandırmalara hala değişiklikler yapılabilir, ancak kesintileri önlemek için dikkatli olunması önerilir.

Referanslar

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated