WebShell-Cliは、コマンドラインの方法で関連するWebシェルにアクセスできるPythonスクリプトです。 WebShell-CLIは、現在の作業ディレクトリの変更、環境変数の設定をサポートし、簡単なアップロードとファイルのダウンロードを可能にします。


WebShell-Cliは単なるPythonスクリプトです。要件をインストールした後、実行できるはずです。
[qtc@devbox ~] $ git clone https://github.com/qtc-de/webshell-cli
[qtc@devbox ~] $ cd webshell-cli
[qtc@devbox webshell-cli] $ pip3 install --user -r requirements.txt
[qtc@devbox webshell-cli] $ python3 webshell-cli.py
usage: webshell-cli.py [-h] [-m] [-f FILE_HISTORY] [-s SHELL] url
webshell-cli.py: error: the following arguments are required: urlWebShell-Cliは、このプロジェクトのために特別に構築されたWebシェルでのみ動作します。 WebShellsディレクトリ内でサポートされているWebシェルを見つけることができます。現在、次のサーバー側のテクノロジーがサポートされています。
さらに、WebShellsディレクトリには、 .warアーカイブを構築するためのビルドスクリプトが含まれています。
WebShell-CLIは、感嘆符をコマンドラインの最初の文字として使用して呼び出すことができる特別なコマンドをサポートしています。以下に、現在サポートされている特別なコマンドのリストを見つけることができます。
!background <cmd>バックグラウンドで指定されたコマンドを実行します!download <rfile> [<lfile>]サーバーからリモートファイルをダウンロードする!upload <lfile> [<rfile>]ローカルファイルをサーバーにアップロードする!get <rfile> [<lfile>]!put <lfile> [<rfile>]エイリアス!eval <lfile>サーバー上のローカルファイルを評価する(PHPでのみ利用可能)!env [<var>=<val>]環境変数を設定します!helpこのヘルプメニューを表示してください変数を指定せずに!envコマンドを使用する場合、現在設定された変数を含むリストを出力します。 !env clearが指定された場合、手動で追加されたすべての環境変数が削除されます。
--shellオプションを使用して、各シェルにカスタムシェルコマンドを使用できます。デフォルトのシェルコマンドは、UNIXの場合/bin/sh -c 、 cmd.exe /cはウィンドウです。 base64シェルはどうですか?問題ない:
[qtc@devbox ~] $ webshell-cli 172.18.0.2/webshell.php --shell base64
[nobody@efd0355fda4c /var/www/html/public] $ /etc/issue
V2VsY29tZSB0byBBbHBpbmUgTGludXggMy4xNQpLZXJuZWwgXHIgb24gYW4gXG0gKFxsKQoKデフォルトでは、 WebShell-Cliは履歴ファイル~/.webshell_cli_historyを使用して、最新のコマンドのコマンドライン履歴を提供します。 -fオプションを使用して、履歴ファイルを保存するための別の場所を指定するか、 -mオプションを使用して、代わりにインメモリコマンド履歴を使用します。
このプロジェクトへの貢献はいつでも大歓迎です。 Docsフォルダーには、WebShell-Cliが消費できるWebシェルの要件をリストする仕様が含まれています。さらに、ドキュメントにはいくつかの設計上の決定がリストされています。特定のことは実装するのにそれほど簡単ではなかったからです。
このプロジェクトは、 CTFの課題と教育目的でのみ使用されることを目的としています。多くのウェブシェルがインターネットで利用可能であり、このリポジトリのシェルは難読化や暗号化さえ実装していないため、とにかく現実の攻撃には役に立ちません。