p0wny@shell:~# -- Shell PHP de arquivo único

p0wny@shell:~# é um shell PHP muito básico, de arquivo único. Pode ser usado para executar comandos rapidamente em um servidor ao realizar pentest em um aplicativo PHP. Use-o com cautela: este script representa um risco de segurança para o servidor.
Recursos:
- Histórico de comandos (usando as teclas de seta
↑ ↓)
- Autocompletar de nomes de comandos e arquivos (usando a tecla
Tab)
- Navegar no sistema de arquivos remoto (usando o comando
cd)
- Enviar um arquivo para o servidor (usando o comando
upload <destination_file_name>)
- Baixar um arquivo do servidor (usando o comando
download <file_name>)
AVISO: ESTE SCRIPT É UM BURACO DE SEGURANÇA. NÃO FAÇA UPLOAD DELE EM UM SERVIDOR A MENOS QUE VOCÊ SAIBA O QUE ESTÁ FAZENDO!

Demonstração com Docker:
docker build -t p0wny .
docker run -it -p 8080:8080 -d p0wny
# open with your browser http://127.0.0.1:8080/shell.php
Contribuindo
Perguntas
Se você tiver alguma pergunta, pode:
Bugs
Por favor, abra uma issue no GitHub com o máximo de informações possível se você encontrar um bug:
- Seu sistema operacional / distribuição Linux (e sua versão)
- A versão do PHP que você está usando (exemplo:
PHP-FPM 8.1, Apache mod_php 7.4,...)
- O servidor web que você está usando e sua versão (exemplo:
Nginx 1.23, Apache 2.4.55,...)
- Todos os logs e mensagens gerados pelo software
- etc.
Pull requests
Considere abrir um bug antes de começar a trabalhar em um novo recurso; isso nos permitirá discutir a melhor maneira de implementá-lo. Obviamente, é desnecessário se você quiser apenas corrigir um erro de digitação ou pequenos erros no código.
Apoie este projeto
Quer apoiar este projeto?
Log de alterações
- v2023.08.10:
- Tornar o p0wny@shell compatível com PHP 5.3 (@FrancoisCapon, #38)
- v2023.05.28:
- Codificar todos os campos de dados como base64 para evitar erros de codificação, especialmente no Windows (@cli-ish, #8, #35)
- v2023.05.22:
- Exibir o nome de usuário e o nome do host no prompt (@cli-ish, #33, #7)
- v2023.05.10:
- Tentar diferentes funções de execução (
exec, shell_exec, system, passthru, popen, proc_open) para executar comandos e contornar funções desabilitadas (@cli-ish, #31, #32)
- v2023.02.27:
- Tornar a janela do terminal redimensionável (@FrancoisCapon, #27)
- v2023.02.13:
- Tamanho maior do terminal em telas grandes (@psyray, #26)
- Sem mais rolagem horizontal em telas pequenas (@flozz)
- v2022.09.19:
- Expandir o caminho no comando
cd (cd ~, cd ~username,...)
- Ir para o diretório inicial ao executar
cd sem argumento.
- → Obrigado a @FrancoisCapon pela sugestão (#25)
- v2021.01.24:
- Melhorias de estilo:
- Barra de rolagem com melhor aparência no webkit (@nakamuraos)
- Exibir um logotipo menor no celular (@nakamuraos)
- Melhorias ergonômicas:
- Focar o campo de comando ao clicar na página (@nakamuraos)
- Colocar o cursor no final do campo de comando ao navegar pelo histórico (@nakamuraos)
- v2019.06.07:
- Adiciona o comando
clear para limpar o terminal (@izharaazmi #12)
- v2018.12.15:
- Recurso de upload e download de arquivos (@Oshawk #5)
- v2018.06.01:
- Autocompletar de nomes de comandos e arquivos (@lo001 #2)
- Adaptação para dispositivos móveis (responsivo) (@lo001 #2)
- Melhor tratamento do stderr (@lo001 #2)
- v2018.05.30:
- Compatibilidade com ES5 (@lo00l #1)
- Dependência do JQuery removida (@lo00l #1)
- Histórico de comandos usando as teclas de seta (@lo00l #1)
- Manter o campo de comando focado ao pressionar a tecla Tab
- v2017.10.30:
- CSS: cor inválida corrigida
- v2016.11.10: