hacktricks/linux-hardening/linux-environment-variables.md
2023-06-06 18:56:34 +00:00

8.1 KiB
Raw Blame History

Variáveis de ambiente do Linux

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Variáveis globais

As variáveis globais serão herdadas pelos processos filhos.

Você pode criar uma variável global para sua sessão atual fazendo:

export MYGLOBAL="hello world"
echo $MYGLOBAL #Prints: hello world

Esta variável será acessível por suas sessões atuais e seus processos filhos.

Você pode remover uma variável fazendo:

unset MYGLOBAL

Variáveis locais

As variáveis locais só podem ser acessadas pelo shell/script atual.

LOCAL="my local"
echo $LOCAL
unset LOCAL

Listar variáveis atuais

set
env
printenv
cat /proc/$$/environ
cat /proc/`python -c "import os; print(os.getppid())"`/environ

Variáveis de ambiente persistentes

Arquivos que afetam o comportamento de todos os usuários:

  • /etc/bash.bashrc: Este arquivo é lido sempre que um shell interativo é iniciado (terminal normal) e todos os comandos especificados aqui são executados.
  • /etc/profile e /etc/profile.d/*: Este arquivo é lido toda vez que um usuário faz login. Assim, todos os comandos executados aqui serão executados apenas uma vez no momento do login do usuário.
    • **Exemplo: **

      /etc/profile.d/somescript.sh

      #!/bin/bash
      TEST=$(cat /var/somefile)
      export $TEST
      

Arquivos que afetam o comportamento de apenas um usuário específico:

  • ~/.bashrc: Este arquivo funciona da mesma maneira que o arquivo /etc/bash.bashrc, mas é executado apenas para um usuário específico. Se você quiser criar um ambiente para si mesmo, modifique ou crie este arquivo em seu diretório home.
  • ~/.profile, ~/.bash_profile, ~/.bash_login: Esses arquivos são iguais ao arquivo /etc/profile. A diferença está na forma como é executado. Este arquivo é executado apenas quando um usuário em cujo diretório home este arquivo existe faz login.

Extraído de: aqui e aqui

Variáveis comuns

De: https://geek-university.com/linux/common-environment-variables/

  • DISPLAY o display usado pelo X. Esta variável geralmente é definida como :0.0, o que significa o primeiro display no computador atual.
  • EDITOR o editor de texto preferido do usuário.
  • HISTFILESIZE o número máximo de linhas contidas no arquivo de histórico.
  • **HISTSIZE - **Número de linhas adicionadas ao arquivo de histórico quando o usuário termina sua sessão.
  • HOME seu diretório home.
  • HOSTNAME o nome do host do computador.
  • LANG seu idioma atual.
  • MAIL o local do spool de correio do usuário. Geralmente /var/spool/mail/USER.
  • MANPATH a lista de diretórios para procurar páginas do manual.
  • OSTYPE o tipo de sistema operacional.
  • PS1 o prompt padrão no bash.
  • **PATH - **armazena o caminho de todos os diretórios que contêm arquivos binários que você deseja executar apenas especificando o nome do arquivo e não pelo caminho relativo ou absoluto.
  • PWD o diretório de trabalho atual.
  • SHELL o caminho para o shell de comando atual (por exemplo, /bin/bash).
  • TERM o tipo de terminal atual (por exemplo, xterm).
  • TZ seu fuso horário.
  • USER seu nome de usuário atual.

Variáveis interessantes para hacking

HISTFILESIZE

Altere o valor desta variável para 0, para que quando você encerrar sua sessão, o arquivo de histórico (~/.bash_history) seja excluído.

export HISTFILESIZE=0

HISTSIZE

Altere o valor desta variável para 0, assim quando você encerrar sua sessão, nenhum comando será adicionado ao arquivo de histórico (~/.bash_history).

export HISTSIZE=0

http_proxy & https_proxy

Os processos usarão o proxy declarado aqui para se conectar à internet através do http ou https.

export http_proxy="http://10.10.10.10:8080"
export https_proxy="http://10.10.10.10:8080"

SSL_CERT_FILE & SSL_CERT_DIR

Os processos confiarão nos certificados indicados nessas variáveis de ambiente.

export SSL_CERT_FILE=/path/to/ca-bundle.pem
export SSL_CERT_DIR=/path/to/ca-certificates

PS1

Altere a aparência do seu prompt.

Eu criei este (baseado em outro, leia o código).

Root:

Usuário regular:

Um, dois e três trabalhos em segundo plano:

Um trabalho em segundo plano, um parado e o último comando não terminou corretamente:

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥