
pinky - The PHP mini RAT (Remote Administration Tool)
Fazer upload de uma webshell é quase sempre o próximo passo após explorar uma vulnerabilidade web, mas serviços como Cloudflare e a nova geração de firewalls fazem um trabalho realmente bom impedindo que atacantes executem comandos no alvo via HTTP ou HTTPS. Por outro lado, a filtragem de conteúdo de texto e políticas de aplicações de whitelist podem ser facilmente exploradas com um mínimo esforço e pinky é uma PoC disso.
Primeiro, o pinky tenta descobrir qual função está habilitada para executar comandos do sistema; após encontrar qual função php é a melhor, toda comunicação é criptografada, então mesmo que o Firewall esteja habilitado para ler o tráfego, ele não será capaz de determinar se a atividade é maliciosa ou não. Além disso, o pinky pode se comunicar através de qualquer tipo de proxy. Além disso, precisamos enviar uma Autenticação Básica (completamente insegura, eu sei!) para evitar que outros se comuniquem com o agente do pinky.
$ git clone [email protected]:davidtavarez/pinky.git
Cloning into 'pinky'...
remote: Counting objects: 223, done.
remote: Compressing objects: 100% (79/79), done.
remote: Total 223 (delta 54), reused 72 (delta 27), pack-reused 103
Receiving objects: 100% (223/223), 385.73 KiB | 73.00 KiB/s, done.
Resolving deltas: 100% (101/101), done.
$ cd pinky
$ php pinky.php
_ _
_ __ (_)_ __ | | ___ _
| '_ \| | '_ \| |/ / | | |
| |_) | | | | | <| |_| |
| .__/|_|_| |_|_|\_\__, |
|_| |___/ v2.0
The PHP Mini RAT.
+ Author: David Tavarez
+ Twitter: @davidtavarez
+ Website: https://davidtavarez.github.io/
+[WARNING]------------------------------------------+
| DEVELOPERS ASSUME NO LIABILITY AND ARE NOT |
| RESPONSIBLE FOR ANY MISUSE OR DAMAGE CAUSED BY |
| THIS PROGRAM ¯\_(ツ)_/¯ |
+---------------------------------------------------+
[-] I need a json file containing the settings.
Primeiro, explore a vulnerabilidade encontrada no alvo.
Agora, estamos prontos para gerar nosso agente usando o gerador embutido assim:

Estou usando Obfuscator-Class por Pierre-Henry Soria para ofuscar o agente porque os resultados são muito bons.

Após o agente ser gerado, precisamos fazer upload dele na máquina alvo e colar a URL no arquivo json criado anteriormente. Se quisermos (e devemos), usar um proxy SOCKS5, precisamos adicionar as configurações:
{
"key":"[KEY]",
"url":"[URL]",
"login":{
"username":"[LOGIN]",
"password":"[PASSWORD]"
},
"proxy":{
"ip":"127.0.0.1",
"port":9150,
"type":"SOCKS5"
},
"cookies": "[COOKIES]"
}
O último passo é fazer upload do agente, abrir seu terminal e então passar o arquivo json como parâmetro.
$ php pinky.php config.json


Para contribuir, por favor, faça um fork deste projeto, crie um novo branch a partir do master e envie o PR. Você também pode contribuir adicionando mais páginas à Wiki :)