AWS2Exec - .dtors & .fini_array

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

.dtors

De nos jours, il est très étrange de trouver un binaire avec une section .dtors.

Les destructeurs sont des fonctions qui sont exécutées avant la fin du programme (après le retour de la fonction main). Les adresses de ces fonctions sont stockées à l'intérieur de la section .dtors du binaire et donc, si vous parvenez à écrire l'adresse d'un shellcode dans __DTOR_END__, cela sera exécuté avant la fin des programmes.

Obtenez l'adresse de cette section avec :

objdump -s -j .dtors /exec
rabin -s /exec | grep “__DTOR”

Généralement, vous trouverez les marqueurs DTOR entre les valeurs ffffffff et 00000000. Donc, si vous voyez juste ces valeurs, cela signifie qu'aucune fonction n'est enregistrée. Écrasez donc le 00000000 avec l'adresse du shellcode pour l'exécuter.

Bien sûr, vous devez d'abord trouver un endroit pour stocker le shellcode afin de pouvoir l'appeler ultérieurement.

.fini_array

Essentiellement, c'est une structure avec des fonctions qui seront appelées avant la fin du programme, comme .dtors. C'est intéressant si vous pouvez appeler votre shellcode en sautant à une adresse, ou dans des cas où vous devez retourner à main pour exploiter la vulnérabilité une deuxième fois.

objdump -s -j .fini_array ./greeting

./greeting:     file format elf32-i386

Contents of section .fini_array:
8049934 a0850408

#Put your address in 0x8049934

Notez que cela ne créera pas une boucle éternelle car lorsque vous revenez à la fonction principale, le canari le remarquera, la fin de la pile pourrait être corrompue et la fonction ne sera pas rappelée. Ainsi, avec cela, vous pourrez avoir 1 exécution supplémentaire de la vulnérabilité.

Notez qu'avec Full Relro, la section .fini_array est rendue en lecture seule.

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks :

Last updated