Skip to content

Conversation

@Chocapikk
Copy link
Contributor

Hello Metasploit team,

I've pushed a new auxiliary scanner module that tests two CVEs affecting N-able N-Central:

The module combines both vulnerabilities to achieve unauthenticated file read on affected N-Central instances (versions < 2025.4.0.9).

I've tested the module locally and it works as expected. If needed, I can provide HTTP logs from my testing sessions.

Thanks!

@wvu
Copy link
Contributor

wvu commented Nov 21, 2025

nice!

register_options([
OptIntRange.new('APPLIANCE_ID', [true, 'Appliance ID range to test (e.g., 1-30)', '1-30']),
OptString.new('TARGETURI', [true, 'The base path to N-Central', '/']),
OptString.new('FILE', [false, 'File to read via XXE (e.g., /etc/passwd, /opt/nable/var/ncsai/etc/ncbackup.conf, /var/opt/n-central/tmp/ncbackup/ncbackup.bin, /opt/nable/etc/masterPassword, /etc/shadow)', '/etc/passwd']),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this option be required? Thinking of the scenario where this module option could be unset via the console commands. Might be the same consideration for LOG_PATH.

'Proc' => proc do |cli, req|
on_request_uri(cli, req)
end,
'Path' => '/'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to have this be configurable via the datastore options?

return
end

sleep(2)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would we potentially be able to make use of retry_until_truthy on trigger_xxe instead of sleep(2) here?

Example

@Chocapikk
Copy link
Contributor Author

Thanks for the review @cgranleese-r7! I've applied the following changes:

  • FILE and LOG_PATH are now required options
  • Replaced sleep(2) with retry_until_truthy with configurable timeout
  • Synchronized local server SSL with DTD_PROTO option (new)
  • Added documentation for advanced options (XXETriggerTimeout and DTD_PROTO)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants