OpenNMS

OpenNMS

OpenNMS Horizon / Meridian is a Java-based network monitoring platform. Admin access can lead to command execution through notification configuration and filesystem editor functionality.

Discovery

curl -I http://TARGET/
curl -I http://TARGET/opennms/

Look for redirects to:

/opennms/login.jsp

After login, the dashboard footer often discloses the version:

Version: 30.x.x

Default Credentials

OpenNMS commonly documents default web credentials. Try documented defaults only where allowed, then immediately check the current user's roles.

User roles are visible from the UI:

Admin / Configure OpenNMS / Configure Users

Important roles for exploitation:

ROLE_ADMIN
ROLE_REST
ROLE_FILESYSTEM_EDITOR

Metasploit Authenticated RCE

If the target is slow or proxied:

If the fetch handler reports a resource collision, set a unique path:

Role Troubleshooting

Errors like this usually mean the authenticated user lacks filesystem or REST permissions:

If you can manage users, add the missing roles to the current user:

Then rerun the module.

Module Troubleshooting

Some versions of the Metasploit module may need the target arch adjusted. If the module authenticates and edits config but never gets a session, check current upstream issues and try changing the module metadata from command-arch to generic arch:

Then restart Metasploit and rerun the module.

Post-Exploitation

OpenNMS often runs in a container as the opennms user.

Check datasource configuration for database credentials:

Example datasource fields to look for:

If the database is in another container, use pivoting or port forwarding to reach it:

Connect once reachable.

PGPASSWORD='DB_PASSWORD' psql -h DB_HOST -U DB_USER -d DB_NAME

Last updated