Web Dispatcher Admin Interface Exposure (/sap/wdisp/admin Weak Credentials & Config Disclosure)
SAP Web Dispatcher’s web-based administration/monitoring interface is bound to /sap/wdisp/admin (activated via the icm/HTTP/admin_<xx> profile parameter) and gated by HTTP Basic authentication against a realm SAP labels “WEB ADMIN”. Per SAP’s own installation guidance, the admin account created at install time is named webadm, initially authenticated with the installation master password - a name and provisioning pattern operators frequently leave on a weak or easily-guessed password (webadm, Welcome1, admin) rather than rotating post-install, alongside sibling naming conventions (wdadmin, sapadmin) seen across real deployments.
Once Basic auth is satisfied, the admin interface discloses the Web Dispatcher’s routing configuration in full: every wdisp/system_N parameter line (SID, MSHOST, MSPORT, SSL_ENCRYPT, SRCURL, SRCVHOST per backend), the kernel patch level/build date, and wdisp/permission_table contents - collectively the internal backend topology the Web Dispatcher exists to hide from the untrusted network it faces. The interface’s exact URL shape (.icp SAPUI5 pages, MonitorAction.html?action=..., info?type=parameter, or a REST api/v1/parameters path) varies by kernel version, and one candidate - /sap/wdisp/admin/public/default.html - is served anonymously as the static SPA landing page on most kernels (always 200, with or without credentials), which is a false-positive trap for naive credential-verification logic: a genuine auth gate must be located first (walking candidates until one returns 401 unauthenticated) before testing credentials against it.
The Web Dispatcher’s own Basic-auth credential store, icmauth.txt (<DRIVE>:\usr\sap\<SID>\SYS\global\security\data\icmauth.txt / the equivalent UNIX path), holds user:{ALGO}<base64-digest>:<comment> records ({SHA}/{SHA256}/{SHA384}/{SHA512} depending on kernel generation) rather than plaintext - a hardening measure by SAP design - but the digests are directly hashcat-crackable (modes 100/1400/10800/1700 respectively) if the file can be read.
An attacker who reaches the Web Dispatcher’s HTTP(S) port and either finds icm/HTTP/admin reachable without network-layer HOST/CLIENTHOST restriction, or guesses/brute-forces a weak admin credential, obtains a complete map of the backend SAP landscape (every SID, message-server host, port, TLS posture) sitting behind the Web Dispatcher - intelligence that directly targets subsequent attacks at the correct backend instead of blind probing. If the admin interface additionally permits configuration changes (not just read), routing rules and TLS trust settings become directly attacker-modifiable. Successful extraction of icmauth.txt converts into offline password cracking against every configured admin/monitor account.
- Credential probing - SAPMAP
modules/exploitation/sap_wdisp_admin.py,probe_wd_admin_credentials(): walks a top-12 default/weak credential list (webadm/webadm,webadm/Welcome1,webadm/admin,wdadmin/wdadmin,wdadmin/Welcome1,sapadmin/sapadmin,sapadmin/Welcome1,admin/admin,admin/Welcome1,admin/manage,administrator/administrator,Administrator/Administrator) against a pre-flight-verified genuine 401 auth gate - auto-flips HTTP↔HTTPS on connect failure or on HTTPS-only Basic-auth profiles. Operator-supplied wordlists override the built-in list for a real credential-spray engagement. - Authenticated config extraction -
fetch_wd_systems()in the same module: once credentials work, walksnavData.icp(the SAPUI5 SPA’s authoritative navigation map for the specific kernel build) plus ~30 canonical parameter-readout endpoint shapes across kernel generations (7.4x–7.9x), falling back to scraping the admin index’s JS for XHR URL hints when none of the canonical endpoints hit - parses everywdisp/system_N = SID=..., MSHOST=..., MSPORT=..., SSL_ENCRYPT=..., SRCURL=...line from either plain-text or HTML-table kernel output. - icmauth.txt extraction (best-effort) -
download_icmauth()walks a list of undocumented file-viewer endpoints under/sap/wdisp/admin/icp/;parse_icmauth()converts any recovered{ALGO}<base64>digest lines into hashcat-readyuser:hexhashrecords with the correct-mmode. - Manual equivalent: browse to
https://<host>:<port>/sap/wdisp/admin/public/default.html, authenticate aswebadmwith the install master password or a guessed default (SAP Note 908097 confirmswebadmas the provisioned account name);wdispmonprovides the same data but only locally via shared memory, not remotely. - Precondition: network reachability to the Web Dispatcher’s configured HTTP(S) port;
icm/HTTP/admin_<xx>active without a restrictiveHOST/CLIENTHOSTscope, and/or a weak/defaulticmauth.txtcredential.
- Change the
webadmaccount’s password away from the installation master password immediately post-install (SAP Note 908097); audit for any of the top-12 weak credential pairs above on every configured admin account. - Scope
icm/HTTP/admin_<xx>with itsHOST/CLIENTHOSToptions so the admin interface is reachable only from the intranet/administrative network segment; disable it entirely (icm/HTTP/admin_<xx>unset) if unused. - Serve the admin interface over SSL/TLS only - the credential (and hash) is transmitted at logon and must not cross the wire in cleartext.
- Use a strong (16+ character), unique admin password and, where the kernel build supports it, require a client certificate in addition to Basic auth.
- Protect
icmauth.txtat the OS filesystem level; restrict read access to<sid>admonly. - Block
/sap/wdisp/infoand other internal info endpoints via the URL permission table (D /sap/wdisp/info) as defense-in-depth even when the admin interface itself is properly scoped - see Routing Rule Abuse. - Keep the Web Dispatcher at the SAP Note 908097-recommended current patch level.
- Web Dispatcher/ICM access log: repeated
401responses against/sap/wdisp/admin*paths from a single source in rapid succession - a textbook credential-spray signature; distinguish from the benign SPA’s own repeated anonymous hits to/sap/wdisp/admin/public/default.html. - Any successful admin logon (
200/non-401response on a path that previously 401’d) from a source IP outside the documented admin/management network. - File-access auditing on
icmauth.txtoutside the standardwdispmon/install workflow. - Anomalous request volume against
.icp,MonitorAction.html?action=..., orinfo?type=parameter-shaped URLs beyond normal monitoring traffic - consistent with the broad endpoint-guessing pattern this technique uses across kernel versions.
- SAP Note 908097 - SAP Web Dispatcher: Release, Installation, Patches, Documentation (confirms
webadmdefault admin account,/sap/wdisp/adminURL, install-master-password initial credential) - SAP® System Security (SAP PRESS, 2026) - Web Dispatcher admin console URL,
webadmaccount, password-reset guidance - SAP Security and Risk Management (Rheinwerk/SAP PRESS), ch. 14.1 -
icm/HTTP/adminHOST/CLIENTHOSThardening, SSL-for-admin-access guidance - SAP® System Security Guide (SAP PRESS) -
icmauth.txtgeneration viawdispmon/icmon -a, hash-not-plaintext storage design
