This module exploits a command injection vulnerability in the Collectd graphing functionality in LibreNMS. The `to` and `from` parameters used to define the range for a graph are sanitized using the `mysqli_escape_real_string()` function, which permits backticks. These parameters are used as part of a shell command that gets executed via the `passthru()` function, which can result in code execution.
Unix
cmd
To display the available options, load the module within the Metasploit console and run the commands 'show options' or 'show advanced':
msf > use exploit/linux/http/librenms_collectd_cmd_inject
msf exploit(librenms_collectd_cmd_inject) > show targets
...targets...
msf exploit(librenms_collectd_cmd_inject) > set TARGET < target-id >
msf exploit(librenms_collectd_cmd_inject) > show options
...show and set options...
msf exploit(librenms_collectd_cmd_inject) > exploit
Time is precious, so I don’t want to do something manually that I can automate. Leveraging the Metasploit Framework when automating any task keeps us from having to re-create the wheel as we can use the existing libraries and focus our efforts where it matters.
– Jim O’Gorman | President, Offensive Security