
Die einzige PHP-Webshell, die du brauchst.
PHP-Webshell
Da ich einen Fehler gemacht und vergessen habe, über die Nutzung zu sprechen. Hier kommt es.
Damit diese Shell funktioniert, brauchst du zwei Dinge: ein Opfer, das PHP-Datei-Uploads erlaubt (du selbst in einer Lernumgebung) und eine Möglichkeit, HTTP-Anfragen an diese Webshell zu senden (das Client-Skript ist die absolut beste Art, mit dieser Shell zu kommunizieren).
Vielen Dank für die ganze Unterstützung der Community, das bedeutet uns viel. Nun zu den Dingen, die dieser Shell hinzugefügt werden, um sie noch großartiger zu machen.
Aktuelles VT-Erkennungsverhältnis: 2/59 (neueste Version)
Aktuelles VT-Erkennungsverhältnis (verschleierte Version): 1/59 //Dies ist eine verfeinerte Version des abgespeckten Droppers. Die Gesamtdateilänge liegt knapp unter 2 KB. Slopshell weist jetzt korrekt einen zufälligen User-Agent mit einem korrekten User-Agent-Wert zu, d.h. einen echten User-Agent wie Mozilla, Opera, Chrome, Chromium usw.
Das Problem mit dieser Erkennung ist, dass ich noch keinen gangbaren Workaround für das Schlüsselwort eval gefunden habe. Wenn es keinen Aufruf von eval gäbe, wäre dieses Skript unerkennbar.
Ok, los geht's Leute, ich hatte das Bedürfnis, etwas in PHP zu schreiben, also ist es das hier. Diese Webshell hat ein paar Spielereien, und jeden Tag kommen mehr dazu. Du brauchst einen PostgreSQL-Server, den du kontrollierst. Wie du das umsetzt, bleibt dir überlassen.
Debian: apt install -y postgresql php php-pear python3-pip php-readline php-curl libsodium libsodium-dev && python -m pip install proxybroker --user
RHEL-Systeme: dnf -y -b install postgresql-server postgresql php php-pear python3-pip php-readline php-curl libsodium libsodium-devel && python -m pip install proxybroker --user
WIN: Installiere das PHP-MSI und stelle sicher, dass du einen aktiven PostgreSQL-Server hast, zu dem du eine Verbindung herstellen kannst.
Sobald du diese richtig eingerichtet hast und bestätigen kannst, dass sie laufen. Ein Befehl, den ich empfehle, ist die Verwendung von pg_ctl; du kannst damit die DB erstellen oder zumindest initialisieren und starten. Dann funktionieren alle DB-Abfragen einwandfrei.
Du musst in /lib/ gehen und composer install ausführen, um die serverseitigen Abhängigkeiten zu installieren, die für den Client benötigt werden. Der Client läuft jetzt viel schneller als zuvor.
Dir wird auffallen, dass es sich um eine Neugestaltung eines anderen Wordpress-Backdoors handelt. Sobald ich das Repo wiederfinde, werde ich sicherstellen, dass die Funktion zur Ausführung von Befehlen, die in diesen Shells vorhanden ist, Anerkennung bekommt. Ich mag es nicht, Code zu klauen, und glaube, dass Anerkennung gegeben werden muss, wo sie hingehört. Danke, mein Herr, du hast mir mit diesem Skript ziemlich geholfen, indem du deine Skripte der Öffentlichkeit zur Verfügung gestellt hast.
Bei einigen Änderungen dachte ich mir: Warum nicht eine Möglichkeit hinzufügen, dass sich die EIGENTLICHE Shell selbst vor einem weniger aufmerksamen Admin versteckt? Die Code-Ausführungsmethoden wurden bereinigt, das gesamte Skript aufgeräumt. Es wird keine gefälschte 500-Seite mehr angezeigt, da dies zu viel Aufmerksamkeit von einem aufmerksamen Admin erregt (mehr aus meiner Zeit als Admin eines PHP-Dev-Stacks auf einem Server). 500-Fehlermeldungen ziehen viel Aufmerksamkeit auf sich, was bedeutet, dass die Shell eher entdeckt wird. Eine 404-Antwort zieht dagegen viel weniger den Blick des Server-Admins auf sich. Dadurch wird diese Shell selbst viel schwerer zu erkennen und zu finden, zusätzlich zum wechselnden Dateinamen – das Auffinden dieser Shell wird ein absoluter Albtraum sein. Die Anpassung des User-Agents muss noch erfolgen, oder es muss ein eindeutiger Cookie-Wert anstelle des User-Agent-Werts verwendet werden; dieser wird jedoch nicht von mir gesetzt, und ich überlasse erfahreneren Benutzern die Anpassung dieser Shell nach Herzenslust. Wenn dir noch Probleme oder Mängel auffallen (die meisten habe ich behoben und diese Shell größtenteils auf PHP8 aktualisiert; Type Hints kann ich aus Gründen der Abwärtskompatibilität immer noch nicht hinzufügen), öffne bitte ein Issue und lass mich wissen, was nicht stimmt, und ich werde sehen, ob ich es beheben kann. Danke, tue Gutes, bekämpfe das Böse, habe Spaß.
Hier ist, was ich mir für die zusätzlichen Ausweichroutinen einfallen ließ:
So wie ich in PHP gewachsen bin, wird auch dieses gesamte Projekt wachsen, und die Klassen werden richtige Klassen mit Namespaces und allem werden. Ich brauche nur etwas Zeit, um den Code an die üblichen Standards der PHP-Entwicklung anzupassen. Ich werde wahrscheinlich eine Möglichkeit hinzufügen, diese Shell selbst als WordPress-Plugin zu verpacken, damit sie auch in WordPress verwendet werden kann (ein richtiges Plugin). Der Client erstellt jetzt richtige WordPress-Plugins, die die init-Funktion der WordPress-Site einhaken. Ich habe dies nicht vollständig getestet. Wenn es also irgendwelche Probleme gibt, öffne bitte ein neues Issue und beschreibe das Problem. Der Aktivator für das WordPress-Plugin ist leer gelassen, da ich nach Möglichkeiten suche, den Aktivator zu einem sicheren/verschlüsselten, eindeutigen Wert zu machen, der nicht repliziert werden kann. Bitte habe Geduld.
Wenn du die cqI-Funktion aufrufst, gibt sie relevantere Informationen aus, anstatt … nun ja, Müll. Beispiel:
Max file uploads: 20
Safemode: cannot set safemode.
File_Uploads: true
Upload Temp Dir: cannot set upload_tmp_dir
Maximum File upload size: 2M
Include Path: .:/usr/share/php8:/usr/share/php/PEAR:/var/www/somesite/html/public/.scache/
---------------- SLOP DEFINES ---------------------
slopMTLS: true
slopEncryption: true
slopOS: LIN
slopShell: bash
slopTor: false
slopPGP: false
.scache full path: /var/www/somesite/html/public/.scache/
Diese haben je nach Ausgabe Farbe: false standardmäßig rot, true standardmäßig grün. Mit kleinen Ausnahmen für slopOS und sloppyshell, diese sind immer grün.
Client-Skript-Nutzung:

Reverse Connection, initiiert vom Client-Skript:

Zufällige Landing Pages:

Ich als Maintainer bin in keiner Weise verantwortlich für den Missbrauch dieses Produkts. Es wurde für legitime Penetrationstests/Red-Teaming-Zwecke und/oder für den Bildungswert veröffentlicht. Informiere dich über die geltenden Gesetze in deinem Wohnsitzland, bevor du dieses Skript verwendest, und verstoße nicht gegen das Gesetz, während du es verwendest. Danke und einen schönen Tag noch.
Da die meisten Server die Fähigkeit blockieren, dass Skripte in das bediente Verzeichnis schreiben (wie es sein sollte), standardisiere ich auf die vollständige Shell. Die WordPress-Version dieser Shell funktioniert weiterhin ordnungsgemäß, sie hakt lediglich die init-Funktion ein, anstatt nur eine im Wind flatternde Shell zu sein.