Skip to content

Commit 4c0048f

Browse files
committed
Update description
1 parent 3a63fa1 commit 4c0048f

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

modules/exploits/windows/fileformat/ms14_060_sandworm.rb

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,31 @@ def initialize(info={})
1515
super(update_info(info,
1616
'Name' => "MS14-060 Microsoft Windows OLE Package Manager Code Execution",
1717
'Description' => %q{
18-
This module exploits a vulnerability Microsoft Windows from Vista SP2 to Windows 8,
19-
including Windows Server 2008 and 2012. The vulnerability exists in the OLE package
20-
magager, which allows to download and execute remote INF files silently. This module
21-
triggers the vulnerability through a malicious PPSX file, as exploited in the wild on
22-
October 2014.
18+
This module exploits a vulnerability found in Windows Object Linking and Embedding (OLE)
19+
allowing arbitrary code execution, publicly known as "Sandworm". Platforms such as Windows
20+
Vista SP2 all the way to Windows 8, Windows Server 2008 and 2012 are known to be
21+
vulnerable. However, based on our testing, the most reliable setup is on Windows platforms
22+
running Office 2013. But please keep in mind that some other setups such as using Office
23+
2010 might be less stable, and sometimes may end up with a crash due to a failure in the
24+
CPackage::CreateTempFileName function.
25+
26+
In detail, the vulnerability has to do with how the Object Packager 2 component
27+
(packager.dll) handles an INF file that contains malicious registry changes, which may be
28+
leveraged for code execution. First of all, Packager does not load the INF file directly.
29+
But as an attacker, you can trick it to load your INF anyway by embedding the file path as
30+
a remote share in an OLE object. The packager will then treat it as a type of media file,
31+
and load it with the packager!CPackage::OLE2MPlayerReadFromStream, which will download it
32+
with a CopyFileW call, save it in a temp folder, and pass that information for later. The
33+
exploit will do this loading process twice: first for a fake gif file that's actually the
34+
payload, and the second for the INF file.
35+
36+
The packager will also look at each OLE object's XML Presentation Command, specifically the
37+
type and cmd property. In the exploit, "verb" media command type is used, and this triggers
38+
the packager!CPackage::DoVerb function. Also, "-3" is used as the fake gif file's cmd
39+
property, and "3" is used for the INF. When the cmd is "-3", DoVerb will bail. But when "3"
40+
is used (again, for the INF file), it will cause the packager to try to find appropriate
41+
handler for it, which will end up with C:\Windows\System32\infDefaultInstall.exe, and that
42+
will install/run the malicious file, and finally give us arbitrary code execution.
2343
},
2444
'License' => MSF_LICENSE,
2545
'Author' =>

0 commit comments

Comments
 (0)