Tema destacado: Suscripción al boletín mensual de elhacker.net
Autor
|
Tema: Shellcode example (Leído 2,103 veces)
|
|
F1r3544
|
Hola amigos qué tal todos, espero que bien. Tengo una duda "Shellcode". Creen que estaría bien codear un exploit echo en C y pasarlo a binario y luego sacar la shellcode con gdb. O no se puede de ese metodo, porque ya se que se puede hacer de asm a pasarlo a gdb luego sacar la shellcode desde gdb.
|
|
|
|
|
En línea
|
" Sólo la cultura salva los pueblos" (Sí das de comer pescado a un pobre lo ayudas por una jornada, pero si lo enseñas a pescar lo ayudarás para toda la vida).
|
|
|
|
F1r3544
|
Hola amigos qué tal todos, espero que bien. Tengo una duda "Shellcode". Creen que estaría bien codear un exploit echo en C y pasarlo a binario y luego sacar la shellcode con gdb. O no se puede de ese metodo, porque ya se que se puede hacer de asm a pasarlo a gdb luego sacar la shellcode desde gdb.
De dónde puedo comenzar a sacar los scodes para crear la shellcode, este es un buffer overflow bajo linux, fijense bien y me dicen para salir de dudas. .file "string.c" .text .globl function .type function, @function function: .LFB2: pushq %rbp .LCFI0: movq %rsp, %rbp .LCFI1: subq $48, %rsp .LCFI2: movq %rdi, -40(%rbp) movq %fs:40, %rax movq %rax, -8(%rbp) xorl %eax, %eax movq -40(%rbp), %rsi leaq -32(%rbp), %rdi call strcpy movq -8(%rbp), %rax xorq %fs:40, %rax je .L3 call __stack_chk_fail .L3: leave ret .LFE2: .size function, .-function .globl main .type main, @function main: .LFB3: pushq %rbp .LCFI3: movq %rsp, %rbp .LCFI4: subq $288, %rsp .LCFI5: movq %fs:40, %rax movq %rax, -8(%rbp) xorl %eax, %eax movl $0, -276(%rbp) jmp .L5 .L6: movl -276(%rbp), %eax cltq movb $65, -272(%rbp,%rax) addl $1, -276(%rbp) .L5: cmpl $254, -276(%rbp) jle .L6 leaq -272(%rbp), %rdi call function movq -8(%rbp), %rax xorq %fs:40, %rax je .L9 call __stack_chk_fail .L9: leave ret .LFE3: .size main, .-main .section .eh_frame,"a",@progbits .Lframe1: .long .LECIE1-.LSCIE1 .LSCIE1: .long 0x0 .byte 0x1 .string "zR" .uleb128 0x1 .sleb128 -8 .byte 0x10 .uleb128 0x1 .byte 0x3 .byte 0xc .uleb128 0x7 .uleb128 0x8 .byte 0x90 .uleb128 0x1 .align 8 .LECIE1: .LSFDE1: .long .LEFDE1-.LASFDE1 .LASFDE1: .long .LASFDE1-.Lframe1 .long .LFB2 .long .LFE2-.LFB2 .uleb128 0x0 .byte 0x4 .long .LCFI0-.LFB2 .byte 0xe .uleb128 0x10 .byte 0x86 .uleb128 0x2 .byte 0x4 .long .LCFI1-.LCFI0 .byte 0xd .uleb128 0x6 .align 8 .LEFDE1: .LSFDE3: .long .LEFDE3-.LASFDE3 .LASFDE3: .long .LASFDE3-.Lframe1 .long .LFB3 .long .LFE3-.LFB3 .uleb128 0x0 .byte 0x4 .long .LCFI3-.LFB3 .byte 0xe .uleb128 0x10 .byte 0x86 .uleb128 0x2 .byte 0x4 .long .LCFI4-.LCFI3 .byte 0xd .uleb128 0x6 .align 8 .LEFDE3: .ident "GCC: (GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4)" .section .note.GNU-stack,"",@progbits
|
|
|
|
|
En línea
|
" Sólo la cultura salva los pueblos" (Sí das de comer pescado a un pobre lo ayudas por una jornada, pero si lo enseñas a pescar lo ayudarás para toda la vida).
|
|
|
Ivanchuk
Desconectado
Mensajes: 466
LLVM
|
Creen que estaría bien codear un exploit echo en C y pasarlo a binario y luego sacar la shellcode con gdb.
Yo creeria que no. Ademas deberias tener la shellcode en el exploit como un ptr char o algo parecido. Capaz confundis entre shellcode y exploit. La shellcode es el codigo q se injecta para que el programa vulnerable lo ejecute debido a algun error interno. El exploit es el programa que ejecuta dicho programa vulnerable y le pasa los parametros correctos para explotar dicha vulnerabilidad, entre ellos la shellcode. Si ya tenes el exploit en c (string.c), porq queres sacar la sc desensamblando el exploit si la tenes en el codigo c del mismo  . Si lo que queres es hacer una shellcode en codigo c, mmm calculo que se podria. Por cierto, parece que tenes una proteccion de pila, si queres jugar con exploits desactivala, porq gcc esta metiendo la mano. call __stack_chk_fail
|
|
|
|
|
En línea
|
|
|
|
|
F1r3544
|
Creen que estaría bien codear un exploit echo en C y pasarlo a binario y luego sacar la shellcode con gdb.
Yo creeria que no. Ademas deberias tener la shellcode en el exploit como un ptr char o algo parecido. Capaz confundis entre shellcode y exploit. La shellcode es el codigo q se injecta para que el programa vulnerable lo ejecute debido a algun error interno. El exploit es el programa que ejecuta dicho programa vulnerable y le pasa los parametros correctos para explotar dicha vulnerabilidad, entre ellos la shellcode. Si ya tenes el exploit en c (string.c), porq queres sacar la sc desensamblando el exploit si la tenes en el codigo c del mismo  . Si lo que queres es hacer una shellcode en codigo c, mmm calculo que se podria. Por cierto, parece que tenes una proteccion de pila, si queres jugar con exploits desactivala, porq gcc esta metiendo la mano. call __stack_chk_fail Muchas gracias amigo, por sacarme de dudas, y sí claro desactivaré la protección. Un placer amigo bye.
|
|
|
|
|
En línea
|
" Sólo la cultura salva los pueblos" (Sí das de comer pescado a un pobre lo ayudas por una jornada, pero si lo enseñas a pescar lo ayudarás para toda la vida).
|
|
|
|
|