Lincoln Arantes Posted September 22, 2019 Posted September 22, 2019 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++ Depois foi salvo o código e criado o vuln2.exe Depois abrimos o vuln2.exe no debug Immunity debugger 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. 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. 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
Recommended Posts
Archived
This topic is now archived and is closed to further replies.