# wpscan

WPScan is an open-source security tool used for penetration testing and vulnerability assessment of WordPress websites. It allows security professionals and ethical hackers to identify vulnerabilities, misconfigurations, and weak credentials within WordPress applications. WPScan is widely used for security audits and proactive defense strategies.

### Installation

WPScan is available on most Linux distributions and can be installed easily. On Debian-based systems, such as Ubuntu and Kali Linux, it can be installed using the following command:

```sh
sudo apt install wpscan
```

Alternatively, it can be installed via RubyGems:

```sh
gem install wpscan
```

Ensure WPScan is working correctly by checking its version:

```sh
wpscan --version
```

### Common Scans

WPScan provides various scanning options to enumerate users, plugins, themes, and configuration files. Below are some commonly used commands:

#### General Scan

To perform a basic scan of a WordPress website:

```sh
wpscan --url <URL>
```

#### Enumerating WordPress Users

Identifying valid WordPress users can be useful for further security assessments:

```sh
wpscan --url <URL> --enumerate u
```

#### Scanning for Vulnerable Themes

To check for outdated or vulnerable themes:

```sh
wpscan --url <URL> --enumerate vt
```

#### Scanning for Vulnerable Plugins

To identify security flaws in installed plugins:

```sh
wpscan --url <URL> --enumerate vp
```

#### Checking for Exposed WordPress Configuration Files

Sensitive configuration files might be accessible due to misconfigurations. To check for such exposures:

```sh
wpscan --url <URL> --enumerate cb
```

### Performing a Password Attack

Once valid usernames have been identified, a password attack can be performed to test for weak credentials. WPScan allows brute-force testing using a dictionary attack:

```sh
wpscan --url <URL> --passwords <PASSWORD LIST> --usernames <USER>
```

### Best Practices for WordPress Security

1. **Keep WordPress Updated:** Always update WordPress core, themes, and plugins.
2. **Use Strong Passwords:** Enforce complex passwords for all user accounts.
3. **Limit Login Attempts:** Restrict the number of failed login attempts to prevent brute-force attacks.
4. **Disable Unused Features:** Remove unused plugins and themes to reduce attack vectors.
5. **Implement Two-Factor Authentication (2FA):** Add an extra layer of security to user logins.
6. **Restrict File Permissions:** Set proper file permissions to prevent unauthorized access.
