webshell-cli是一个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仅适用于专门为该项目构建的网络壳。您可以在Webshells目录中找到受支持的网状壳。当前,支持以下服务器端技术:
此外,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选项为每个外壳使用自定义外壳命令。默认的shell命令为unix和cmd.exe /c /bin/sh -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可消耗的Webshells的要求。此外,文档列出了一些设计决策,因为某些事情并不是直接实施的。
该项目仅用于CTF挑战和教育目的。由于互联网上有大量的网状壳,并且该存储库中的外壳甚至没有实现混淆或加密,因此无论如何它们对现实世界的攻击都不会有用。