Webshell-Cli ist ein Python-Skript, mit dem der Zugriff auf die zugehörigen Webshells in einer Befehlszeile zugreifen kann. Webshell-Cli unterstützt das Ändern des aktuellen Arbeitsverzeichnisses, das Einstellen von Umgebungsvariablen und ermöglicht einfache Uploads und Downloads von Dateien.


Webshell-Cli ist nur ein Python-Skript. Nach der Installation der Anforderungen sollten Sie in der Lage sein, sie auszuführen:
[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 funktioniert nur mit Webshells, die speziell für dieses Projekt erstellt wurden. Die unterstützten Webshells finden Sie im Webshells -Verzeichnis. Derzeit werden die folgenden serverseitigen Technologien unterstützt:
Darüber hinaus enthält das Webshells -Verzeichnis ein Build -Skript zum Erstellen von .war -Archiven.
Webshell-Cli unterstützt einige spezielle Befehle, die durch die Verwendung eines Ausrufezeichens als erstes Zeichen in einer Befehlszeile aufgerufen werden können. Im Folgenden finden Sie die Liste der derzeit unterstützten Sonderbefehle:
!background <cmd> Führen Sie den angegebenen Befehl im Hintergrund aus!download <rfile> [<lfile>] Laden Sie eine Remotedatei vom Server herunter!upload <lfile> [<rfile>] Laden Sie eine lokale Datei auf den Server hoch!get <rfile> [<lfile>] alias zum Download!put <lfile> [<rfile>]!eval <lfile> eine lokale Datei auf dem Server bewerten (nur für PHP verfügbar)!env [<var>=<val>] Legen Sie eine Umgebungsvariable fest!help mit dieser Hilfemenü Wenn Sie den Befehl !env verwenden, ohne eine Variable anzugeben, gibt es eine Liste aus, die die derzeit festgelegten Variablen enthält. Wann !env clear wurde angegeben, werden alle manuell hinzugefügten Umgebungsvariablen gelöscht.
Sie können einen benutzerdefinierten Shell -Befehl für jede Shell verwenden, indem Sie die Option --shell verwenden. Die Standard -Shell -Befehle sind /bin/sh -c für UNIX und cmd.exe /c für Windows. Wie wäre es mit einer base64 -Shell? Kein Problem:
[qtc@devbox ~] $ webshell-cli 172.18.0.2/webshell.php --shell base64
[nobody@efd0355fda4c /var/www/html/public] $ /etc/issue
V2VsY29tZSB0byBBbHBpbmUgTGludXggMy4xNQpLZXJuZWwgXHIgb24gYW4gXG0gKFxsKQoK Standardmäßig verwendet Webshell-Cli die History-Datei ~/.webshell_cli_history um Ihnen einen Befehlszeilenverlauf für Ihre neuesten Befehle bereitzustellen. Sie können die Option -f verwenden, um einen anderen Speicherort für das Speichern der Verlaufsdatei oder die Option -m zu verwenden, um stattdessen einen In -Memory -Befehlsverlauf zu verwenden.
Beiträge zu diesem Projekt sind immer willkommen. Der DOCS-Ordner enthält eine Spezifikation, in der die Anforderungen an Webshells aufgeführt sind, die von Webshell-Cli konsumiert werden sollen. Darüber hinaus listet in der Dokumentation einige Entwurfsentscheidungen auf, da bestimmte Dinge nicht so einfach implementiert waren.
Dieses Projekt soll nur für CTF -Herausforderungen und Bildungszwecke verwendet werden. Da im Internet viele Webshells verfügbar sind und die Shells aus diesem Repository nicht einmal Verschleierung oder Verschlüsselung implementieren, werden sie ohnehin nicht für reale Angriffe nützlich sein.