Webshell-cli é um script Python que permite acessar suas conchas de web associadas de maneira a moda de comando. O WebShell-Cli suporta alterar o diretório de trabalho atual, definir variáveis de ambiente e permite uploads e downloads fáceis de arquivos.


Webshell-cli é apenas um script python. Depois de instalar os requisitos, você poderá executá -lo:
[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: urlO WebShell-Cli funciona apenas com webshells que foram criadas especificamente para este projeto. Você pode encontrar as webshells suportadas no diretório da webshells. Atualmente, as seguintes tecnologias do lado do servidor são suportadas:
Além disso, o diretório da webshells contém um script de construção para a construção de arquivos .war .
O webshell-cli suporta alguns comandos especiais que podem ser invocados usando uma marca de exclamação como o primeiro caractere em uma linha de comando. Abaixo, você pode encontrar a lista de comandos especiais atualmente suportados:
!background <cmd> Execute o comando especificado em segundo plano!download <rfile> [<lfile>] Baixe um arquivo remoto do servidor!upload <lfile> [<rfile>] Faça upload de um arquivo local para o servidor!get <rfile> [<lfile>] Alias para download!put <lfile> [<rfile>] para upload!eval <lfile>!env [<var>=<val>] Defina uma variável de ambiente!help a mostrar este menu de ajuda Ao usar o comando !env sem especificar uma variável, ele gera uma lista que contém as variáveis definidas atualmente. Quando !env clear foi especificado, todas as variáveis de ambiente adicionadas manualmente são excluídas.
Você pode usar um comando shell personalizado para cada shell usando a opção --shell . Os comandos do shell padrão são /bin/sh -c para unix e cmd.exe /c para Windows. Que tal uma concha base64 ? Sem problemas:
[qtc@devbox ~] $ webshell-cli 172.18.0.2/webshell.php --shell base64
[nobody@efd0355fda4c /var/www/html/public] $ /etc/issue
V2VsY29tZSB0byBBbHBpbmUgTGludXggMy4xNQpLZXJuZWwgXHIgb24gYW4gXG0gKFxsKQoK Por padrão, o webshell-cli usa o arquivo histórico ~/.webshell_cli_history para fornecer um histórico de linha de comando para seus comandos mais recentes. Você pode usar a opção -f para especificar um local diferente para armazenar o arquivo de histórico ou usar a opção -m para usar um histórico de comando na memória.
As contribuições para este projeto são sempre bem -vindas. A pasta Docs contém uma especificação que lista os requisitos para que as webshells sejam consumíveis pelo webshell-cli . Além disso, a documentação lista algumas decisões de design, pois certas coisas não eram tão seguidas para implementar.
Este projeto deve ser usado apenas para desafios da CTF e fins educacionais. Como muitas webshells estão disponíveis na Internet e as conchas deste repositório nem implementam ofuscação ou criptografia, elas não serão úteis para ataques do mundo real de qualquer maneira.