
pinky - Le mini RAT PHP (outil d’administration à distance)
Le téléchargement d’un webshell est presque toujours l’étape suivante après l’exploitation d’une vulnérabilité web, mais des services comme Cloudflare et la nouvelle génération de pare-feu font un très bon travail pour empêcher les attaquants d’exécuter des commandes sur la cible via HTTP ou HTTPS. D’un autre côté, le filtrage du contenu textuel et les politiques de liste blanche d’applications peuvent être facilement contournés avec un minimum d’effort, et pinky en est une preuve de concept (PoC).
D’abord, pinky essaie de trouver quelle fonction est activée pour exécuter des commandes système ; après avoir déterminé quelle fonction php est la meilleure, toute la communication est chiffrée, donc même si le pare-feu est capable de lire le trafic, il ne pourra pas déterminer si l’activité est malveillante ou non. De plus, pinky est capable de communiquer à travers n’importe quel type de proxy. En plus de cela, nous devons envoyer une authentification de base (totalement non sécurisée, je sais !) pour empêcher d’autres personnes de communiquer avec l’agent 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.
D’abord, exploitez la vulnérabilité trouvée sur la cible.
Maintenant, nous sommes prêts à générer notre agent à l’aide du générateur intégré, comme ceci :

J’utilise Obfuscator-Class de Pierre-Henry Soria pour obfusquer l’agent, car les résultats sont plutôt bons.

Après la génération de l’agent, nous devons le téléverser sur la machine cible et coller l’URL dans le fichier json créé précédemment. Si nous voulons (et nous le devons) utiliser un proxy SOCKS5, nous devons ajouter les paramètres :
{
"key":"[KEY]",
"url":"[URL]",
"login":{
"username":"[LOGIN]",
"password":"[PASSWORD]"
},
"proxy":{
"ip":"127.0.0.1",
"port":9150,
"type":"SOCKS5"
},
"cookies": "[COOKIES]"
}
La dernière étape consiste à téléverser l’agent, à ouvrir votre terminal, puis à passer le fichier json en paramètre.
$ php pinky.php config.json


Pour contribuer, veuillez fork ce projet, créer une nouvelle branche à partir de master et m’envoyer la PR. Vous pouvez également contribuer en ajoutant d’autres pages au Wiki :)