I'm currently traducing the posts in english, my english is not very good, so if you find errors feel free to contact me.
  • intruded.net : leviathan – level #7

    level7, avant dernier niveau…
    Il est moins dur que le précédent, il est même possible de le résoudre de 2 façons différentes, une barbare et une jolie.
    Une fois connecté on fonce dans /wargame, là le binaire sphinx est notre cible.
    Après exécution de celui-ci, on voit qu’il nous demande un nombre à 4 chiffres.

    1
    2
    
    level7@leviathan:/wargame$ ./sphinx
    usage: ./sphinx [4 digit code]

    Je vais montrer les 2 méthodes mais pas trop m’attarder sur la barbare vu que c’est un bête brute-forcing.

    Méthode 1 : bruteforçons
    Y a qu’à coder un truc bourrin qui boucle de 1000 à 9999 en testant chaque nombre. Vous pouvez coder en C, perl, script bash.. osef !
    Exemple :

    1
    
    level7@leviathan:/wargame$ for x in $(seq 1000 9999); do /wargame/sphinx $x; done;

    Voilà, quand le nombre va être trouvé vous allez avoir un shell SUID level8, y en a pour moins d’une minute.

    Méthode 2 : Désassemblons

    Bon bha pas de secret, on prend objdump pour désassembler le binaire :

    1
    2
    3
    4
    5
    6
    7
    
    0x080484b9 <main+85>:	call   0x8048394 <atoi@plt>
    0x080484be <main+90>:	cmp    0xfffffff8(%ebp),%eax
    0x080484c1 <main+93>:	jne    0x80484dd <main+121>
    0x080484c3 <main+95>:	movl   $0x3ef,(%esp)
    0x080484ca <main+102>:	call   0x8048334 <seteuid@plt>
    0x080484cf <main+107>:	movl   $0x8048622,(%esp)
    0x080484d6 <main+114>:	call   0x8048344 <system@plt>

    La comparaison se fait entre eax et 0xfffffff8(%ebp), on prend donc gdb pour mettre un breakpoint sur le cmp (0x080484be) :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    (gdb) b * 0x080484be
    Breakpoint 1 at 0x80484be
    (gdb) r 9999
    Starting program: /wargame/sphinx 9999
     
    Breakpoint 1, 0x080484be in main ()
    (gdb) p $eax
    $1 = 9999
    (gdb) x/d ($ebp - 8)
    0xbffffa30:	7123

    On relance le binaire avec le bon nombre et on a un shell SUID level8, reste plus qu’à aller chercher le password :)

    Bon ceci était en fait le dernier level, vu que le 8 contient juste un mot de félicitations.
    Je verrais si je continue sur le challenge 2 nommé narnia, qui est orienté exploitation de base, surtout des stacks overflow, pour le moment j’ai juste fait le level1, donc à suivre..


Rss Feed Tweeter button