Description
This module exploits an arbitrary file upload vulnerability in HorizontCMS 1.0.0-beta in order to execute arbitrary commands.
The module first attempts to authenticate to HorizontCMS. It then tries to upload a malicious PHP file via an HTTP POST request to `/admin/file-manager/fileupload`. The server will rename this file to a random string. The module will therefore attempt to change the filename back to the original name via an HTTP POST request to `/admin/file-manager/rename`. For the `php` target, the payload is embedded in the uploaded file and the module attempts to execute the payload via an HTTP GET request to `/storage/file_name`. For the `linux` and `windows` targets, the module uploads a simple PHP web shell similar to `<?php system($_GET["cmd"]); ?>`. Subsequently, it leverages the CmdStager mixin to deliver the final payload via a series of HTTP GET requests to the PHP web shell.
Valid credentials for a HorizontCMS user with permissions to use the FileManager are required. This would be all users in the Admin, Manager and Editor groups if HorizontCMS is configured with the default group settings.This module has been successfully tested against HorizontCMS 1.0.0-beta running on Ubuntu 18.04.
Module options
To display the available options, load the module within the Metasploit console and run the commands 'show options' or 'show advanced':
msf > use exploit/multi/http/horizontcms/upload_execmsf undefined(upload_exec) > show actions ...actions...msf undefined(upload_exec) > set ACTION < action-name >msf undefined(upload_exec) > show options ...show and set options...msf undefined(upload_exec) > runPrioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub