mirror of
https://github.com/carlospolop/hacktricks
synced 2025-02-16 14:08:26 +00:00
Translated ['network-services-pentesting/pentesting-web/wordpress.md'] t
This commit is contained in:
parent
51bbb36b1d
commit
dbe68fde20
1 changed files with 63 additions and 24 deletions
|
@ -1,8 +1,8 @@
|
|||
# Wordpress
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -14,12 +14,11 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress) per costruire e **automatizzare flussi di lavoro** alimentati dagli **strumenti** della comunità **più avanzati** al mondo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_term=trickest\&utm\_content=wordpress) per costruire e **automatizzare i flussi di lavoro** alimentati dagli **strumenti** della comunità **più avanzati** al mondo.\
|
||||
Get Access Today:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
|
||||
|
@ -56,11 +55,11 @@ Percorsi di login predefiniti da controllare: _**/wp-login.php, /wp-login/, /wp-
|
|||
|
||||
### Users Permissions
|
||||
|
||||
* **Amministratore**
|
||||
* **Editore**: Pubblica e gestisce i suoi e gli altri post
|
||||
* **Autore**: Pubblica e gestisce i propri post
|
||||
* **Collaboratore**: Scrive e gestisce i propri post ma non può pubblicarli
|
||||
* **Sottoscrittore**: Naviga nei post e modifica il proprio profilo
|
||||
* **Administrator**
|
||||
* **Editor**: Pubblica e gestisce i suoi e gli altri post
|
||||
* **Author**: Pubblica e gestisce i propri post
|
||||
* **Contributor**: Scrive e gestisce i propri post ma non può pubblicarli
|
||||
* **Subscriber**: Naviga nei post e modifica il proprio profilo
|
||||
|
||||
## **Passive Enumeration**
|
||||
|
||||
|
@ -110,7 +109,7 @@ curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/supp
|
|||
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Usa [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress) per costruire e **automatizzare flussi di lavoro** facilmente, alimentati dagli **strumenti comunitari più avanzati** al mondo.\
|
||||
Usa [**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_term=trickest\&utm\_content=wordpress) per costruire e **automatizzare flussi di lavoro** alimentati dagli **strumenti comunitari più avanzati** al mondo.\
|
||||
Ottieni accesso oggi:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
|
||||
|
@ -125,7 +124,7 @@ Probabilmente non sarai in grado di trovare tutti i Plugin e Temi possibili. Per
|
|||
|
||||
**ID Brute**
|
||||
|
||||
Ottieni utenti validi da un sito WordPress forzando gli ID degli utenti:
|
||||
Puoi ottenere utenti validi da un sito WordPress forzando gli ID degli utenti:
|
||||
```
|
||||
curl -s -I -X GET http://blog.example.com/?author=1
|
||||
```
|
||||
|
@ -151,7 +150,7 @@ Quando si effettua il login in **`/wp-login.php`**, il **messaggio** è **divers
|
|||
|
||||
### XML-RPC
|
||||
|
||||
Se `xml-rpc.php` è attivo, puoi eseguire un attacco di brute-force sulle credenziali o usarlo per lanciare attacchi DoS su altre risorse. (Puoi automatizzare questo processo [usando questo](https://github.com/relarizky/wpxploit) per esempio).
|
||||
Se `xml-rpc.php` è attivo, puoi eseguire un attacco di brute-force sulle credenziali o usarlo per lanciare attacchi DoS su altre risorse. (Puoi automatizzare questo processo[ usando questo](https://github.com/relarizky/wpxploit) per esempio).
|
||||
|
||||
Per vedere se è attivo, prova ad accedere a _**/xmlrpc.php**_ e invia questa richiesta:
|
||||
|
||||
|
@ -255,7 +254,7 @@ Dai un'occhiata all'uso di **`system.multicall`** nella sezione precedente per i
|
|||
|
||||
Questo file di solito esiste nella radice del sito Wordpress: **`/wp-cron.php`**\
|
||||
Quando questo file è **accesso**, viene eseguita una **query** MySQL "**pesante**", quindi potrebbe essere utilizzato da **attaccanti** per **causare** un **DoS**.\
|
||||
Inoltre, per impostazione predefinita, il `wp-cron.php` viene chiamato ad ogni caricamento di pagina (ogni volta che un client richiede una pagina Wordpress), il che su siti ad alto traffico può causare problemi (DoS).
|
||||
Inoltre, per impostazione predefinita, il `wp-cron.php` viene chiamato ad ogni caricamento di pagina (ogni volta che un client richiede una qualsiasi pagina Wordpress), il che su siti ad alto traffico può causare problemi (DoS).
|
||||
|
||||
Si consiglia di disabilitare Wp-Cron e creare un vero cronjob all'interno dell'host che esegua le azioni necessarie a intervalli regolari (senza causare problemi).
|
||||
|
||||
|
@ -282,14 +281,14 @@ wpscan --rua -e ap,at,tt,cb,dbe,u,m --url http://www.domain.com [--plugins-detec
|
|||
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Usa [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress) per costruire e **automatizzare flussi di lavoro** facilmente, alimentati dagli **strumenti** della comunità **più avanzati** al mondo.\
|
||||
Usa [**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_term=trickest\&utm\_content=wordpress) per costruire e **automatizzare flussi di lavoro** facilmente, alimentati dagli **strumenti** della comunità **più avanzati** al mondo.\
|
||||
Ottieni accesso oggi:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
|
||||
|
||||
## Ottieni accesso sovrascrivendo un bit
|
||||
|
||||
Più che un vero attacco, questa è una curiosità. Nella CTF [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man) puoi cambiare 1 bit di qualsiasi file wordpress. Quindi puoi cambiare la posizione `5389` del file `/var/www/html/wp-includes/user.php` per NOP l'operazione NOT (`!`).
|
||||
Più che un vero attacco, questa è una curiosità. Nella CTF [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man) potevi cambiare 1 bit di qualsiasi file wordpress. Quindi potevi cambiare la posizione `5389` del file `/var/www/html/wp-includes/user.php` per NOP l'operazione NOT (`!`).
|
||||
```php
|
||||
if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {
|
||||
return new WP_Error(
|
||||
|
@ -300,7 +299,7 @@ return new WP_Error(
|
|||
|
||||
Aspetto → Editor del tema → Modello 404 (a destra)
|
||||
|
||||
Cambia il contenuto in una shell php:
|
||||
Cambia il contenuto per una shell php:
|
||||
|
||||
![](<../../.gitbook/assets/image (384).png>)
|
||||
|
||||
|
@ -371,9 +370,50 @@ Cambia la password dell'amministratore:
|
|||
```bash
|
||||
mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;UPDATE wp_users SET user_pass=MD5('hacked') WHERE ID = 1;"
|
||||
```
|
||||
## Wordpress Plugins Pentest
|
||||
|
||||
### Attack Surface
|
||||
|
||||
Conoscere come un plugin di Wordpress può esporre funzionalità è fondamentale per trovare vulnerabilità nella sua funzionalità. Puoi trovare come un plugin potrebbe esporre funzionalità nei seguenti punti e alcuni esempi di plugin vulnerabili in [**questo post del blog**](https://nowotarski.info/wordpress-nonce-authorization/).
|
||||
|
||||
* **`wp_ajax`** 
|
||||
|
||||
Uno dei modi in cui un plugin può esporre funzioni agli utenti è tramite i gestori AJAX. Questi potrebbero contenere bug di logica, autorizzazione o autenticazione. Inoltre, è abbastanza frequente che queste funzioni basino sia l'autenticazione che l'autorizzazione sull'esistenza di un nonce di Wordpress che **qualsiasi utente autenticato nell'istanza di Wordpress potrebbe avere** (indipendentemente dal suo ruolo).
|
||||
|
||||
Queste sono le funzioni che possono essere utilizzate per esporre una funzione in un plugin:
|
||||
```php
|
||||
add_action( 'wp_ajax_action_name', array(&$this, 'function_name'));
|
||||
add_action( 'wp_ajax_nopriv_action_name', array(&$this, 'function_name'));
|
||||
```
|
||||
**L'uso di `nopriv` rende l'endpoint accessibile da qualsiasi utente (anche quelli non autenticati).**
|
||||
|
||||
{% hint style="danger" %}
|
||||
Inoltre, se la funzione sta solo controllando l'autorizzazione dell'utente con la funzione `wp_verify_nonce`, questa funzione sta solo verificando che l'utente sia connesso, di solito non controlla il ruolo dell'utente. Quindi, gli utenti a basso privilegio potrebbero avere accesso ad azioni ad alto privilegio.
|
||||
{% endhint %}
|
||||
|
||||
* **REST API**
|
||||
|
||||
È anche possibile esporre funzioni da wordpress registrando un'API REST utilizzando la funzione `register_rest_route`:
|
||||
```php
|
||||
register_rest_route(
|
||||
$this->namespace, '/get/', array(
|
||||
'methods' => WP_REST_Server::READABLE,
|
||||
'callback' => array($this, 'getData'),
|
||||
'permission_callback' => '__return_true'
|
||||
)
|
||||
);
|
||||
```
|
||||
Il `permission_callback` è una funzione di callback che verifica se un determinato utente è autorizzato a chiamare il metodo API.
|
||||
|
||||
**Se viene utilizzata la funzione incorporata `__return_true`, salterà semplicemente il controllo dei permessi utente.**
|
||||
|
||||
* **Accesso diretto al file php**
|
||||
|
||||
Certo, Wordpress utilizza PHP e i file all'interno dei plugin sono direttamente accessibili dal web. Quindi, nel caso in cui un plugin esponga qualche funzionalità vulnerabile che viene attivata semplicemente accedendo al file, sarà sfruttabile da qualsiasi utente.
|
||||
|
||||
## Protezione di WordPress
|
||||
|
||||
### Aggiornamenti Regolari
|
||||
### Aggiornamenti regolari
|
||||
|
||||
Assicurati che WordPress, i plugin e i temi siano aggiornati. Conferma anche che l'aggiornamento automatico sia abilitato in wp-config.php:
|
||||
```bash
|
||||
|
@ -393,20 +433,21 @@ Also, **installa solo plugin e temi WordPress affidabili**.
|
|||
|
||||
* Rimuovi l'utente **admin** predefinito
|
||||
* Usa **password forti** e **2FA**
|
||||
* **Rivedi** periodicamente i **permessi** degli utenti
|
||||
* **Rivedi** periodicamente i permessi degli utenti
|
||||
* **Limita i tentativi di accesso** per prevenire attacchi Brute Force
|
||||
* Rinomina il file **`wp-admin.php`** e consenti l'accesso solo internamente o da determinati indirizzi IP.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Usa [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress) per costruire e **automatizzare flussi di lavoro** facilmente, alimentati dagli strumenti della comunità **più avanzati** al mondo.\
|
||||
Usa [**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_term=trickest\&utm\_content=wordpress) per costruire e **automatizzare flussi di lavoro** facilmente, alimentati dagli **strumenti comunitari più avanzati** al mondo.\
|
||||
Accedi oggi:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Impara e pratica AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Impara e pratica AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Impara e pratica GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -414,9 +455,7 @@ Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
Loading…
Add table
Reference in a new issue