hacktricks/linux-hardening/privilege-escalation/logstash.md

4.8 KiB
Raw Blame History

从零到英雄学习AWS黑客攻击通过 htARTE (HackTricks AWS红队专家)

支持HackTricks的其他方式

基本信息

Logstash 用于收集、转换和输出日志。这是通过使用管道实现的它包含输入、过滤和输出模块。当攻破运行Logstash服务的机器时该服务变得很有趣。

管道

管道配置文件 /etc/logstash/pipelines.yml 指定了活动管道的位置:

# This file is where you define your pipelines. You can define multiple.
# For more information on multiple pipelines, see 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 输出模块管道很可能会包含对某个 Elasticsearch 实例的有效凭证。这些凭证通常拥有更多权限,因为 Logstash 需要向 Elasticsearch 写入数据。如果使用了通配符Logstash 会尝试运行匹配该通配符的文件夹中的所有管道。

通过可写管道提升权限

在尝试提升自己的权限之前,你应该检查运行 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
}
}

间隔指定时间。在此示例中每120秒执行一次whoami命令。命令的输出保存在**/tmp/output.log**中。

如果**/etc/logstash/logstash.yml包含条目config.reload.automatic: true**你只需等待命令执行因为Logstash会自动识别新的管道配置文件或现有管道配置的任何更改。否则触发重启logstash服务。

如果没有使用通配符,你可以将这些更改应用于现有的管道配置。确保你不要弄坏东西!

参考资料

从零开始学习AWS黑客攻击直到成为专家通过 htARTE (HackTricks AWS Red Team Expert)

支持HackTricks的其他方式