Compartilhamento de tecnologia

Use o docker para construir um ambiente de vulnerabilidade e use o SSRF Redis para escrever as chaves públicas do centos e do ubuntu para obter login sem senha.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Ambiente experimental

kali: Construa um ambiente de contêiner docker em kali. Aqui eu uso principalmente o primeiro;

Como um banco de dados, o Redis pode gravar dados na memória. Usamos solicitações ssrf para permitir que o servidor escreva sua própria chave pública para experimentar o login sem senha;

2. Processo experimental

Preparação preliminar e testes

Redis salva dados na forma de valores-chave. Aqui eu uso o ambiente centos construído com docker;

Use o seguinte comando para entrar no contêiner centos;

docker exex -it 容器的编号 /bin/bash

Como o centos já possui um script para rodar o redis-server, só precisamos habilitar o redis-cli no container;

Teste se pode ser escrito normalmente Conforme mostrado na figura, o conteúdo ou diretório escrito pode ser modificado.

O nome do arquivo também pode ser modificado, para que possamos construir uma chave pública e gravá-la no servidor de destino para obter login sem senha;

Após a modificação, salve-o, conforme mostrado na imagem, a escrita foi bem-sucedida!

Problemas que surgem e são resolvidos

Se houver uma situação em que o servidor não possa ser conectado, podemos usar ./start.sh para executar este script;

Breve introdução do SSRF e início do experimento

Forje solicitações por meio do servidor, use o protocolo gopher ou o time dict para solicitar redis e grave arquivos.

script de geração gopher

Carga útil gerada

Para que possamos fazer uma solicitação, cole o conteúdo acima nela e clique em Buscar

Problemas encontrados

Quando realizei o Fetch pela primeira vez, descobri que o arquivo não existia porque sua própria chave pública não foi gerada no ambiente centos, impossibilitando a gravação. chave pública em centos antecipadamente.

resultado

Pode-se observar que a chave pública foi gravada com sucesso no servidor de destino;

Então você pode fazer login via ssh sem senha. Percebe-se que o login foi bem-sucedido!

Problemas encontrados

Existem alguns problemas no ambiente Dockerfile, que impede que a porta 22 na imagem do docker seja iniciada, então o arquivo é modificado e executa /usr/sbin/sshd para iniciar o sshd.

Ao encontrar a falha de download mencionada acima, podemos apenas inicializar o arquivo, conforme mostrado na figura abaixo;

3. Resumo

Os passos para centos e ubuntu são quase os mesmos, exceto que devido ao mecanismo de proteção do redis, ocorrerão os seguintes erros, fazendo com que alguns atributos não possam ser modificados. A solução é desligar o modo protegido e usar o seguinte. comando;

config set protected-mode no

Devido às restrições da versão do Redis, a segurança do 7.2.5 é muito alta, o que fará com que o login ssh sem senha falhe, então puxei-o aqui.

Versão 5.0.5

Em seguida, use a mesma operação para obter login sem senha;