
pinky - El mini RAT en PHP (Herramienta de Administración Remota)
Subir una webshell es casi siempre el siguiente paso después de explotar una vulnerabilidad web, pero servicios como Cloudflare y la nueva generación de firewalls hacen un muy buen trabajo impidiendo que los atacantes ejecuten comandos en el objetivo a través de HTTP o HTTPS. Por otro lado, el filtrado de contenido de texto y las políticas de listas blancas de aplicaciones pueden explotarse fácilmente con un esfuerzo mínimo, y pinky es una PoC de eso.
Primero, pinky intenta encontrar qué función está habilitada para ejecutar comandos del sistema; después de encontrar cuál es la mejor función de PHP, toda la comunicación está cifrada, por lo que incluso si el Firewall está habilitado para leer el tráfico, no podrá determinar si la actividad es maliciosa o no. Además, pinky es capaz de comunicarse a través de cualquier tipo de proxy. Adicionalmente, necesitamos enviar una Autenticación Básica (¡completamente insegura, lo sé!) para evitar que otros se comuniquen con el agente de 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.
Primero, explota la vulnerabilidad encontrada en el objetivo.
Ahora, estamos listos para generar nuestro agente usando el generador integrado de esta manera:

Estoy usando Obfuscator-Class de Pierre-Henry Soria para ofuscar el agente porque los resultados son bastante buenos.

Después de generar el agente, necesitamos subirlo a la máquina objetivo y pegar la URL en el archivo json creado anteriormente. Si queremos (y debemos) usar un proxy SOCKS5, necesitamos añadir la configuración:
{
"key":"[KEY]",
"url":"[URL]",
"login":{
"username":"[LOGIN]",
"password":"[PASSWORD]"
},
"proxy":{
"ip":"127.0.0.1",
"port":9150,
"type":"SOCKS5"
},
"cookies": "[COOKIES]"
}
El último paso es subir el agente, abrir tu terminal y luego pasar el archivo json como parámetro.
$ php pinky.php config.json


Para contribuir, por favor, haz un fork de este proyecto, crea una nueva rama desde master y envíame el PR. También puedes contribuir añadiendo más páginas a la Wiki :)