Partie 17 - đ Challenge - exploitation de la unsorted bin (4/4)
đ Challenge : exploitation de la unsorted bin (4/4)
Depuis plusieurs chapitres, nous avons eu lâoccasion de rencontrer divers Ă©lĂ©ments utilisĂ©s dans le tas dont la unsorted bin. Il est temps de passer Ă un exercice un peu plus croustillant et rĂ©aliste qui consiste cette fois-ci Ă ouvrir un terminal en exploitant le tas.
- âŹïž TĂ©lĂ©chargement : pwn-chall-unsorted-bin.zip
- đ SHA256 & Analyse Virus Total : 6949fb442f0245c25250dad08422ef26f0dd312e2094171a97afc2667b29ecbb
- đŻ Objectif : rĂ©ussir Ă ouvrir un terminal.
- đ Objectif bonus pour les plus tĂ©mĂ©raires dâentre vous qui souhaitent aller plus loin :
- ouvrir un terminal en tant que
root
- ouvrir un terminal en tant que
Bon courage !
đ» 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Ă©boggeur ;
- la version de la glibc utilisée est
2.33-0ubuntu5_amd64
đ« Lancer le challenge
Ci-dessous les commandes permettant de lancer le challenge :
- construction du conteneur :
docker build -t pwn-chall-unsorted-bin .; - lancement du conteneur et du challenge :
1
docker run -it --rm -p 1234:1234 --cap-add=SYS_PTRACE --security-opt seccomp=unconfined pwn-chall-unsorted-bin
Le port accessible est le suivant :
1234: port quâil est possible dâutiliser pour dĂ©boguer Ă distance avecgdbserver.
đ€ Quelques conseils
- Ce challenge est un peu plus complexe que les prĂ©cĂ©dents. Ainsi, si vous ne trouvez pas directement par quel bout le prendre ou comment atteindre lâobjectif, câest normal. En suivant une piste il est possible que vous fassiez face Ă des Ă©cueils quâil va falloir contourner. Dans tous les cas, tout ce qui a Ă©tĂ© prĂ©cĂ©demment vu devrait vous permettre de rĂ©ussir cet exercice. Plusieurs Ă©tapes seront nĂ©cessaires avant dâatteindre lâobjectif.
- 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, réfléchissez aux potentiels problÚmes auxquels vous devrez faire face et comment les contourner.
- Nâoubliez pas de lister les potentielles pistes qui pourraient vous permettre dâatteindre lâobjectif.
- 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
''')
đĄ Indices
Encore une fois, sâil vous arrive dâĂȘtre bloquĂ© lors de certaines Ă©tapes, câest normal. Câest le but du challenge : vous apprendre Ă investiguer les causes dâun dysfonctionnement lorsque lâon pense avoir pourtant fait ce qui est correct.
Si vous pensez ĂȘtre totalement bloquĂ©s et que vous nâarrivez pas Ă avancer mĂȘme en ayant cherchĂ© la cause du dysfonctionnement, alors vous pouvez vous aider des indices. Sinon, essayez dâĂ©viter dâutiliser les indices tant que vous nâavez pas assez cherchĂ© đ.
đĄ Indice n°1
1
TGUgZMOpdmVsb3BwZXVyIGR1IGNoYWxsZW5nZSBuJ2VzdCBwYXMgdHLDqHMgZG91w6ksIGlsIHNlIHBldXQgcXVlIGNlcnRhaW5lcyBmb25jdGlvbm5hbGl0w6lzIG5lIGZvbmN0aW9ubmVudCBwYXMgY29tbWUgYXR0ZW5kdS4gVGVudGV6IGQnaW52ZXN0aWd1ZXIgbGEgY2F1c2UgLi4u
đĄ Indice n°2
1
SWwgbid5IGEgcGFzIGRlIHBvaW50ZXVyIGRlIGZvbmN0aW9uIHV0aWxpc8OpIGRpcmVjdGVtZW50IHBhciBsZSBwcm9ncmFtbWUuIElsIHZhIGRvbmMgZmFsbG9pciB0cm91dmVyIHVuIG1veWVuIGQnZXjDqWN1dGVyIGR1IGNvZGUgb3UgdW5lIGZvbmN0aW9uLgoKTGEgdmVyc2lvbiBkZSBsYSBsaWJjIGVzdCAyLjMzLCBxdWUgcGV1dC1vbiBlbiBkw6lkdWlyZSA/
đĄ Indice n°3
1
U2F2b2lyIG/DuSBs4oCZb24gdmEgY+KAmWVzdCBiaWVuLCBtYWlzIHLDqXVzc2lyIMOgIHkgYWxsZXIgY+KAmWVzdCBlbmNvcmUgbWlldXggIQoKVGVudGV6IGRlIHRyb3V2ZXIgdG91cyBsZXMgZHlzZm9uY3Rpb25uZW1lbnRzIG91IHZ1bG7DqXJhYmlsaXTDqXMgcHLDqXNlbnRlcyBkYW5zIGxlIGNvZGUgZXQgw6l2YWx1ZXogY2UgcXVlIHZvdXMgcG91dmV6IGZhaXJlIGF2ZWMgY2hhY3VuLgoKVm91cyBmYWl0ZXMgc8O7cmVtZW50IGZhY2Ugw6AgdW4gb3UgcGx1c2lldXJzIGRlcyBwcm9ibMOobWVzIHN1aXZhbnRzIDoKCi0gY29tbWVudCBmYWlyZSBmdWl0ZXIgdW5lIGFkcmVzc2UgZGUgbGEgbGliYyA/Ci0gY29tbWVudCBmYWlyZSBmdWl0ZXIgdW5lIGFkcmVzc2UgZHUgdGFzID8KLSBjb21tZW50IHLDqXVzc2lyIMOgIGFsbG91ZXIgdW4gYmxvYyBkYW5zIGxhIHVuc29ydGVkIGJpbiBhbG9ycyBxdWUgbGUgdGNhY2hlIGVzdCBwcsOpc2VudCA/CgrDh2EgdG9tYmUgYmllbiwgbm91cyBhdm9ucyB2dSBkZXMgw6lsw6ltZW50cyBkZSByw6lwb25zZXMgw6AgY2VzIHF1ZXN0aW9ucyBkYW5zIGxlcyBwcsOpY8OpZGVudHMgY2hhcGl0cmVzIDspLiA=
đĄ Indice n°4
1
U2kgdm91cyDDqnRlcyBwYXJ2ZW51IMOgIHN1cm1vbnRlciBsZXMgb2JzdGFjbGVzIHByw6ljw6lkZW50cywgbGEgZmluIGVzdCBkw6lzb3JtYWlzIMOgIHBvcnTDqWUgZGUgbWFpbi4KCklsIG5lIHZvdXMgcmVzdGUgcGx1cyBxdeKAmcOgIHRyb3V2ZXIgdW4gbW95ZW4gZOKAmcOpY3JpcmUgYXJiaXRyYWlyZW1lbnQgZW4gbcOpbW9pcmUuIEludXRpbGUgZGUgY2hlcmNoZXIgYmllbiBsb2luIDogZXhwbG9yZXogbGVzIHBvc3NpYmlsaXTDqXMgbGVzIHBsdXMgc2ltcGxlcyBlbiBwcmVtaWVyLgoKVW5lIGZvaXMgY2V0dGUgY2FwYWNpdMOpIGFjcXVpc2UsIGlsIG5lIHJlc3RlcmEgcGx1cyBxdeKAmcOgIG91dnJpciBsZSB0ZXJtaW5hbC4KClBvdXIgY2V1eCBxdWkgc291aGFpdGVudCBhdHRlaW5kcmUgbCdvYmplY3RpZiAiYm9udXMiLCBsZSBjb3VycyBjb250aWVudCB0b3VzIGxlcyDDqWzDqW1lbnRzIHF1aSB2b3VzIHBlcm1ldHRlbnQgZGUgbCdhdHRlaW5kcmUu