Interesting Groups - Linux Privesc
Last updated
Last updated
Aprenda e pratique Hacking AWS:Treinamento HackTricks AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: Treinamento HackTricks GCP Red Team Expert (GRTE)
Às vezes, por padrão (ou porque algum software precisa) dentro do arquivo /etc/sudoers você pode encontrar algumas dessas linhas:
Isso significa que qualquer usuário que pertença ao grupo sudo ou admin pode executar qualquer coisa como sudo.
Se for o caso, para se tornar root você pode simplesmente executar:
Encontre todos os binários suid e verifique se há o binário Pkexec:
Se você descobrir que o binário pkexec é um binário SUID e você pertence ao grupo sudo ou admin, provavelmente poderá executar binários como sudo usando pkexec
.
Isso ocorre porque normalmente esses são os grupos dentro da política polkit. Essa política basicamente identifica quais grupos podem usar pkexec
. Verifique com:
Aqui você encontrará quais grupos têm permissão para executar pkexec e por padrão em algumas distribuições Linux os grupos sudo e admin aparecem.
Para se tornar root você pode executar:
Se tentar executar pkexec e receber este erro:
Não é porque você não tem permissões, mas sim porque você não está conectado sem uma GUI. E há uma solução alternativa para esse problema aqui: https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903. Você precisa de 2 sessões ssh diferentes:
Às vezes, por padrão dentro do arquivo /etc/sudoers você pode encontrar esta linha:
Isso significa que qualquer usuário que pertença ao grupo wheel pode executar qualquer coisa como sudo.
Se for o caso, para se tornar root, você pode simplesmente executar:
Usuários do grupo shadow podem ler o arquivo /etc/shadow:
Então, leia o arquivo e tente quebrar alguns hashes.
staff: Permite aos usuários adicionar modificações locais ao sistema (/usr/local
) sem precisar de privilégios de root (observe que os executáveis em /usr/local/bin
estão no caminho de qualquer usuário e podem "substituir" os executáveis em /bin
e /usr/bin
com o mesmo nome). Compare com o grupo "adm", que está mais relacionado à monitorização/segurança. [fonte]
Nas distribuições debian, a variável $PATH
mostra que /usr/local/
será executado com a maior prioridade, quer seja um usuário privilegiado ou não.
Se conseguirmos sequestrar alguns programas em /usr/local
, podemos facilmente obter acesso de root.
Sequestrar o programa run-parts
é uma maneira fácil de obter acesso de root, pois a maioria dos programas executará um run-parts
(como crontab, quando fizer login via ssh).
ou Quando uma nova sessão ssh é iniciada.
Explorar
Este privilégio é quase equivalente ao acesso root pois permite acessar todos os dados dentro da máquina.
Arquivos: /dev/sd[a-z][1-9]
Note que usando o debugfs você também pode escrever arquivos. Por exemplo, para copiar /tmp/asd1.txt
para /tmp/asd2.txt
, você pode fazer:
No entanto, se você tentar escrever arquivos de propriedade do root (como /etc/shadow
ou /etc/passwd
) você terá um erro de "Permissão negada".
Usando o comando w
você pode encontrar quem está logado no sistema e ele mostrará uma saída como a seguinte:
O tty1 significa que o usuário yossi está logado fisicamente em um terminal na máquina.
O grupo video tem acesso para visualizar a saída da tela. Basicamente, você pode observar as telas. Para fazer isso, você precisa capturar a imagem atual na tela em dados brutos e obter a resolução que a tela está usando. Os dados da tela podem ser salvos em /dev/fb0
e você pode encontrar a resolução desta tela em /sys/class/graphics/fb0/virtual_size
.
Para abrir a imagem bruta, você pode usar o GIMP, selecionar o arquivo **screen.raw
** e selecionar como tipo de arquivo Dados de imagem bruta:
Em seguida, modifique a Largura e Altura para as usadas na tela e verifique os diferentes Tipos de Imagem (e selecione aquele que mostra melhor a tela):
Parece que por padrão membros do grupo root poderiam ter acesso para modificar alguns arquivos de configuração de serviço ou alguns arquivos de bibliotecas ou outras coisas interessantes que poderiam ser usadas para escalar privilégios...
Verifique quais arquivos os membros do root podem modificar:
Você pode montar o sistema de arquivos raiz da máquina hospedeira em um volume da instância, para que, quando a instância iniciar, ela carregue imediatamente um chroot
nesse volume. Isso efetivamente lhe dá acesso root na máquina.
Geralmente, membros do grupo adm
têm permissão para ler arquivos de log localizados dentro de /var/log/.
Portanto, se você comprometeu um usuário dentro deste grupo, definitivamente deve dar uma olhada nos logs.
Dentro do OpenBSD, o grupo auth geralmente pode escrever nas pastas /etc/skey e /var/db/yubikey se forem usadas. Essas permissões podem ser abusadas com o seguinte exploit para escalar privilégios para root: https://raw.githubusercontent.com/bcoles/local-exploits/master/CVE-2019-19520/openbsd-authroot