Jump to content
Sign in to follow this  
Lincoln Arantes

Meu primeiro exploit - Parte 2

Recommended Posts

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

 

 

Edited by Lincoln Arantes
  • Curtir 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...