
a única webshell PHP que você precisa.
webshell php
Como eu vacilei e esqueci de falar sobre o uso. Aqui vai.
Para que este shell funcione, você precisa de 2 coisas: uma vítima que permita upload de arquivos PHP (você mesmo, em um ambiente educacional) e uma maneira de enviar requisições HTTP para este webshell (o script cliente é a melhor forma de se comunicar com este shell).
Obrigado por todo o apoio que a comunidade tem dado, significa muito para nós. Agora, sobre as coisas que serão adicionadas a este shell para torná-lo ainda mais incrível.
Taxa atual de detecção VT: 2/59 (versão mais nova)
Taxa atual de detecção VT (versão ofuscada): 1/59 //Esta é uma versão refinada do dropper reduzido. O tamanho total do arquivo é de pouco menos de 2KB. O Slopshell agora atribui corretamente um user-agent aleatório com um valor de user-agent correto, ou seja, um user-agent real como mozilla, opera, chrome, chromium, etc.
O problema com essa detecção acontecendo é que não encontrei uma solução viável para a palavra-chave eval; se não houvesse chamada para eval, este script seria indetectável.
Ok, então vamos lá pessoal, eu estava com uma coceira para escrever algo em PHP, então aqui está. Este webshell tem alguns recursos extras, e mais são adicionados todos os dias. Você precisará de um servidor pgsql rodando que você controle. A forma como você implementa isso é por sua conta.
Debian: apt install -y postgresql php php-pear python3-pip php-readline php-curl libsodium libsodium-dev && python -m pip install proxybroker --user
Sistemas RHEL: dnf -y -b install postgresql-server postgresql php php-pear python3-pip php-readline php-curl libsodium libsodium-devel && python -m pip install proxybroker --user
WIN: instale o msi do php e certifique-se de ter um servidor postgresql ativo em execução em algum lugar que você possa conectar.
Depois de configurar tudo corretamente e confirmar que estão rodando, um comando que eu encorajo usar é com pg_ctl; você pode criar o DB dessa forma, ou pelo menos inicializá-lo e iniciá-lo. Então todas as consultas ao banco funcionarão bem.
Você precisa entrar em /lib/ e executar composer install para instalar as dependências do lado do servidor que serão necessárias para o cliente funcionar. O cliente agora roda muito mais rápido do que antes.
Você pode notar que estes são uma reinterpretação de outro backdoor do Wordpress, e assim que eu encontrar o repositório novamente, garantirei dar crédito pela função de execução de comandos presente nestes shells. Não gosto de copiar código e acredito que o crédito deve ser dado onde é devido. Obrigado, senhor, você me ajudou bastante com isso ao disponibilizar seus scripts ao público.
Então, enquanto fazia algumas mudanças, pensei: por que não adicionar uma maneira para o PRÓPRIO shell se esconder de um administrador menos observador? Limpei os métodos de execução de código, limpei todo o script. Não exibirá mais uma página falsa de erro 500, pois isso atrai muita atenção de um administrador observador (mais ainda por minha experiência como administrador de uma stack PHP em um servidor). Erros 500 atraem muita atenção, o que significa que o shell tem mais chances de ser descoberto. Uma resposta 404, no entanto, tem muito menos probabilidade de chamar a atenção do administrador do servidor. Isso torna o shell muito mais difícil de detectar e encontrar; além disso, com o nome do arquivo mudando, encontrar este shell será um pesadelo absoluto. A personalização do User-Agent ainda é algo que precisará ser feito, ou um valor de cookie único precisará ser usado no lugar do valor do User-Agent; isso, no entanto, não será definido por mim, e deixarei usuários mais experientes personalizarem este shell ao seu gosto. Novamente, se você notar algum problema ou deficiência (a maioria eu corrigi e atualizei este shell para PHP8 na maior parte; dicas de tipo ainda não posso adicionar por questões de compatibilidade reversa), por favor abra uma issue e me informe o que está errado, e verei o que posso fazer para corrigir. Obrigado, faça o bem, lute contra o mal, divirta-se.
Aqui está o que consegui criar para as rotinas evasivas adicionadas:
À medida que cresço na linguagem PHP, este projeto inteiro crescerá também, e as classes se tornarão classes adequadas, com namespaces e tudo. Só preciso de um tempo enquanto corrijo o código para padrões mais comuns de desenvolvimento PHP. Provavelmente adicionarei uma maneira de empacotar este shell como um plugin do WordPress, para que possa ser usado também no WordPress (um plugin adequado). O cliente agora cria plugins adequados do WordPress, que engancham a função init do site WordPress. Não testei isso completamente, então se houver algum problema, por favor, abra uma nova issue e descreva o problema que está enfrentando. O ativador para o plugin do WordPress é deixado em branco, porque estou procurando maneiras de torná-lo um valor único criptografado/seguro que não possa ser replicado. Por favor, tenha paciência.
Quando você chama a função cqI, ela imprime informações mais relevantes em vez de... você sabe, lixo. Exemplo:
Max file uploads: 20
Safemode: cannot set safemode.
File_Uploads: true
Upload Temp Dir: cannot set upload_tmp_dir
Maximum File upload size: 2M
Include Path: .:/usr/share/php8:/usr/share/php/PEAR:/var/www/somesite/html/public/.scache/
---------------- SLOP DEFINES ---------------------
slopMTLS: true
slopEncryption: true
slopOS: LIN
slopShell: bash
slopTor: false
slopPGP: false
.scache full path: /var/www/somesite/html/public/.scache/
Estes terão cor dependendo da saída: falso padrão vermelho, verdadeiro padrão verde, com pequenas exceções para slopOS e sloppyshell, que são verdes independentemente.
Uso do script cliente:

Conexão reversa iniciada a partir do script cliente:

Páginas de destino aleatórias:

Eu, como mantenedor, não sou responsável de forma alguma pelo uso indevido deste produto. Ele foi publicado para fins legítimos de teste de penetração/red team e/ou valor educacional. Conheça as leis aplicáveis em seu país de residência antes de usar este script e não viole a lei ao usá-lo. Obrigado e tenha um bom dia.
como a maioria dos servidores bloqueia a capacidade de scripts escreverem no diretório servido (como deveriam), estou padrão com o shell completo. A versão WordPress deste shell ainda funcionará corretamente, apenas engancha a função init em vez de ser apenas um shell ao vento.