4 KiB
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Logstash
Logstash, logları toplamak, dönüştürmek ve dağıtmak için pipeline olarak bilinen bir sistem kullanır. Bu pipeline'lar giriş, filtre ve çıkış aşamalarından oluşur. Logstash, ele geçirilmiş bir makinede çalıştığında ilginç bir durum ortaya çıkar.
Pipeline Yapılandırması
Pipeline'lar, pipeline yapılandırmalarının yerlerini listeleyen /etc/logstash/pipelines.yml dosyasında yapılandırılır:
# 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ş yetkilere 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 Pipelines ile Yetki Yükseltme
Yetki 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 bir kriterden birine sahip olduğunuzdan 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, bir bu koşullardan biri yerine getirilmelidir:
- 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:
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.