
pinky - Das PHP-Mini-RAT (Remote-Verwaltungstool)
Das Hochladen einer Webshell ist fast immer der nächste Schritt nach der Ausnutzung einer Webschwachstelle, aber Dienste wie Cloudflare und die neue Generation von Firewalls verhindern sehr effektiv, dass Angreifer über HTTP oder HTTPS Befehle im Zielsystem ausführen können. Auf der anderen Seite können Textinhaltsfilter und Whitelisting-Anwendungsrichtlinien mit minimalem Aufwand leicht ausgenutzt werden, und pinky ist ein PoC dafür.
Zunächst versucht pinky herauszufinden, welche Funktion zum Ausführen von Systembefehlen aktiviert ist; nachdem die beste PHP-Funktion gefunden wurde, ist die gesamte Kommunikation verschlüsselt, sodass selbst eine Firewall, die den Datenverkehr lesen kann, nicht feststellen kann, ob die Aktivität bösartig ist oder nicht. Außerdem ist pinky in der Lage, über jede Art von Proxy zu kommunizieren. Darüber hinaus müssen wir eine Basic Authentication senden (völlig unsicher, ich weiß!), um zu verhindern, dass andere mit dem Agenten von pinky kommunizieren.
$ 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.
Zunächst die auf dem Zielsystem gefundene Schwachstelle ausnutzen.
Jetzt können wir unseren Agenten mit dem integrierten Generator erzeugen, etwa so:

Ich verwende Obfuscator-Class von Pierre-Henry Soria, um den Agenten zu verschleiern, weil die Ergebnisse ziemlich gut sind.

Nachdem der Agent erzeugt wurde, müssen wir ihn auf das Zielsystem hochladen und die URL in die zuvor erstellte JSON-Datei einfügen. Wenn wir einen SOCKS5-Proxy verwenden möchten (und das sollten wir), müssen wir die Einstellungen hinzufügen:
{
"key":"[KEY]",
"url":"[URL]",
"login":{
"username":"[LOGIN]",
"password":"[PASSWORD]"
},
"proxy":{
"ip":"127.0.0.1",
"port":9150,
"type":"SOCKS5"
},
"cookies": "[COOKIES]"
}
Der letzte Schritt besteht darin, den Agenten hochzuladen, das Terminal zu öffnen und die JSON-Datei als Parameter zu übergeben.
$ php pinky.php config.json


Um mitzuwirken, forke dieses Projekt bitte, erstelle einen neuen Branch von master und sende mir den PR. Du kannst auch beitragen, indem du weitere Seiten zum Wiki hinzufügst :)