hacktricks/reversing-and-exploiting/linux-exploiting-basic-esp/arbitrary-write-2-exec/aws2exec-.dtors-and-.fini_array.md

4.3 KiB

AWS2Exec - .dtors & .fini_array

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

.dtors

{% hint style="danger" %} Atualmente é muito incomum encontrar um binário com uma seção .dtors. {% endhint %}

Os destrutores são funções que são executadas antes do programa terminar (após o retorno da função main).
Os endereços dessas funções são armazenados dentro da seção .dtors do binário e, portanto, se você conseguir escrever o endereço de um shellcode em __DTOR_END__, isso será executado antes do programa terminar.

Obtenha o endereço desta seção com:

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

Normalmente você encontrará os marcadores DTOR entre os valores ffffffff e 00000000. Portanto, se você apenas ver esses valores, significa que não há nenhuma função registrada. Então, sobrescreva o 00000000 com o endereço do shellcode para executá-lo.

{% hint style="warning" %} Claro, primeiro você precisa encontrar um local para armazenar o shellcode para depois chamá-lo. {% endhint %}

.fini_array

Essencialmente, esta é uma estrutura com funções que serão chamadas antes do programa terminar, como .dtors. Isso é interessante se você puder chamar seu shellcode apenas pulando para um endereço, ou em casos em que você precisa voltar para o main novamente para explorar a vulnerabilidade uma segunda vez.

objdump -s -j .fini_array ./greeting

./greeting:     file format elf32-i386

Contents of section .fini_array:
8049934 a0850408

#Put your address in 0x8049934

Note que isso não irá criar um loop eterno porque quando você voltar para o main, o canário irá perceber, o final da pilha pode estar corrompido e a função não será chamada novamente. Portanto, com isso você será capaz de ter mais 1 execução da vulnerabilidade.

{% hint style="danger" %} Note que com Full Relro, a seção .fini_array é tornada somente leitura. {% endhint %}

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks: