Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

Logstash

Logstash๋Š” ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘, ๋ณ€ํ™˜ ๋ฐ ์ „์†กํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์‹œ์Šคํ…œ์ธ ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŒŒ์ดํ”„๋ผ์ธ์€ ์ž…๋ ฅ, ํ•„ํ„ฐ, ๋ฐ ์ถœ๋ ฅ ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. Logstash๊ฐ€ ์†์ƒ๋œ ๋จธ์‹ ์—์„œ ์ž‘๋™ํ•  ๋•Œ ํฅ๋ฏธ๋กœ์šด ์ธก๋ฉด์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Pipeline Configuration

ํŒŒ์ดํ”„๋ผ์ธ์€ /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.yml์— config.reload.automatic: true๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด, Logstash๋Š” ์ž๋™์œผ๋กœ ์ƒˆ๋กœ์šด ๋˜๋Š” ์ˆ˜์ •๋œ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ์„ ๊ฐ์ง€ํ•˜๊ณ  ์ ์šฉํ•˜๋ฉฐ, ์žฌ์‹œ์ž‘์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™€์ผ๋“œ์นด๋“œ๊ฐ€ ์—†์œผ๋ฉด ๊ธฐ์กด ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์ˆ˜์ •์ด ์—ฌ์ „ํžˆ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ค‘๋‹จ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

References

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ