hacktricks/linux-hardening/linux-environment-variables.md
2023-06-03 13:10:46 +00:00

8.4 KiB
Raw Blame History

Variables d'environnement Linux

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

Variables globales

Les variables globales seront héritées par les processus enfants.

Vous pouvez créer une variable globale pour votre session actuelle en faisant :

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

Cette variable sera accessible par vos sessions actuelles et ses processus enfants.

Vous pouvez supprimer une variable en faisant :

unset MYGLOBAL

Variables locaux

Les variables locales ne peuvent être accédées que par le shell/script courant.

LOCAL="my local"
echo $LOCAL
unset LOCAL

Liste des variables actuelles

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

Variables d'environnement persistantes

Fichiers qui affectent le comportement de chaque utilisateur :

  • /etc/bash.bashrc : Ce fichier est lu chaque fois qu'un shell interactif est démarré (terminal normal) et toutes les commandes spécifiées ici sont exécutées.
  • /etc/profile et /etc/profile.d/*: Ce fichier est lu chaque fois qu'un utilisateur se connecte. Ainsi, toutes les commandes exécutées ici ne seront exécutées qu'une seule fois au moment de la connexion de l'utilisateur.
    • **Exemple : **

      /etc/profile.d/somescript.sh

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

Fichiers qui affectent le comportement d'un utilisateur spécifique :

  • ~/.bashrc : Ce fichier fonctionne de la même manière que le fichier /etc/bash.bashrc, mais il est exécuté uniquement pour un utilisateur spécifique. Si vous voulez créer un environnement pour vous-même, modifiez ou créez ce fichier dans votre répertoire personnel.
  • ~/.profile, ~/.bash_profile, ~/.bash_login: Ces fichiers sont identiques à /etc/profile. La différence réside dans la manière dont il est exécuté. Ce fichier est exécuté uniquement lorsqu'un utilisateur dans le répertoire personnel duquel ce fichier existe se connecte.

Extrait de : ici et ici

Variables courantes

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

  • DISPLAY l'affichage utilisé par X. Cette variable est généralement définie sur :0.0, ce qui signifie le premier affichage sur l'ordinateur actuel.
  • EDITOR l'éditeur de texte préféré de l'utilisateur.
  • HISTFILESIZE le nombre maximum de lignes contenues dans le fichier d'historique.
  • **HISTSIZE - **Nombre de lignes ajoutées au fichier d'historique lorsque l'utilisateur termine sa session.
  • HOME votre répertoire personnel.
  • HOSTNAME le nom d'hôte de l'ordinateur.
  • LANG votre langue actuelle.
  • MAIL l'emplacement du spool de courrier de l'utilisateur. Généralement /var/spool/mail/USER.
  • MANPATH la liste des répertoires à rechercher pour les pages de manuel.
  • OSTYPE le type de système d'exploitation.
  • PS1 l'invite par défaut dans bash.
  • **PATH - **stocke le chemin de tous les répertoires qui contiennent des fichiers binaires que vous souhaitez exécuter simplement en spécifiant le nom du fichier et non le chemin relatif ou absolu.
  • PWD le répertoire de travail actuel.
  • SHELL le chemin vers le shell de commande actuel (par exemple, /bin/bash).
  • TERM le type de terminal actuel (par exemple, xterm).
  • TZ votre fuseau horaire.
  • USER votre nom d'utilisateur actuel.

Variables intéressantes pour le piratage

HISTFILESIZE

Modifiez la valeur de cette variable à 0, de sorte que lorsque vous terminez votre session, le fichier d'historique (~/.bash_history) sera supprimé.

export HISTFILESIZE=0

HISTSIZE

Changez la valeur de cette variable à 0, ainsi lorsque vous terminez votre session, toute commande ne sera pas ajoutée au fichier d'historique (~/.bash_history).

export HISTSIZE=0

http_proxy & https_proxy

Les processus utiliseront le proxy déclaré ici pour se connecter à Internet via 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

Les processus feront confiance aux certificats indiqués dans ces variables d'environnement.

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

PS1

Modifiez l'apparence de votre invite de commande.

J'ai créé celle-ci (basée sur une autre, lisez le code).

Root:

Utilisateur régulier:

Un, deux et trois travaux en arrière-plan:

Un travail en arrière-plan, un arrêté et la dernière commande n'a pas fini correctement:

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