House of Einherjar

Reading time: 4 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Informações Básicas

Código

Objetivo

  • O objetivo é alocar memória em quase qualquer endereço específico.

Requisitos

  • Criar um chunk falso quando quisermos alocar um chunk:
  • Definir ponteiros para apontar para si mesmos para contornar verificações de sanidade
  • Overflow de um byte com um byte nulo de um chunk para o próximo para modificar a flag PREV_INUSE.
  • Indicar no prev_size do chunk abusado off-by-null a diferença entre ele e o chunk falso
  • O tamanho do chunk falso também deve ter sido definido com o mesmo tamanho para contornar verificações de sanidade
  • Para construir esses chunks, você precisará de um leak de heap.

Ataque

  • Um chunk falso A é criado dentro de um chunk controlado pelo atacante apontando com fd e bk para o chunk original para contornar proteções
  • 2 outros chunks (B e C) são alocados
  • Abusando do off by one no B, o bit prev in use é limpo e os dados de prev_size são sobrescritos com a diferença entre o lugar onde o chunk C é alocado e o chunk falso A gerado anteriormente
  • Este prev_size e o tamanho no chunk falso A devem ser os mesmos para contornar as verificações.
  • Então, o tcache é preenchido
  • Em seguida, C é liberado para que se consolide com o chunk falso A
  • Então, um novo chunk D é criado que começará no chunk falso A e cobrindo o chunk B
  • A casa de Einherjar termina aqui
  • Isso pode ser continuado com um ataque de fast bin ou envenenamento de Tcache:
  • Liberar B para adicioná-lo ao fast bin / Tcache
  • O fd de B é sobrescrito fazendo-o apontar para o endereço alvo abusando do chunk D (já que contém B dentro)
  • Em seguida, 2 mallocs são feitos e o segundo irá alocar o endereço alvo

Referências e outros exemplos

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks