JSMolator est un script exploitant les vulnérabilités du programme JMol.
C’est quoi Jmol?
Jmol est un logiciel libre de visualisation de structures chimiques en 3D. Il est principalement utilisé par les étudiants, les professeurs et les chercheurs en chimie et en biologie structurale. Il est développé en Java et est multi-plateformes. (Windows, Mac OS X et Linux).
Ou le trouve t-on?
La plupart du temps il sera hébergé sur un site web et intégré dans un fichier php: « JSMol.php »
Les sites web en question sont souvent des universités, écoles ou institut de chimie.
Quelle vulnérabilité est exploitée?
L’exploit concerne le « Directory Traversal ». Les fichiers du serveurs sur lequel est hébergé JMol sont vulnérable au listing de fichiers.
Quelles versions sont impactées?
Le version 6.1 et celles antérieurs sont concernées.
Comment y remédier ?
- Mettre à jour JMol
- Protéger l’accès de ces pages : bloquer l’accès externe, définir des mots-de-passe…etc.
Et JSMolator dans tout ça?
C’est là où JSMolator est intéressant.
En effet, JSMolator permet de forger les payloads et de récupérer les fichiers sensibles rapidement sans effort.
Voici les avantages du script:
- Forge un payload (requête d’attaque) en testant les différents payloads et formatages possibles.
- Récupère les fichiers sensibles parmi plus de 360 fichiers (passwd, apache.conf… etc)
- Télécharge tous les fichiers trouvés.
- La liste de fichiers à rechercher est paramétrable. Vous pourrez ajouter votre liste perso.
- Recherche de mots clé dans les fichiers téléchargés : root, admin, password… etc.
- L’historique des cibles est sauvegardé
Télécharger ce script:
Ce script est disponible sur Github à cette adresse:
https://github.com/dino213dz/jsmolator
Pour l’installer sur votre OS Linux, il suffit de lancer cette commande :
git clone https://github.com/dino213dz/jsmolator.git
Descriptif des fichiers du script:
- README.md : Fichier descriptif du script
- jsmolator.conf: Fichier de configuration du script. Plus de détails dans le chapitre suivant
- jsmolator.fct: Liste des fonctions du script (ne pas modifier à moins de savoir ce que vous faites)
- jsmolator.files: Liste des fichiers à télécharger. Peut être modifiée à votre guise. un chemin par ligne (relatif ou absolu)
- jsmolator.history: Historique des url testées
- jsmolator.sh: Script à exécuter.
- jsmolator.targets: Liste de cible scannées si aucune cible n’est précisée en paramètres
Syntaxe du Script:
jsmolator.sh https://target/jsmol.php
avec:
target : url du fichier jsmol.php
JSMolator en action:
Pour lancer une attaque, il suffit de taper la commande suivante :
jsmolator.sh https://exemple.site/dossiers/jsmol.php
ou
sh jsmolator.sh https://exemple.site/dossiers/jsmol.php
Cette opération peut durer quelques minutes selon le débit internet (3mn en moyenne).
Laissez le script faire le travail.

Etape 1 : Tests payloads

Etape 2 : Récupération des fichiers

Etape 3 : Recherches de mots-clés
Paramétrage personnalisé :
Si vous souhaitez aller plus loin il est possible d’adapter le script à vos besoins.
Paramétrage du scan:
- basculer entre le mode Interactif et Automatique:
- Ouvrir le fichier jsmolator.conf
- Modifier la variable « mode_interact »
- ON : Activer
- OFF : Désactiver
- Mode Verbose
- Ouvrir le fichier jsmolator.conf
- Modifier la variable « mode_verbose »
- ON : Activer
- OFF : Désactiver
- Activer la recherche de mots-clés
- Ouvrir le fichier jsmolator.conf
- Modifier la variable « mode_tagsearch »
- ON : Activer
- OFF : Désactiver
- Ajouter des mots-clés à rechercher
- Ouvrir le fichier jsmolator.conf
- Modifier la variable « tags_checklist »
- Ajouter des mots séparés par des « espaces »
- Modifier la liste de fichiers à télécharger
- Ouvrir le fichier jsmolator.files
- Ajoutez un chemin de fichier par ligne (chemin relatif ou absolu)
Paramétrage du Script:
- Activer le mode debug
- Ouvrir le fichier jsmolator.conf
- Modifier la variable « mode_debug »
- ON : Activer
- OFF : Désactiver
- Paramétrer les requêtes http (curl)
- Ouvrir le fichier jsmolator.conf
- éditer la var. « curl_ttl » pour le TTL (en milli secondes)
- éditer la var. « curl_retry » pour le nombre de tentative
- Délai entre les téléchargements
- Ouvrir le fichier jsmolator.conf
- éditer la var. « delai_download » (en secondes)
- Modifier l’emplacement du dossier de téléchargements
- Ouvrir le fichier jsmolator.conf
- éditer la var. « download_folder »
- Modifier l’emplacement des fichiers temporaires
- Ouvrir le fichier jsmolator.conf
- éditer la var. « curl_output_filename«
Paramétrage visuel:
- Modifier le contenu des messages
- Ouvrir le fichier jsmolator.conf
- Editer ces variables:
- target_result_title_is_vulnerable: Titre affiché quand une cible est vulnérable
- target_result_text_is_vulnerable: Message affiché quand une cible est vulnérable
- target_result_title_not_vulnerable: Titre affiché quand une cible n’est pas vulnérable
- target_result_text_not_vulnerable: Message affiché quand une cible n’est pas vulnérable
- Modifier les couleurs: Les couleurs sont au format Unix. Plus de détails prochainement.
- Modifier la bannière:
- Ouvrir le fichier jsmolator.conf
- éditer la var. « banner«