Jump to content

Meu primeiro exploit - Parte 2


Lincoln Arantes

Recommended Posts

Posted

Olá meus queridos escovadores de bytes! 

Estamos aqui hoje para falar um pouco mais sobre os queridos exploits: queridos para quem os desenvolve e temido por muitas empresas e raças humanas.

Em uma terra onde bytes são importantes, um bom escovador de bytes é rei! Então chega de delongas e vamos ao que interessa:

Na primeira parte desse tutorial  mostramos que podemos fazer um programa feito em S.O Linux se comportar incorretamente, mas não debugamos os resultados, aqui procuraremos desenvolver o mesmo assunto porém mostraremos com maior riqueza de detalhes  os registradores que foram modificados.

Bem, utilizaremos o mesmo programa vulnerável a buffer overflow, o código é esse:

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//Programa vulnerável para teste de exploit


#include <stdio.h>

int main() {
    char login[15];
    char senha[6];

    printf(" Login: ");   
    gets(login);
    
    printf(" Senha: ");   
    gets(senha);

    printf("Login %s!!\n\n", login);

    printf("Senha %s!!\n\n", senha);
}

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Graças ao compilador c, tanto no S.O Linux quanto no S.O Windows o código compila sem alteração.

Note abaixo que compilaremos o código no Dev C++

 

INICIO.thumb.png.e2761b57486446d417fb60aac6cb9336.png

 

Depois foi salvo o código e criado o vuln2.exe

1152126862_Semttulo2.thumb.png.87adbc1b770c25edfe504cb0991403c9.png

 

Depois abrimos o vuln2.exe  no debug Immunity debugger

1931151062_Semttulo3.thumb.png.813fe239ba8efffe1fbf49b429a1cfed.png

 

E começamos a entrar dados. Nesse momento nosso objetivo é descobrir se os registradores serão alterados, para que isso ocorra entramos com muitos A que em hexadecimal é 0x41 ou no debug apenas 41.

284623332_Semttulo4.thumb.png.e43fe00f63ab00758f9a3d5ffb94a7a9.png

Na primeira entrada de A notamos que não houve alteração. 

Então continuamos na execução do programa onde o programa nos solicitou que seja teclado uma senha. Daí eu pensei vamos ver o que acontece se colocamos varios A, após a entrada dos mesmo verificamos no nosso debug e constatamos  que os registrados ESP e EIP foram alterados para 41414141 conforme mostrado na foto seguinte.

1035610652_Semttulo5_ALT_eip.thumb.png.2bc6d41eaa8e5524b066fefadd34e9c6.png

O que isso significa para nós?

Para alguns isso significa apenas um programa em colapso, mas para nós que seremos escovadores mundiais de bytes, isso significa que você pode carregar um lindo shellcode  nessa oportunidade. Bem explicarei mais um pouco para que você entenda a coisa:  o registrador EIP de 32 bits é parte do nosso alvo principal pois é nele que alteraremos o ponto da próxima instrução para algo que queremos.

Ficou curioso, fique de olho nos outros posts...

Por hoje é só, espero que tenha gostado e até a próxima...

 

Autor: Lincoln César dos Reis Arantes - Analista de Sistema(graduado)

Contato: lincolnsetelagoas@yahoo.com.br

 

 

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...