WebShell-CLI est un script Python qui permet d'accéder à ses coteaux de boutique associés d'une manière de commandement. WebShell-CLI prend en charge la modification du répertoire de travail actuel, la définition des variables d'environnement et permet des téléchargements et des téléchargements faciles de fichiers.


WebShell-Cli n'est qu'un script Python. Après avoir installé les exigences, vous devriez pouvoir l'exécuter:
[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 ne fonctionne qu'avec des webshells qui ont été spécifiquement construits pour ce projet. Vous pouvez trouver les webshells pris en charge dans le répertoire de webshells. Actuellement, les technologies côté serveur suivantes sont prises en charge:
De plus, le répertoire de webshells contient un script de construction pour la construction .war archives.
WebShell-CLI prend en charge certaines commandes spéciales qui peuvent être invoquées en utilisant une marque d'exclamation comme premier caractère sur une ligne de commande. Vous trouverez ci-dessous la liste des commandes spéciales actuellement prises en charge:
!background <cmd> Exécutez la commande spécifiée en arrière-plan!download <rfile> [<lfile>] Téléchargez un fichier distant du serveur!upload <lfile> [<rfile>] Téléchargez un fichier local sur le serveur!get <rfile> [<lfile>] Alias pour le téléchargement!put <lfile> [<rfile>] Alias pour le téléchargement!eval <lfile> Évaluez un fichier local sur le serveur (disponible uniquement pour PHP)!env [<var>=<val>] Définissez une variable d'environnement!help à montrer ce menu d'aide Lors de l'utilisation de la commande !env sans spécifier une variable, il publie une liste contenant les variables actuellement définies. Lorsque !env clear a été spécifié, toutes les variables d'environnement ajoutées manuellement sont supprimées.
Vous pouvez utiliser une commande shell personnalisée pour chaque shell en utilisant l'option --shell . Les commandes de shell par défaut sont /bin/sh -c pour UNIX et cmd.exe /c pour Windows. Que diriez-vous d'une coquille base64 ? Aucun problème:
[qtc@devbox ~] $ webshell-cli 172.18.0.2/webshell.php --shell base64
[nobody@efd0355fda4c /var/www/html/public] $ /etc/issue
V2VsY29tZSB0byBBbHBpbmUgTGludXggMy4xNQpLZXJuZWwgXHIgb24gYW4gXG0gKFxsKQoK Par défaut, WebShell-CLI utilise le fichier historique ~/.webshell_cli_history pour vous fournir un historique de ligne de commande pour vos dernières commandes. Vous pouvez utiliser l'option -f pour spécifier un emplacement différent pour stocker le fichier historique ou utiliser l'option -m pour utiliser un historique de commande en mémoire à la place.
Les contributions à ce projet sont toujours les bienvenues. Le dossier DOCS contient une spécification qui répertorie les exigences pour lesquelles les webshells sont consommables par webshell-CLI . En outre, la documentation répertorie certaines décisions de conception, car certaines choses n'étaient pas si simples à mettre en œuvre.
Ce projet est destiné à être utilisé uniquement pour les défis CTF et les fins éducatives. Étant donné que de nombreuses coteaux sont disponibles sur Internet et que les shells de ce référentiel n'implémentent même pas l'obscurcissement ou le chiffrement, ils ne seront de toute façon pas utiles pour les attaques réelles du monde.