đ Challenge : exploitation des fastbins (4/4)
Il y a pas mal dâinfos autour de la fastbin mĂȘme si elle est bien moins utilisĂ©e depuis que le tcache a fait son apparition. Un petit exercice sâimpose afin que vous sachiez si vous maĂźtrisez les bases de la fastbin ou si des rĂ©visions sâimposent đ.
Une fois les bases du tcache et de la fastbin acquises, nous pourrons explorer des techniques dâexploitation avancĂ©es visant Ă obtenir un shell en fin dâexploitation.
đ» Contexte dâexĂ©cution
Afin de se placer dans le contexte dâexĂ©cution prĂ©vu pour cet exercice, il est nĂ©cessaire de :
- activer lâASLR ;
- atteindre lâobjectif en dehors dâun dĂ©bogueur ;
- la version de la glibc utilisée est
2.24-9ubuntu2.2_i386, il sâagit donc dâun programme 32 bits.
đ« Lancer le challenge
Ci-dessous les commandes permettant de lancer le challenge :
- construction du conteneur :
docker build -t pwn-chall-fastbin .; - lancement du conteneur et du challenge :
1
| docker run -it --rm -p 1234:1234 --cap-add=SYS_PTRACE --security-opt seccomp=unconfined pwn-chall-fastbin
|
Le port accessible est le suivant :
1234 : port quâil est possible dâutiliser pour dĂ©boguer Ă distance avec gdbserver.
đ€ Quelques conseils
- Le programme a la structure dâun challenge classique dans le tas avec diverses opĂ©rations possibles impliquant des allocations, libĂ©rations âŠ
- Prenez le temps de faire un bon coup de reverse afin de trouver les différentes structures utilisées
- En fonction de la version de la glibc et des protections en place, prenez le temps de réfléchir aux potentiels problÚmes auquel vous devrez faire face et comment les contourner
- Prenez le temps de lister les diffĂ©rentes pistes qui pourraient vous permettre dâatteindre lâobjectif
đĄ Indices
Voici quelques indices qui devraient vous permettre dâavancer lorsque vous ĂȘtes bloquĂ©s et que vous ne voyez pas comment aller plus loin.
đĄ Indice n°1
1
| Vm9pY2kgbGVzIHN0cnVjdHVyZXMgZXQgw6ludW3DqXJhdGlvbnMgdXRpbGlzw6llcyBwb3VyIGxlcyBhbGxlcmdpcXVlcyBhdSByZXZlcnNlIDoKCmBgYApzdHJ1Y3QgUGVycnVjaGUKewogIGNoYXIgbm9tWzEyXTsKfTsKCnN0cnVjdCBQZXJyb3F1ZXQKewogIGNoYXIgbm9tWzhdOwogIHZvaWQgKCpkaXJlQm9uam91cikoY2hhciAqKTsKfTsKCmVudW0gdHlwZV9vaXNlYXUKewogIFBFUlJVQ0hFLAogIFBFUlJPUVVFVCwKfTsKCnN0cnVjdCBvaXNlYXUKewogIGVudW0gdHlwZV9vaXNlYXUgdHlwZTsKICB2b2lkICpvaXNlYXU7Cn07CmBgYA==
|
đĄ Indice n°2
1
| Q29tbWVudCBhcHBlbGVyIGxhIGZvbmN0aW9uIGBnZ2AgPyBJbCBkZXZyYWl0IGJpZW4geSBhdm9pciBtb3llbiBkZSBiaWRvdWlsbGVyIGRhbnMgbGUgdGFzIHBvdXIgYXBwZWxlciBjZXR0ZSBmb25jdGlvbi4=
|
đĄ Indice n°3
1
| RGVzIHBvaW50ZXVycyBkZSBmb25jdGlvbiBzb250IHByw6lzZW50cywgc29udC1pbHMgbW9kaWZpYWJsZXMgPw==
|
đĄ Indice n°4
1
| RW4gcmFpc29uIGRlIGwnQVNMUiwgb24gbmUgcGV1dCBwYXMgY29ubmHDrnRyZSDDoCBsJ2F2YW5jZSBsJ2FkcmVzc2UgZGUgbGEgZm9uY3Rpb24gYGdnYC4gSWwgZmF1dCB0cm91dmVyIHVuIG1veWVuIGRlIGNvbnRvdXJuZXIgbCdBU0xSLCBwYXIgZXhlbXBsZSBlbiBmYWlzYW50IGZ1aXRlciB1bmUgYWRyZXNzZSBkZSBmb25jdGlvbiBldCBlbiBkw6lkdWlyZSBsJ2FkcmVzc2UgZGUgYGdnYCA/
|
đĄ Indice n°5
1
| UHLDqnRleiB1bmUgYXR0ZW50aW9uIHBhcnRpY3VsacOocmUgw6AgdG91dGVzIGxlcyBtYW5pcHVsYXRpb25zIGRlIGNoYcOubmVzIGRlIGNhcmFjdMOocmVzIGV0IGRlIGJ1ZmZlcnMsIGlsIHkgYSBzb3V2ZW50IGRlcyB2dWxuw6lyYWJpbGl0w6lzIGNhY2jDqWVzIGRlcnJpw6hyZSBsZXMgYm9ubmVzIGludGVudGlvbnMgZHUgZMOpdmVsb3BwZXVyLiA=
|
đĄ Indice n°6
1
| UXVhbmQgcydhcnLDqnRlIGBwcmludGZgIGxvcnMgZGUgbGEgbGVjdHVyZSBkJ3VuZSBjaGHDrm5lIGRlIGNhcmFjdMOocmVzID8=
|