Logstash

Support HackTricks

Logstash

Logstashはログを収集、変換、配信するために使用されます。このシステムはパイプラインとして知られています。これらのパイプラインは入力フィルター、および出力のステージで構成されています。Logstashが侵害されたマシンで動作する際に興味深い側面が現れます。

パイプライン設定

パイプラインは**/etc/logstash/pipelines.yml**ファイルで設定されており、パイプライン設定の場所がリストされています:

# 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

このファイルは、パイプライン構成を含む .conf ファイルの場所を明らかにします。Elasticsearch output module を使用する際、pipelines には Elasticsearch credentials が含まれることが一般的で、これは Logstash が Elasticsearch にデータを書き込む必要があるため、しばしば広範な権限を持っています。構成パスのワイルドカードにより、Logstash は指定されたディレクトリ内のすべての一致するパイプラインを実行できます。

書き込み可能なパイプラインによる特権昇格

特権昇格を試みるには、まず Logstash サービスが実行されているユーザー、通常は logstash ユーザーを特定します。次の いずれか の条件を満たしていることを確認してください:

  • パイプライン .conf ファイルへの 書き込みアクセス を持っている または

  • /etc/logstash/pipelines.yml ファイルがワイルドカードを使用しており、ターゲットフォルダーに書き込むことができる

さらに、次の いずれか の条件を満たす必要があります:

  • Logstash サービスを再起動する能力 または

  • /etc/logstash/logstash.yml ファイルに config.reload.automatic: true が設定されている

構成にワイルドカードがある場合、このワイルドカードに一致するファイルを作成することでコマンドを実行できます。例えば:

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

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

ここで、intervalは実行頻度を秒単位で決定します。与えられた例では、whoamiコマンドが120秒ごとに実行され、その出力は**/tmp/output.log**に送られます。

/etc/logstash/logstash.ymlconfig.reload.automatic: trueが設定されている場合、Logstashは再起動することなく新しいまたは変更されたパイプライン設定を自動的に検出して適用します。ワイルドカードがない場合でも、既存の設定に対して変更を加えることは可能ですが、中断を避けるために注意が必要です。

参考文献

HackTricksをサポートする

Last updated