hacktricks/linux-hardening/linux-environment-variables.md
carlospolop 466ebcbb16 f
2023-06-05 20:30:03 +02:00

8.1 KiB
Raw Blame History

Variables de entorno de Linux

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

Variables globales

Las variables globales serán heredadas por los procesos hijos.

Puedes crear una variable global para tu sesión actual haciendo:

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

Esta variable será accesible por las sesiones actuales y sus procesos hijos.

Puedes eliminar una variable haciendo:

unset MYGLOBAL

Variables locales

Las variables locales solo pueden ser accedidas por la shell/script actual.

LOCAL="my local"
echo $LOCAL
unset LOCAL

Listar las variables actuales

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

Variables de entorno persistentes

Archivos que afectan el comportamiento de todos los usuarios:

  • /etc/bash.bashrc: Este archivo se lee cada vez que se inicia una shell interactiva (terminal normal) y todos los comandos especificados aquí se ejecutan.
  • /etc/profile y /etc/profile.d/*: Este archivo se lee cada vez que un usuario inicia sesión. Por lo tanto, todos los comandos ejecutados aquí se ejecutarán solo una vez en el momento del inicio de sesión del usuario.
    • **Ejemplo: **

      /etc/profile.d/somescript.sh

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

Archivos que afectan el comportamiento de un usuario específico:

  • ~/.bashrc: Este archivo funciona de la misma manera que el archivo /etc/bash.bashrc, pero se ejecuta solo para un usuario específico. Si desea crear un entorno para usted, modifique o cree este archivo en su directorio de inicio.
  • ~/.profile, ~/.bash_profile, ~/.bash_login: Estos archivos son iguales a /etc/profile. La diferencia radica en la forma en que se ejecuta. Este archivo se ejecuta solo cuando un usuario en cuyo directorio de inicio existe este archivo inicia sesión.

Extraído de: aquí y aquí

Variables comunes

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

  • DISPLAY la pantalla utilizada por X. Esta variable suele establecerse en :0.0, lo que significa la primera pantalla en la computadora actual.
  • EDITOR el editor de texto preferido del usuario.
  • HISTFILESIZE el número máximo de líneas contenidas en el archivo de historial.
  • **HISTSIZE - **Número de líneas agregadas al archivo de historial cuando el usuario finaliza su sesión.
  • HOME su directorio de inicio.
  • HOSTNAME el nombre de host de la computadora.
  • LANG su idioma actual.
  • MAIL la ubicación del buzón de correo del usuario. Por lo general, /var/spool/mail/USER.
  • MANPATH la lista de directorios para buscar páginas del manual.
  • OSTYPE el tipo de sistema operativo.
  • PS1 el indicador predeterminado en bash.
  • **PATH - **almacena la ruta de todos los directorios que contienen archivos binarios que desea ejecutar solo especificando el nombre del archivo y no por ruta relativa o absoluta.
  • PWD el directorio de trabajo actual.
  • SHELL la ruta a la shell de comando actual (por ejemplo, /bin/bash).
  • TERM el tipo de terminal actual (por ejemplo, xterm).
  • TZ su zona horaria.
  • USER su nombre de usuario actual.

Variables interesantes para hacking

HISTFILESIZE

Cambie el valor de esta variable a 0, para que cuando finalice su sesión, el archivo de historial (~/.bash_history) se elimine.

export HISTFILESIZE=0

HISTSIZE

Cambia el valor de esta variable a 0, de esta manera cuando finalices tu sesión cualquier comando no será añadido al archivo de historial (~/.bash_history).

export HISTSIZE=0

http_proxy & https_proxy

Los procesos utilizarán el proxy declarado aquí para conectarse a internet a través de http o 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

Los procesos confiarán en los certificados indicados en estas variables de entorno.

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

PS1

Cambia cómo se ve tu prompt.

He creado este (basado en otro, lee el código).

Root:

Usuario regular:

Uno, dos y tres trabajos en segundo plano:

Un trabajo en segundo plano, uno detenido y el último comando no finalizó correctamente:

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