{% hint style="success" %}
Learn & practice AWS Hacking:
[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)
\
Learn & practice GCP Hacking:
[**HackTricks Training GCP Red Team Expert (GRTE)**
](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 馃挰 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 馃惁 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Logstash
Logstash jest u偶ywany do **zbierania, przekszta艂cania i wysy艂ania log贸w** przez system znany jako **pipelines**. Te pipelines sk艂adaj膮 si臋 z etap贸w **input**, **filter** i **output**. Interesuj膮cy aspekt pojawia si臋, gdy Logstash dzia艂a na skompromitowanej maszynie.
### Konfiguracja Pipeline
Pipelines s膮 konfigurowane w pliku **/etc/logstash/pipelines.yml**, kt贸ry wymienia lokalizacje konfiguracji pipeline:
```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
```
Ten plik ujawnia, gdzie znajduj膮 si臋 pliki **.conf**, zawieraj膮ce konfiguracje potok贸w. Przy u偶yciu modu艂u wyj艣ciowego **Elasticsearch**, powszechnie jest, 偶e **potoki** zawieraj膮 **po艣wiadczenia Elasticsearch**, kt贸re cz臋sto maj膮 szerokie uprawnienia z powodu potrzeby Logstasha do zapisywania danych w Elasticsearch. Znaki wieloznaczne w 艣cie偶kach konfiguracji pozwalaj膮 Logstashowi na wykonanie wszystkich pasuj膮cych potok贸w w wyznaczonym katalogu.
### Eskalacja uprawnie艅 za pomoc膮 zapisywalnych potok贸w
Aby spr贸bowa膰 eskalacji uprawnie艅, najpierw zidentyfikuj u偶ytkownika, pod kt贸rym dzia艂a us艂uga Logstash, zazwyczaj u偶ytkownika **logstash**. Upewnij si臋, 偶e spe艂niasz **jedno** z tych kryteri贸w:
- Posiadasz **dost臋p do zapisu** do pliku **.conf** potoku **lub**
- Plik **/etc/logstash/pipelines.yml** u偶ywa znaku wieloznacznego, a ty mo偶esz zapisywa膰 w docelowym folderze
Dodatkowo, **jedno** z tych warunk贸w musi by膰 spe艂nione:
- Mo偶liwo艣膰 ponownego uruchomienia us艂ugi Logstash **lub**
- Plik **/etc/logstash/logstash.yml** ma ustawione **config.reload.automatic: true**
Maj膮c znak wieloznaczny w konfiguracji, stworzenie pliku, kt贸ry pasuje do tego znaku, pozwala na wykonanie polecenia. Na przyk艂ad:
```bash
input {
exec {
command => "whoami"
interval => 120
}
}
output {
file {
path => "/tmp/output.log"
codec => rubydebug
}
}
```
Tutaj **interwa艂** okre艣la cz臋stotliwo艣膰 wykonywania w sekundach. W podanym przyk艂adzie polecenie **whoami** jest uruchamiane co 120 sekund, a jego wyj艣cie jest kierowane do **/tmp/output.log**.
Dzi臋ki **config.reload.automatic: true** w **/etc/logstash/logstash.yml**, Logstash automatycznie wykryje i zastosuje nowe lub zmodyfikowane konfiguracje potok贸w bez potrzeby ponownego uruchamiania. Je艣li nie ma znaku wieloznacznego, nadal mo偶na wprowadza膰 zmiany w istniej膮cych konfiguracjach, ale zaleca si臋 ostro偶no艣膰, aby unikn膮膰 zak艂贸ce艅.