Partie 7 - đ Challenge - exploitation du tcache (4/4)
đ Challenge : exploitation du tcache (4/4)
En sâintĂ©ressant Ă un seul type de corbeille, vous avez pu constater la quantitĂ© importante dâinformations quâil convient de connaĂźtre pour comprendre le fonctionnement du tcache en fonction des multiples versions de la libc đ€Ż.
Il est désormais temps de passer à la pratique afin de ne pas oublier ces connaissances fraßchement acquises.
- âŹïž TĂ©lĂ©chargement : pwn-chall-tcache.zip
- đ SHA256 & Analyse Virus Total : 6f8fde29b28a759f85ebb1639df9127521881fc48aea57897bd8f5694e551762
- đŻ Objectif : modifier le contenu de la chaĂźne de caractĂšres
goal.
Ce challenge est plutĂŽt Ă considĂ©rer comme un exercice de synthĂšse. HonnĂȘtement, il nâest pas trĂšs compliquĂ© et si vous avez saisi les bases du fonctionnement du
tcache, vous devriez le réussir sans souci.
đ» 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 ;
- utiliser la version de la glibc
2.31-0ubuntu9.16_amd64.
Cette version de la glibc est facilement téléchargeable avec
glibc-all-in-one. NâhĂ©sitez pas Ă jeter un Ćil au chapitreComment compiler et dĂ©boguer un programme avec une version spĂ©cifique de la libcsi vous avez oubliĂ© comment faire.Il est fortement recommandĂ© de rĂ©soudre le challenge dans le conteneur Docker afin dâĂ©viter dâavoir Ă tĂ©lĂ©charger la bonne version de la libc et afin de pouvoir obtenir un environnement dâexploitation correct pour la rĂ©alisation de ce challenge.
đ« Lancer le challenge
Ci-dessous les commandes permettant de lancer le challenge :
- construction du conteneur :
docker build -t pwn-chall-tcache .; - lancement du conteneur et du challenge :
1
docker run -it --rm -p 1234:1234 --cap-add=SYS_PTRACE --security-opt seccomp=unconfined pwn-chall-tcache
Le port accessible est le suivant :
1234: port quâil est possible dâutiliser pour dĂ©boguer Ă distance avecgdbserver.
đ€ Quelques conseils
- Analysez les différentes fonctionnalités du programme une par une
- En fonction de la version de la glibc et des protections en place, prenez le temps de rĂ©flĂ©chir aux potentiels problĂšmes auxquels vous pourriez faire face ainsi quâaux moyens de les contourner
- Lâobjectif Ă atteindre est plus facile que de devenir
root. Il sâagit simplement de mettre en Ćuvre ce que vous avez appris lors du prĂ©cĂ©dent chapitre. Si vous nâarrivez pas Ă trouver comment exploiter le programme, nâhĂ©sitez pas Ă y refaire un tour đ - NâhĂ©sitez pas Ă ouvrir gdb dans votre script dâexploitation avec la commande ci-dessous, afin de voir ce qui est en train de se passer dans le tas :
1
2
3
gdb.attach(io, '''
b *0xadresse
''')
Astuce pwntools : Vous pouvez changer la version de gdb que pwntools utilise en créant un lien symbolique
/usr/bin/pwntools-gdb.Par exemple :
sudo ln -s /usr/bin/gdb-gef++ /usr/bin/pwntools-gdb
đĄ Indices
1
Vm9pY2kgcXVlbHF1ZXMgaW5kaWNlcyBxdWkgZGV2cmFpZW50IHZvdXMgcGVybWV0dHJlIGQnYXZhbmNlciBzaSB2b3VzIMOqdGVzIGJsb3F1w6lzIGV0IHF1ZSB2b3VzIG5lIHZveWV6IHBhcyBjb21tZW50IGFsbGVyIHBsdXMgbG9pbi4=
đĄ Indice n°1
1
T8O5IGVzdCBsb2NhbGlzw6kgbGUgY29udGVudSBkZSBsYSB2YXJpYWJsZSBnbG9iYWxlIGBnb2FsYCA/IERhbnMgbGEgcGlsZSA/IERhbnMgbGUgdGFzID8gRGFucyBsYSBzZWN0aW9uIGRlIGRvbm7DqWVzID8gQXV0cmUgPw==
đĄ Indice n°2
1
UHJlbmV6IGJpZW4gbGUgdGVtcHMgZGUgY29tcHJlbmRyZSBsZSBmb25jdGlvbm5lbWVudCBkZXMgZGlmZsOpcmVudGVzIGFjdGlvbnMgZHUgcHJvZ3JhbW1lLiBRdWVsbGVzIHNvbnQgbGVzIGRpZmbDqXJlbmNlcyBlbnRyZSBlbGxlcyA/IENvbW1lbnQgc29udCBnw6lyw6llcyBsZXMgZG9ubsOpZXMgPwoKWSBhLXQtaWwgdW5lIGRlcyBhY3Rpb25zIHF1aSBlc3QgcGx1cyB2dWxuw6lyYWJsZSBxdWUgbGVzIGF1dHJlcyA/
đĄ Indice n°3
1
QXZlYyBsJyoqQVNMUioqLCBub3VzIG5lIHBvdXZvbnMgcGFzIGNvbm5hw650cmUgw6AgbCdhdmFuY2UgbGUgY29udGVudSBkZSBgZmRgLiBJbCBlc3QgcG9zc2libGUgZGUgbW9kaWZpZXIgY2VydGFpbnMgb2N0ZXRzIGRlIHBvaWRzIGZhaWJsZSBtYWlzLCBlbiByYWlzb24gZGUgbCcqKkFTTFIqKiwgdW4gcGV1IGRlIGZvcmNlIGJydXRlIHNlcmEgbsOpY2Vzc2FpcmUuCgpJbCBmYXVkcmFpdCB0cm91dmVyIHVuIG1veWVuIGQnb2J0ZW5pciB1biAqbGVhayogYWZpbiBkZSBwb3V2b2lyIG1vZGlmaWVyIGBmZGAgc2FucyBhdm9pciByZWNvdXJzIMOgIGxhIGZvcmNlIGJydXRlIC4uLg==
đĄ Indice n°4
1
RW4gdXRpbGlzYW50IHVuZSBkZXMgdnVsbsOpcmFiaWxpdMOpcyBkdSBgdGNhY2hlYCBkdSBwcsOpY8OpZGVudCBjaGFwaXRyZSwgZXN0LWlsIHBvc3NpYmxlIGRlIGNvbnRyw7RsZXIgbGEgcHJvY2hhaW5lIGFsbG9jYXRpb24gPw==