WebShell-Cli es un script de Python que permite acceder a sus WebShells asociadas de manera de línea de comandos. WebShell-Cli admite cambiar el directorio de trabajo actual, configurar variables de entorno y permite cargas y descargas fáciles de archivos.


WebShell-Cli es solo un script de Python. Después de instalar los requisitos, debería poder ejecutarlo:
[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 solo funciona con WebShells que se construyeron específicamente para este proyecto. Puede encontrar las redes web compatibles dentro del directorio de WebShells. Actualmente, se admiten las siguientes tecnologías del lado del servidor:
Además, el Directorio de WebShells contiene un script de compilación para la construcción de archivos .war .
WebShell-Cli admite algunos comandos especiales que se pueden invocar utilizando un signo de exclamación como el primer carácter en una línea de comandos. A continuación puede encontrar la lista de comandos especiales compatibles actualmente:
!background <cmd> Ejecutar el comando especificado en segundo plano!download <rfile> [<lfile>] download a remote file from the server!upload <lfile> [<rfile>] cargue un archivo local en el servidor!get <rfile> [<lfile>] alias para descargar!put <lfile> [<rfile>] alias para cargar!eval <lfile> Evalúe un archivo local en el servidor (solo disponible para PHP)!env [<var>=<val>] Establezca una variable de entorno!help a mostrar este menú de ayuda Al usar el comando !env sin especificar una variable, genera una lista que contiene las variables establecidas actualmente. Cuando se especificó !env clear , todas las variables de entorno agregadas manualmente se eliminan.
Puede usar un comando de shell personalizado para cada shell usando la opción --shell . Los comandos de shell predeterminados son /bin/sh -c para unix y cmd.exe /c para Windows. ¿Qué tal un shell base64 ? Ningún problema:
[qtc@devbox ~] $ webshell-cli 172.18.0.2/webshell.php --shell base64
[nobody@efd0355fda4c /var/www/html/public] $ /etc/issue
V2VsY29tZSB0byBBbHBpbmUgTGludXggMy4xNQpLZXJuZWwgXHIgb24gYW4gXG0gKFxsKQoK Por defecto, WebShell-Cli usa el archivo de historial ~/.webshell_cli_history para proporcionarle un historial de línea de comandos para sus últimos comandos. Puede usar la opción -f para especificar una ubicación diferente para almacenar el archivo del historial o usar la opción -m para usar un historial de comandos en memoria en su lugar.
Las contribuciones a este proyecto siempre son bienvenidas. La carpeta DOCS contiene una especificación que enumera los requisitos para que WebShells sea consumible por WebShell-Cli . Además, la documentación enumera algunas decisiones de diseño, ya que ciertas cosas no eran tan directas para implementar.
Este proyecto está destinado a usarse solo para desafíos de CTF y fines educativos. Como hay muchas redes web disponibles en Internet y los proyectiles de este repositorio ni siquiera implementan ofuscación o cifrado, de todos modos no serán útiles para los ataques del mundo real.