usuário normal sem privilégios passando variáveis de ambiente para / bin / login [closed]

0

Suponha que no FreeBSD (ou talvez no linux) exista um usuário normal não privilegiado (não-superusuário). E há um telnet standalone (eu sei que o telnet é normalmente executado sob inetd) rodando sob (de propriedade) deste usuário. (Suponha que não houvesse um telnet original de propriedade da raiz.) Este servidor de telnet está programado para não verificar as variáveis de ambiente ld_ * antes de passá-lo para / bin / login de root que tenha setuid configurado.

A pergunta seria: 1. Este telnet funcionará? 2. Se funcionar, será possível passar variáveis de ambiente para / bin / login?

    
por AAAAAAAA 24.09.2012 / 07:09

1 resposta

0

Suppose that in FreeBSD (or linux maybe) there is a non-privileged superuser.

"Superusuário não privilegiado" é uma contradição em termos; a palavra "superusuário" significa um usuário com todos os privilégios.

This telnet server is programmed so that it does not check ld_* environment variables

Não tenho certeza se isso é relevante. O servidor de telnet não tem privilégios especiais, portanto, despir as variáveis LD_* não é muito útil ...

  1. Will this telnet work? 2. If it does work, will it even be able to pass environment variables to /bin/login?

Funcionará parcialmente, mas provavelmente não conseguirá ligar-se à porta Telnet padrão devido à falta do privilégio CAP_NET_BIND_SERVICE.

Sim, ele poderá passar variáveis de ambiente para login , como qualquer outro processo. No entanto, pelo menos no Linux, o utilitário de carga (ld-linux.so) descarta todas as variáveis LD_* antes de executar um programa setuid, portanto, um setuid- login não seria afetado por elas.

    
por 24.09.2012 / 10:14