ptrace suid binários após o privilégio ser descartado

2

Eu entendo que provavelmente não podemos fazer ptrace em binários suid. No entanto, estou me perguntando por que não podemos fazer o rastreamento depois que o binário abandona seu precedente para uid em vez de euid.

Por exemplo, no binário, o binário suid perde o privilégio após alguns passos.

 seteuid (euid);
 ret_chdir = chdir (path);
 seteuid (ruid);

 system("whoami");
 printf("Enter any char");
 scanf("%c", &junk);

No meu caso, quando "whoami" é impresso, é o nome de usuário do processo, mas não o proprietário do processo. Quando o programa está esperando por uma entrada de lixo eletrônico, eu estava tentando se conectar ao processo em execução com o uid como o nome do usuário, mas ele falhou, mesmo que o binário tenha descartado o privilégio. É possível que o anexo ptrace use o estado uid-guardado para decidir que eu não sou o proprietário?

    
por user171238 20.05.2016 / 02:30

2 respostas

1

Seu código de exemplo não elimina privilégios! Ele pode elevar privilégios livremente chamando seteuid(euid) . Se você puder rastreá-lo, então você pode chamar seteuid(euid) e, assim, executar o código privilegiado.

Você está perguntando isso porque achou que ptrace era somente leitura? Não, não é: strace é apenas uma coisa que você pode fazer com isso; ptrace permite que o rastreador execute código arbitrário na tracee, e não apenas observe. Não há controle de acesso refinado que garanta o acesso ptrace “somente leitura”.

Mas até mesmo um ptrace somente leitura é perigoso. Um aplicativo que tenha privilégios elevados pode estar manipulando dados confidenciais. Portanto, você não pode rastrear um processo que tenha sido privilegiado, mesmo que seja descartado com privilégios. O processo tem que chamar execve para eliminar todos os vestígios de ter sido privilegiado.

    
por 21.05.2016 / 01:53
0

Isso parece um bom palpite, por causa da possibilidade de trocar de volta , que é uma área conhecida onde um problema de segurança resultaria.

Leitura adicional:

por 20.05.2016 / 03:07