Privilege Escalation - Linux

Cenário: O atacante obtém um arquivo .pcap com a captura de tráfego da rede interna. Nesse arquivo o atacante identifica o acesso de um usuário ao FTP e coleta a credencial. O atacante consegue acesso ao servidor pelo FTP e também pelo SSH, a partir do acesso ao servidor, inicia-se o reconhecimento interno.

OWASP Definição

A escalação de privilégio em um sistema é classificada pelo OWASP Top 10 como Broken Access Control. Isto é, quando um sistema permite a escalação de privilégio dando acesso administrativo indevido para uma credencial comum, sem privilégios, essa vulnerabilidade consiste na quebra do controle de acesso do sistema.  

Capabilities in Linux

A partir do Kernel 2.2, o Linux divide os privilégios associados ao superuser root em unidades distintas, chamadas de capabilities. As capabilities podem ser habilitadas ou desabilitadas de forma independente para um processo ou um executável. 

Getcap

O comando getcap mostra as capabilities atribuídas para cada executável do sistema. Na imagem abaixo, o atacante executa o getcap para fazer o reconhecimento interno do servidor e identificar se existem executáveis com o SUID habilitado e qual a capability atribuída. 

SUID 

SUID é uma sigla para Set owner User ID up on execution e significa uma permissão especial para que determinado usuário execute um programa ou tenha acesso a um arquivo do sistema. É um privilégio administrativo controlado que é atribuído ao contexto de um usuário, evitando que, para fazer determinada tarefa, a permissão de root tenha que ser usada.

Identificando Capabilities

No servidor alvo, ao executar o comando getcap -r / 2>/dev/null é possível identificar quais capabilities estão habilitadas para os executáveis do sistema. 


O python3.8 possui o SUID habilitado, ou seja, o python3 é executado com privilégio de root no sistema. O comando abaixo usa o módulo OS e as funções os.setuid e os.system para executar a escalação de privilégio. 

A função os.setuid atribuí o UID zero que representa o root na execução (chamada) do shell pela função os.system

Done !! 


Referências:

[+] OWASP Broken Access Control

https://owasp.org/Top10/A01_2021-Broken_Access_Control/

[+] Linux Capabilities

https://www.vultr.com/docs/working-with-linux-capabilities

[+] SUID e Capabilities - Privilege Escalation 

https://gtfobins.github.io/gtfobins/python/#capabilities

Comentários

Postagens mais visitadas