Skip to content

Brute Force Attack

Alert ID: brute_force MITRE ATT&CK: T1110 – Brute Force


LevelCondition
Low3–5 attempts → Initial suspicious activity
Medium6–20 attempts → Moderate active attack
High21–40 attempts → Significant persistent attack
Critical41+ attempts or successful login after brute force → Potential compromise

  • Unauthorized access attempts against administrative accounts.
  • Risk of full WordPress site compromise.
  • Possible credential or sensitive-data theft.
  • Use of the site as a starting point for further attacks.

!!! danger “Critical” A successful login after multiple failed attempts indicates a potential breach.


  • Initial threshold: 3 failed attempts from the same IP.
  • Aggregation window: 60 seconds.
  • Cooldown: 5 minutes after each alert.
  • Immediate critical trigger if there is a successful login after consecutive failures.
  • Pattern analysis:
    • targeted_single_user
    • targeted_multiple_users
    • dictionary_attack

TypePatternDescription
log_patternPOST /wp-login.phpHigh-volume login requests
log_patternPOST /xmlrpc.php (system.multicall)XML-RPC attacks
behavior401/403 responsesAccess-denied responses
behavior>2 requests/secAutomated activity
file_patternwp_options -> failed_login_attemptsFailed-attempt record

  • Users who forgot their password, usually fewer than 3 attempts.
  • Misconfigured password managers.
  • Authentication plugins that retry automatically.
  • Monitoring tools or uptime checkers with incorrect settings.

  1. Verify IP origin: whois [IP] and geoiplookup [IP].
  2. Analyze timing patterns to determine whether activity is human or automated.
  3. Review targeted users and check whether administrative accounts are being targeted.
  4. If login succeeded, analyze subsequent activity such as user, permission, plugin, or file changes.

=== “Immediate”

!!! danger ""
- Block the attacking IP in the firewall or WAF.
- Force a password change if login succeeded.
- Revoke active sessions for the compromised user.
- Enable two-factor authentication (2FA).

=== “Preventive”

!!! tip ""
- Implement login-attempt limits, for example Wordfence or Limit Login Attempts.
- Change the `wp-admin` access URL, for example with WPS Hide Login.
- Add CAPTCHA to the login form.
- Disable XML-RPC if it is not used.
- Configure fail2ban with a WordPress-specific rule.