4.8 KiB
Informações Básicas
O Logstash é usado para coletar, transformar e produzir logs. Isso é realizado usando pipelines, que contêm módulos de entrada, filtro e saída. O serviço se torna interessante quando se compromete uma máquina que está executando o Logstash como serviço.
Pipelines
O arquivo de configuração da pipeline /etc/logstash/pipelines.yml especifica as localizações das pipelines ativas:
# 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
Aqui você pode encontrar os caminhos para os arquivos .conf, que contêm as pipelines configuradas. Se o módulo de saída do Elasticsearch for usado, as pipelines provavelmente contêm credenciais válidas para uma instância do Elasticsearch. Essas credenciais geralmente possuem mais privilégios, já que o Logstash precisa escrever dados no Elasticsearch. Se curingas forem usados, o Logstash tenta executar todas as pipelines localizadas naquela pasta que correspondem ao curinga.
Privesc com pipelines graváveis
Antes de tentar elevar seus próprios privilégios, você deve verificar qual usuário está executando o serviço do logstash, já que este será o usuário que você possuirá posteriormente. Por padrão, o serviço do logstash é executado com os privilégios do usuário logstash.
Verifique se você tem um dos direitos necessários:
- Você tem permissões de escrita em um arquivo .conf de pipeline ou
- /etc/logstash/pipelines.yml contém um curinga e você tem permissão para escrever na pasta especificada
Além disso, um dos requisitos deve ser atendido:
- Você é capaz de reiniciar o serviço do logstash ou
- /etc/logstash/logstash.yml contém a entrada config.reload.automatic: true
Se um curinga for especificado, tente criar um arquivo que corresponda a esse curinga. O seguinte conteúdo pode ser escrito no arquivo para executar comandos:
input {
exec {
command => "whoami"
interval => 120
}
}
output {
file {
path => "/tmp/output.log"
codec => rubydebug
}
}
O intervalo especifica o tempo em segundos. Neste exemplo, o comando whoami é executado a cada 120 segundos. A saída do comando é salva em /tmp/output.log.
Se /etc/logstash/logstash.yml contém a entrada config.reload.automatic: true, você só precisa esperar até que o comando seja executado, já que o Logstash reconhecerá automaticamente novos arquivos de configuração de pipeline ou quaisquer alterações nas configurações de pipeline existentes. Caso contrário, acione uma reinicialização do serviço do logstash.
Se nenhum caractere curinga for usado, você pode aplicar essas alterações a uma configuração de pipeline existente. Certifique-se de não quebrar as coisas!
Referências
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
Você trabalha em uma empresa de segurança cibernética? Você quer ver sua empresa anunciada no HackTricks? ou quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Confira os PLANOS DE ASSINATURA!
-
Descubra A Família PEASS, nossa coleção exclusiva de NFTs
-
Adquira o swag oficial do PEASS & HackTricks
-
Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
-
Compartilhe suas técnicas de hacking enviando PRs para o repositório hacktricks e hacktricks-cloud repo.